Goal: convert imetrics to surface data using the OpenMetrics spec.
- Copy
varz
module to a new module calledopenmetrics
to use as a starting point - Modify
openmetrics
module to surface data compliant with the standard:- Include
# EOF
as required by the standard - Update
Content-Type
header - Include
TYPE
metric descriptor and support for main metric types-
counter
-
gauge
-
unknown
-
- Update handling of mapped data to convert mapped counters and stats maps to tagged metric sets
- Metric type for stats
- Include
- Convert from
mod_esi
tocowboy
to surface data at/metrics
URL path (required by the standard) - Add
openmetrics_strict_compat
application environment variable (causes only forwards-incompatible metrics to exist on the legacy endpoint and not exist on the OpenMetrics endpoint) - Extend
imetrics
to support additional OpenMetrics features- Exemplars
-
UNIT
metric descriptor -
HELP
metric descriptor - Tags on a per-metric level
-
counter
-
gauge
/multigauge
-
stats
-
histogram
s
-
- New metric types?
-
summary
(as a way to surface precomputed percentiles from histograms) -
histogram
andgaugehistogram
-
stateset
-
info
-
- More?
- (Optionally) Extend
imetrics
to surface OpenMetrics data via Protobuf instead of UTF-8 text