Prometheus metric syntax

From wikinotes

Syntax used to expose metrics to prometheus.


official docs
metric types
writing exporters


In addition to regular comments, doc-comments exist for

  • HELP describing metrics
  • TYPE describing metric type
# regular comment               // possibly invalid?

# HELP metric_name  Does thing  // description of metric
# TYPE metric_name  counter     // counter, gauge, historgram


my_metric 1.2

my_metric{hostname="foobar", user="baz"}  1.2

Metric Datatypes


// always a float

Native-Histograms (experimental)

Newer, More-accurate, simpler-to-use histogram type.
One metric is emitted (a complex type, a struct under the hood)
Bucket Sizes do not need to be configured manually.

# p99, from grafana, in 2m sample-sizes
histogram_quantile(0.99, sum(rate(my_metric{}[2m])))

# number of points in each 2m sample-size

# sum of points in each 2m sample-size
histogram_sum # todo


The old histograms create/emit multiple metrics from your metric with the suffixes:

  • _bucket
  • _count
# for 1x emitted 'my_metric', it creates:
my_metric_bucket{le="10"}   123
my_metric_bucket{le="20"}   456
my_metric_bucket{le="+Inf"} 789
my_metric_bucket_count      ...
my_metric_bucket_sum        ...

Here le represents all points within the sample-range of less-than-or-equal to $X.
The bucket sizes must be manually configured.