Label names should now be passed as the labels
parameter when creating a metric, instead of being inferred from the
remaining named arguments. For consistency with other clients, there is
no longer a notion of a “default” label value. This also makes it
possible to have labels like name
, help
,
type
, and so on that conflict with existing parameter
names.
Relatedly, all labels must now be specified when calling methods
on a metric (such as inc()
or set()
), since
there is no default to fall back on.
The package now has its own hex logo.
Only generate the OpenMetrics format when the (preliminary)
OpenMetrics content-type is passed in the Accept
header.
Otherwise, fall back on the Prometheus format and content-type
(#3).
Pushgateway functions will now stop()
for HTTP
errors instead of merely issuing a warning. Clients that can tolerate
these errors will likely tryCatch()
them anyway, since
httr::RETRY()
can fail for other reasons.
Requests made to Shiny apps that return HTTP 401 will no longer include the rendered metrics anyway.
The "
, \n
, and \
characters are now escaped in labels and help text, as in the
OpenMetrics reference implementation (#1).
Counter metrics can now be incremented by zero.
Counter, Gauge, and Histogram metrics can now take an optional
unit
parameter. The provided unit must match the
one in the name of the metric itself – e.g. a
received_bytes
metric must have unit “bytes” (#2).
Counters and Histograms now have a _created
child
metric, as per the OpenMetrics draft specification (#2).
Add push_to_gateway()
and
delete_from_gateway()
for manually pushing metrics to a Prometheus
Pushgateway instance.
Histogram metrics now have a built-in time()
method
for collecting observations on the duration of an expression.
The built-in process_cpu_seconds_total
metric is now
correctly reported as a Counter instead of a Gauge. This fixes an
inconsistency with other Prometheus clients that would prevent metrics
being used with Pushgateway.
register_default_metrics()
. Previously, this would include
the total elapsed time for the process (as opposed to the CPU time that
was actually used).Initial release. openmetrics is an opinionated Prometheus and OpenMetrics client for R.
Automatically instrument Plumber apps with
register_plumber_metrics()
and Shiny apps with
register_shiny_metrics()
.
Collect default metrics with
register_default_metrics()
.
Create custom metrics with counter_metric()
,
gauge_metric()
, and histogram_metric()
and
custom registries with registry()
.
Write metrics in the OpenMetrics/Prometheus text format to any
location with render_metrics()
.