Это старая версия документа!
Метрики это по сути попытка инженерно-математическими методами сжать большой массив данных до чего-то наглядного, в отличии от логов, которые пишутся как есть
Парсить логи для графиков тоже может быть приемлемо, но до определенного момента
Логи - это про точность мы собираем информацию на каждое событие. Можно агрегировать и детализировать до каждого события, но логировать каждый чих плохо масштабируется
Метрики это сразу общая картина о состоянии приложения. Мы собираем не все детали, а только общую выжимку. Картину мы так же получаем но в детали провалится нельзя, зато хорошо масштабируется и быстро работает, если нужны детали то можно решать точечно
Push - принцип такой же как с логами или БД: пришло событие, пишем в хранилище, можно пачками, способ простой
Pull - наоборот, приложения хранят в памяти данные, кто то периодически приходит и собирает их, например по HTTP.
Сложнее реализовать но проще отлаживать, у каждого приложения есть свой endpoint и видно что там происходит
Особенности такой БД это обработка временных рядов, т.е. однотипных измерений во времени.
БД такого типа оптимизируют хранение какого то числа, которое записано через равные интервалы времени
Например чтобы хранить ежедневную температуру нам нужно хранить только одно число и больше ничего. т.е TSDB нужны чтобы сохранять время и одно число, привязанное к этому времени
Специфика:
Раз на sql это все не похоже то и поддерживать сложный язык запросов нет необходимости, и часто делают свой, метрико-ориентированный простой язык
«Превращение формата Prometheus в стандарт» (с)
Проект по стандартизации формата данных и запросов Prometheus
по сути тот же прометеус
Представляет формат представления Prometheus с некоторыми улучшениями
Все базовые спецификации такие же как у Prometheus, включая использование PromQL, OpenMetrics обеспечивает некоторые улучшение (поддержка Push и Pull, у прометеуса только Pull; по умолчанию секунды вместо миллисекунд и еще несколько)
Ориентирован только на метрики. Просто стандартизирует формат представления, посредствам которого данные метрики должны передаваться по сети
"Клиент Prometheus Python является эталонной реализацией и внутренне использует модель данных OpenMetrics. Prometheus при парсинге будет отдавать предпочтение OpenMetrics"\\
похоже что добавляет метку «_created» к метрикам, но это не точно, что то везде упоминается, пока точно неясно что именно значит
И про синтаксический анализатор Python тоже гругом говорится, похоже что OpenMetrics как таковой это же стандарт, а обеспечивает его некая python надстройка над клиентом Prometheus, но это наверно на принимающей строне, отправляющая это наше приложение, ему надо в нужном формате отправлять данные, в формате OpenMetrics
OpenTelemetry насколько понял это более комплексное решение, набор стандартов, API, SDK и библиотек, для создания, сбора и управления данными телеметрии (журналы, метрики и трассировки)
Ну да, в первом только метрики, тут кроме метрик еще журналы, трассировки, кстати в качестве метрик поддерживает OpenMetrics. Либо прямо использует формат OpenMetrics для передачи метрик
Имеет клиентские библиотеки, встраивается в код приложения
Основа для комплексного стека наблюдения со спецификациями для обработки журналов, трассировок и метрик
Текстовый формат метрик
Формат представления метрик текстом
Большой шаг на пути к стандартизации формата представления метрик, особенно для систем мониторинга
Формат метрик и язык запросов очень похожи друг на друга
В случае с Прометеем, для группировки интервалов следует использовать переменную $rate_interval** вместо «$interval», она поддерживается только в нем
Переменная интервала призвана динамически подбирать интервал, для прометея rate_interval оптимизирована гораздо лучше
</details>
<details>
<summary> </summary>
</details>
<details>
<summary>
</summary>
</details>
<details>
<summary>
</summary>
</details>
<details>
<summary>
</summary>
</details>