Модель данных
Deckhouse Prom++ хранит все данные в виде временных рядов: потоков значений с временными метками, принадлежащих одной метрике и одному набору лейблов. Помимо хранимых временных рядов, Deckhouse Prom++ может генерировать производные временные ряды в результате выполнения запросов.
Имена метрик и лейблы
Каждый временной ряд однозначно идентифицируется своим именем метрики и необязательными парами “ключ-значение”, называемыми метками.
Имена метрик
- Описание: Указывают общую характеристику системы, которая измеряется (например,
http_requests_total
— общее количество полученных HTTP-запросов). - Правила именования:
- Имена метрик могут содержать буквы ASCII, цифры, подчеркивания и двоеточия.
- Должны соответствовать регулярному выражению:
[a-zA-Z_:][a-zA-Z0-9_:]*
. Важно: Двоеточия зарезервированы для пользовательских правил записи. Они не должны использоваться в экспортерах или прямом инструментировании.
Лейблы
- Описание: Позволяют модели данных Deckhouse Prom++ идентифицировать любую комбинацию лейблов для одной метрики. Они определяют конкретную размерную реализацию этой метрики (например, все HTTP-запросы, которые использовали метод
POST
для обработчика/api/tracks
). Язык запросов позволяет фильтровать и агрегировать данные на основе этих измерений. - Правила именования:
- Лейблы могут содержать буквы ASCII, цифры и подчеркивания. Они должны соответствовать регулярному выражению:
[a-zA-Z_][a-zA-Z0-9_]*
. - Имена лейблов, начинающиеся с
__
(двух подчеркиваний), зарезервированы для внутреннего использования. - Значения лейблов могут содержать любые символы Unicode.
- Лейблы с пустым значением считаются эквивалентными отсутствию лейбла.
- Лейблы могут содержать буквы ASCII, цифры и подчеркивания. Они должны соответствовать регулярному выражению:
- Изменение лейблов: Любое изменение значения лейбла, включая добавление или удаление лейблов, создает новый временной ряд.
Samples
Samples формируют фактические данные временных рядов. Каждая sample включает:
- Значения: Число с плавающей точкой (
float64
). - Временные метки (timestamp): Точность до миллисекунды.
Примечание: Начиная с версии Deckhouse Prom++ v2.40, добавлена экспериментальная поддержка нативных гистограмм. Вместо простого float64
значение выборки может теперь представлять собой полную гистограмму.
Формат представления метрик
Для идентификации временных рядов используется следующий формат:
<metric name>{<label name>=<label value>, ...}
Например, временной ряд с именем метрики api_http_requests_total
и метками method="POST"
и handler="/messages"
может быть записан следующим образом:
api_http_requests_total{method="POST", handler="/messages"}