THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Use the legacy meter to report measurements.
Diagrams
Legacy Meter Structure
PlantUML | ||
---|---|---|
| ||
@startuml skinparam dpi 300 hide footbox MeterRegistry *-- Counter class InstrumentationClass { MeterRegistry registry Statistics statistics } note right of InstrumentationClass: e.g. CacheServerStats class LegacyCounterBuilder { intStatistic(statistics, id) longStatistic(statistics, id) register(registry) } class LegacyCounter { LegacyCounter(counter, binding) increment(amount) count() Counter counter StatisticsBinding binding } class Counter { increment(amount) count() } class StatisticsBinding { Statistics statistics int statId increment(amount) long longValue() double doubleValue() } InstrumentedCode --> InstrumentationClass InstrumentationClass --> LegacyCounterBuilder InstrumentationClass --> LegacyCounter : increment(amount) InstrumentationClass *-- Statistics LegacyCounterBuilder --> MeterRegistry LegacyCounterBuilder --> LegacyCounter LegacyCounter --> StatisticsBinding : increment(amount) LegacyCounter --> Counter : increment(amount) StatisticsBinding --> Statistics : incInt(id, amount) note right of LegacyCounterBuilder : New class note right of LegacyCounter : New class (implements Counter) note right of StatisticsBinding : New class @enduml |
Legacy Meter Information Flow
PlantUML | ||
---|---|---|
| ||
@startuml
skinparam dpi 300
hide footbox
actor InstrumentedCode
create MyStatistics
InstrumentedCode -> MyStatistics : new(registry, …)
create statistics
MyStatistics -> statistics : new
== Creating a Legacy Meter ==
create LegacyCounter.Builder
MyStatistics -> LegacyCounter.Builder : new(name)
MyStatistics -> LegacyCounter.Builder : …
MyStatistics -> LegacyCounter.Builder : intStatistic(statistics, statId)
MyStatistics -> LegacyCounter.Builder : register(registry)
participant legacyCounter
participant statisticsBinding
participant statistics
LegacyCounter.Builder -> registry : counter(id, …)
create counter
registry -> counter : new(id, …)
registry --> LegacyCounter.Builder : counter
create statisticsBinding
LegacyCounter.Builder -> statisticsBinding : new(statistics, statId)
create legacyCounter
LegacyCounter.Builder -> legacyCounter : new(counter, statisticsBinding)
LegacyCounter.Builder --> MyStatistics : legacyCounter
MyStatistics --> InstrumentedCode
== Updating a Legacy Meter ==
InstrumentedCode -> MyStatistics : myEventJustHappened()
MyStatistics -> legacyCounter : increment()
legacyCounter -> statisticsBinding : increment()
statisticsBinding -> statistics : incInt(statId, 1)
legacyCounter -> counter : increment()
legacyCounter --> MyStatistics
MyStatistics --> InstrumentedCode
== Reading a Legacy Meter ==
InstrumentedCode -> MyStatistics : getMyEventCount()
MyStatistics -> legacyCounter : count()
legacyCounter -> statistics : getInt(statId)
statistics --> legacyCounter : stat value
legacyCounter --> MyStatistics : stat value
MyStatistics --> InstrumentedCode : stat value
== Deleting a Legacy Meter ==
InstrumentedCode -> MyStatistics : close()
MyStatistics -> registry : remove(legacyCounter)
note left
Note: legacyCounter has
the same Id as counter
end note
registry -> counter !!:
registry --> MyStatistics
MyStatistics--> InstrumentedCode
@enduml
|
...