1. Meters and tags for Reactor-Core-Micrometer module
1.1. Micrometer.metrics()
Below is the list of meters used by the metrics tap listener feature, as exposed via
Micrometer.metrics(MeterRegistry meterRegistry)
.
Please note that metrics below use a dynamic %s prefix.
When applied on a Flux or Mono that uses the name(String n) operator, this is replaced with n .
Otherwise, this is replaced by the default value of "reactor" .
|
1.1.1. Flow Duration
Times the duration elapsed between a subscription and the termination or cancellation of the sequence. A TerminationTags#STATUS tag is added to specify what event caused the timer to end (
"completed"
,"completedEmpty"
,"error"
or"cancelled"
).
Metric name %s.flow.duration
- since it contains %s
, the name is dynamic and will be resolved at runtime. Type distribution summary
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Name |
Description |
|
Tag used by FLOW_DURATION when STATUS is |
|
The termination status:
|
|
The type of the sequence ( |
1.1.2. Malformed Source Events
Counts the number of events received from a malformed source (ie an onNext after an onComplete).
Metric name %s.malformed.source
- since it contains %s
, the name is dynamic and will be resolved at runtime. Type counter
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Name |
Description |
|
The type of the sequence ( |
1.1.3. On Next Delay
Measures the delay between each onNext (or between the first onNext and the onSubscribe event).
Metric name %s.onNext.delay
- since it contains %s
, the name is dynamic and will be resolved at runtime. Type timer
and base unit nanoseconds
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Micrometer internally uses nanoseconds for the baseunit. However, each backend determines the actual baseunit. (i.e. Prometheus uses seconds)
|
Name |
Description |
|
The type of the sequence ( |
1.1.4. Requested Amount
Counts the amount requested to a named sequence (eg.
Flux.name(String)
) by all subscribers, until at least one requests an unbounded amount.
Metric name %s.requested
- since it contains %s
, the name is dynamic and will be resolved at runtime. Type distribution summary
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Name |
Description |
|
The type of the sequence ( |
1.1.5. Subscribed
Counts the number of subscriptions to a sequence.
Metric name %s.subscribed
- since it contains %s
, the name is dynamic and will be resolved at runtime. Type counter
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Name |
Description |
|
The type of the sequence ( |
1.2. Micrometer.timedScheduler()
Below is the list of meters used by the TimedScheduler feature, as exposed via
Micrometer.timedScheduler(Scheduler original, MeterRegistry meterRegistry, String metricsPrefix)
.
Please note that metrics below use a dynamic %s prefix. This is replaced with the provided metricsPrefix in practice.
|
1.2.1. Tasks Active
LongTaskTimer reflecting tasks currently running. Note that this reflects all types of active tasks, including tasks scheduled with a delay or periodically (each iteration being considered an active task).
Metric name %s.scheduler.tasks.active
- since it contains %s
, the name is dynamic and will be resolved at runtime. Type long task timer
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Micrometer internally uses nanoseconds for the baseunit. However, each backend determines the actual baseunit. (i.e. Prometheus uses seconds)
|
1.2.2. Tasks Completed
Timer reflecting tasks that have finished execution. Note that this reflects all types of active tasks, including tasks with a delay or periodically (each iteration being considered a separate completed task).
Metric name %s.scheduler.tasks.completed
- since it contains %s
, the name is dynamic and will be resolved at runtime. Type timer
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Micrometer internally uses nanoseconds for the baseunit. However, each backend determines the actual baseunit. (i.e. Prometheus uses seconds)
|
1.2.3. Tasks Pending
LongTaskTimer reflecting tasks that were submitted for immediate execution but couldn’t be started immediately because the scheduler is already at max capacity. Note that only immediate submissions via Scheduler#schedule(Runnable) and Scheduler.Worker#schedule(Runnable) are considered.
Metric name %s.scheduler.tasks.pending
- since it contains %s
, the name is dynamic and will be resolved at runtime. Type long task timer
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Micrometer internally uses nanoseconds for the baseunit. However, each backend determines the actual baseunit. (i.e. Prometheus uses seconds)
|
1.2.4. Tasks Submitted
Counter that increments by one each time a task is submitted (via any of the schedule methods on both Scheduler and Scheduler.Worker).
Note that there are actually 4 counters, which can be differentiated by the SubmittedTags#SUBMISSION tag. The sum of all these can thus be compared with the TASKS_COMPLETED counter.
Metric name %s.scheduler.tasks.submitted
- since it contains %s
, the name is dynamic and will be resolved at runtime. Type counter
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Name |
Description |
|
The type of submission:
|
1.3. Micrometer.observation()
Below is the list of meters used by the observation tap listener feature, as exposed via
Micrometer.observation(ObservationRegistry registry)
.
This is the ANONYMOUS observation, but you can create a similar Observation with a custom name by using the name(String)
operator.
You can also fully customize Micrometer’s Observation via
Micrometer.observation(ObservationRegistry registry, Function<ObservationRegistry, Observation> observationSupplier)
with your own Observation supplier, allowing to configure its attributes (name, contextual name, low and high cardinality keys, …).
|
1.3.1. Anonymous
Anonymous version of the Micrometer.observation(), when the sequence hasn’t been explicitly named via e.g. Flux#name(String) operator.
Metric name reactor.observation
. Type timer
.
Metric name reactor.observation.active
. Type long task timer
.
KeyValues that are added after starting the Observation might be missing from the *.active metrics. |
Micrometer internally uses nanoseconds for the baseunit. However, each backend determines the actual baseunit. (i.e. Prometheus uses seconds)
|
Name |
Description |
|
The status of the sequence, which indicates how it terminated ( |
|
The type of the sequence, i.e. |