Модель данных
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"}