Модель данных


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.
    • Лейблы с пустым значением считаются эквивалентными отсутствию лейбла.
  • Изменение лейблов: Любое изменение значения лейбла, включая добавление или удаление лейблов, создает новый временной ряд.

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"}