Что такое Prometheus

Prometheus - это набор инструментов для мониторинга и оповещения систем, изначально созданный в SoundCloud. С момента своего создания в 2012 году, многие компании и организации приняли Prometheus, и проект имеет очень активное сообщество разработчиков и пользователей. Сейчас это самостоятельный проект с открытым исходным кодом, который поддерживается независимо от любой компании. Чтобы подчеркнуть это и уточнить структуру управления проектом, Prometheus присоединился к Cloud Native Computing Foundation в 2016 году в качестве второго размещенного проекта после Kubernetes.

Харакетристики

Основные функции Prometheus:

  • многомерная модель данных с данными временных рядов, идентифицированными по имени метрики и парам ключ/значение
  • PromQL, гибкий язык запросов, позволяющий использовать эту размерность
  • не зависит от распределенного хранилища; узлы одного сервера являются автономными
  • сбор временных рядов происходит через модель вытягивания (pull model) через HTTP
  • продвижение временных рядов поддерживается через промежуточный шлюз
  • цели обнаруживаются через обнаружение службы или статическую конфигурацию
  • поддержка нескольких режимов графики и дашбординга

Компоненты

Экосистема Prometheus состоит из нескольких компонентов, многие из которых являются необязательными:

  • главный сервер Prometheus, который очищает и хранит данные временных рядов
  • клиентские библиотеки для инструментов кода приложения
  • push gateway для поддержки краткосрочных рабочих заданий (jobs)
  • экспортеры специального назначения для таких сервисов, как HAProxy, StatsD, Graphite и т. д.
  • менеджер предупреждений (alertmanager) для обработки предупреждений
  • различные инструменты поддержки

Большинство компонентов Prometheus написаны на Go, что упрощает их сборку и развертывание в виде статических двоичных файлов.

Архитектура

Эта диаграмма иллюстрирует архитектуру Prometheus и некоторые ее компоненты экосистемы:

Prometheus очищает метрики от заданий, выполняемых с помощью инструментов, либо напрямую, либо через промежуточный шлюз для краткосрочных заданий. Он хранит все очищенные выборки локально и запускает правила для этих данных, чтобы объединять и записывать новые временные ряды из существующих данных или генерировать предупреждения. Grafana или другие пользователи API могут использоваться для визуализации собранных данных.

Когда Prometheus подходит?

Prometheus хорошо работает для записи любых чисто числовых временных рядов. Он подходит как для машинно-ориентированного мониторинга, так и для мониторинга высокодинамичных сервис-ориентированных архитектур. В мире микросервисов его поддержка многомерного сбора данных и запросов - особая сила.

Prometheus разработан для обеспечения надежности, чтобы быть системой, к которой вы обращаетесь во время простоя, чтобы вы могли быстро диагностировать проблемы. Каждый сервер Prometheus является автономным, независимо от сетевого хранилища или других удаленных служб. Вы можете положиться на него, когда другие части вашей инфраструктуры сломаны, и вам не нужно настраивать обширную инфраструктуру для ее использования.

Когда Prometheus не подходит?

Prometheus ценит надежность. Вы всегда можете посмотреть, какие статистические данные доступны о вашей системе, даже в условиях сбоя. Если вам нужна точность 100%, например, для выставления счетов по запросу, Prometheus не является хорошим выбором, так как собранные данные, вероятно, не будут подробными и недостаточно полными. В таком случае вам лучше использовать какую-то другую систему для сбора и анализа данных для выставления счетов, а Prometheus - для остальной части вашего мониторинга.


Комментарии

Популярные сообщения из этого блога

Язык поисковых запросов в Graylog

Хэш-таблица: разрешение коллизий

Нормальные формы, пример нормализации в базе данных