Chapter 5. Labels
Labels are a key part of Prometheus, and one of the things that make it powerful. In this chapter you will learn what labels are, where they come from, and how you can add them to your own metrics.
What Are Labels?
Labels are key-value pairs associated with time series that, in addition to the metric name, uniquely identify them. Thatâs a bit of a mouthful, so letâs look at an example.
If you had a metric for HTTP requests that was broken out by path, you might try putting the path in the metric name, such as is common in Graphite:1
http_requests_login_total http_requests_logout_total http_requests_adduser_total http_requests_comment_total http_requests_view_total
These would be difficult for you to work with in PromQL. In order to calculate
the total requests you would either need to know every possible HTTP path or do
some form of potentially expensive matching across all metric names.
Accordingly, this is an antipattern you should avoid. Instead, to handle this
common use case, Prometheus has labels. In the preceding case you might use a
path
label:
http_requests_total{path="/login"} http_requests_total{path="/logout"} http_requests_total{path="/adduser"} http_requests_total{path="/comment"} http_requests_total{path="/view"}
You can then work with the http_requests_total
metric with all its path
labels as one. With PromQL you could get an overall aggregated request rate, the rate of just one of the paths, or what proportion each request is of the whole. ...
Get Prometheus: Up & Running now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.