Deckhouse Prom++ stores all data as time series: streams of timestamped values belonging to a single metric and a single set of labels. In addition to stored time series, Deckhouse Prom++ can generate derived time series as a result of query execution.
Metric names and labels
Each time series is uniquely identified by its metric name and optional key-value pairs called labels.
Metric names
Description: Specifies the general characteristics of the system being measured (for example,
http_requests_total— the total number of HTTP requests received).Naming rules:
- Metric names can contain ASCII letters, numbers, underscores, and colons.
- Must match the following regular expression:
[a-zA-Z_:][a-zA-Z0-9_:]*.
Warning. Colons are reserved for user-defined rules. They should not be used in exporters or direct instrumentation.
Labels
- Description: Allow the Deckhouse Prom++ data model to identify any combination of labels for a single metric. They define the specific dimensional implementation of that metric (for example, all HTTP requests that used the
POSTmethod for the/api/trackshandler). The query language allows you to filter and aggregate data based on these dimensions. - Naming rules:
- Labels can contain ASCII letters, numbers, and underscores. They must match the following regular expression:
[a-zA-Z_][a-zA-Z0-9_]*. - Label names beginning with
__(two underscores) are reserved for internal use. - Label values can contain any Unicode characters.
- Labels with an empty value are considered equivalent to no label.
- Labels can contain ASCII letters, numbers, and underscores. They must match the following regular expression:
- Changing labels: Any change to a label value, including adding or removing labels, creates a new time series.
Samples
Samples form the actual data of time series. Each sample includes:
- Values: Floating point number (
float64). - Timestamps: Accuracy up to milliseconds.
Starting with Deckhouse Prom++ v2.40, experimental support for native histograms has been added. Instead of a simple float64 value, a sample can now represent a complete histogram.
Metric representation format
The following format is used to identify time series:
<metric name>{<label name>=<label value>, ...}
For example, a time series with the metric name api_http_requests_total and labels method=“POST” and handler=“/messages” can be written as follows:
api_http_requests_total{method=“POST”, handler="/messages"}