metrics {openmetrics} | R Documentation |
Metrics
Description
A metric is a measure which can be aggregated into a time series, and comes in one of three types: counters, gauges, and histograms.
Metrics must have a unique name.
Usage
counter_metric(
name,
help,
labels = character(),
...,
unit = NULL,
registry = global_registry()
)
gauge_metric(
name,
help,
labels = character(),
...,
unit = NULL,
registry = global_registry()
)
histogram_metric(
name,
help,
buckets = c(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10),
labels = character(),
...,
unit = NULL,
registry = global_registry()
)
Arguments
name |
The name of the metric. |
help |
A brief, one-sentence explanation of the metric's meaning. |
labels |
A vector of label names for the metric. |
... |
For backward compatibility, otherwise ignored. |
unit |
An optional unit for the metric, e.g. |
registry |
Where to register the metric for later retrieval. |
buckets |
A sequence of buckets to bin observations into. Defaults to Prometheus's suggested buckets, which are a good fit for measuring user-visible latency in seconds (e.g. for web services). |
Details
All metric objects have a reset()
method that reverts the underlying value
(or values) to zero, an unregister()
method that removes them from the
registry they were created in, and a render()
method that writes a
representation of the metric in the text-based OpenMetrics format.
Normally, render_metrics()
is used instead.
In addition, various metrics have their own methods:
-
inc(by = 1, ...)
: Increments the metric by some positive number, defaulting to 1. Further parameters are interpreted as labels. Available for counters and gauges. -
dec(by = 1, ...)
: Decrements the metric by some number, defaulting to 1. Further parameters are interpreted as labels. Available for gauges. -
set(value, ...)
: Sets the metric to some number. Further parameters are interpreted as labels. Available for gauges. -
set_to_current_time(...)
: Sets the metric to the current time, in seconds from the Unix epoch. Further parameters are interpreted as labels. Available for gauges. -
observe(value, ...)
: Records an observation of some number. Further parameters are interpreted as labels. Available for histograms. -
time(expr, ...)
: Records an observation for the time elapsed evaluatingexpr
, in seconds. Further parameters are interpreted as labels. Available for histograms.
Value
An object with methods to manipulate the metric. See details.
See Also
The official documentation on Metric Types.
Examples
meows <- counter_metric("meows", "Heard around the house.", labels = "cat")
meows$inc(cat = "Shamus") # Count one meow from Shamus.
meows$inc(3, cat = "Unknown") # Count three meows of unknown origin.
meows$render()
thermostat <- gauge_metric("thermostat", "Thermostat display.")
thermostat$set(21.3) # Read from the display...
thermostat$dec(2) # ... and then turn it down 2 degrees.
thermostat$render()
temperature <- histogram_metric(
"temperature", "Ambient room temperature measurements.",
buckets = c(10, 15, 20, 22, 25), labels = "room"
)
set.seed(9090)
# Simulate taking ambient temperature samples.
for (measure in rnorm(20, mean = 21.5)) {
temperature$observe(measure, room = sample(c("kitchen", "bathroom"), 1))
}
temperature$render()