System Design Space
Граф знанийНастройки

Обновлено: 2 марта 2026 г. в 19:29

Prometheus: история и архитектура

mid

Разбор Prometheus в стиле системного дизайна: история, архитектура по слоям, write/read path и практическая DDL-like/DML-like модель для мониторинга.

Источник

Prometheus docs

Официальное описание модели Prometheus: pull-scrape, TSDB, PromQL и rules.

Перейти на сайт

Prometheus — специализированная time-series система мониторинга, которая сочетает pull-модель сбора метрик, собственный TSDB-движок и язык запросов PromQL. В контексте TSDB-карты Prometheus — канонический выбор для инфраструктурного мониторинга и SLO-driven эксплуатации.

История: ключевые вехи

2012

Рождение в SoundCloud

Prometheus появляется как внутренний мониторинг-движок для cloud-native нагрузки.

2015

Open source и ранняя экосистема

Проект открывается сообществу и быстро набирает популярность в Kubernetes-контуре.

2016

Incubating в CNCF

Prometheus входит в CNCF и формализует нейтральную governance-модель развития.

2018

Graduated в CNCF

Проект получает статус зрелого стандарта для инфраструктурного мониторинга.

2023

Prometheus 2.x как индустриальная база

Стабилизируются remote write/read, экосистема операторов и практики high-cardinality тюнинга.

2024+

Эволюция в сторону масштабируемых TSDB-профилей

Укрепляются паттерны long-term storage, federation и гибридных Prometheus-архитектур.

Специфика Prometheus

Pull-модель сбора

Prometheus сам опрашивает targets, что упрощает контроль topology и health endpoint-ов.

TSDB с WAL + blocks

Данные проходят путь WAL -> head -> compacted blocks, формируя predictable storage lifecycle.

PromQL как язык анализа

PromQL оптимизирован под time-series векторы, агрегации по labels и окна по времени.

Rule-driven alerting

Recording/alerting rules и интеграция с Alertmanager дают управляемый контур реагирования.

Архитектура Prometheus по слоям

На high-level уровне Prometheus можно читать как конвейер: ingest -> TSDB head/WAL -> block storage -> PromQL/query engine -> rules/alerts -> внешние интеграции.

Ingestion слой
Service discoveryScrape loopsRelabelingRemote write ingest
Переход между слоями
TSDB Head + WAL
In-memory headAppend samplesLabel indexWAL segments
Переход между слоями
Block storage
2h blocksCompactionRetentionTSDB snapshots
Переход между слоями
PromQL query engine
ParserInstant/Range evalVector matchingAggregation
Переход между слоями
Rules и alerting
Recording rulesAlerting rulesRule groupsAlertmanager
Переход между слоями
Интеграции и эксплуатация
GrafanaFederationRemote write/readHA pairs

Ключевые особенности

Prometheus оптимизирован под мониторинг: pull ingest, TSDB с WAL/blocks, PromQL и rule-driven alerting.

Pull-модель

HTTP scrapeTarget healthDiscovery-driven topology

Label-модель

Metric + labelsHigh cardinality riskPromQL selectors

Жизненный цикл данных

WAL -> Head -> BlocksCompactionRetention/TTL via flags

DDL vs DML: модель для Prometheus

В Prometheus нет SQL-DDL/DML в классическом смысле. Но для архитектурного анализа полезно разделять DDL-like операции (изменение конфигурации scrape/rules) и DML-like операции (движение samples и PromQL read path).

Как работает модель DDL/DML в Prometheus

DDL-like: изменение scrape/rule topology. DML-like: движение samples и PromQL запросов.

Интерактивный прогонШаг 1/5

1. Scrape / ingest

Samples + queries

Scraper или remote write ingest получает новые samples.

2. WAL append

Samples + queries

Сэмплы пишутся в WAL для durability перед дальнейшей обработкой.

3. Head update

Samples + queries

TSDB head обновляет series и label index для свежих данных.

4. PromQL execution

Samples + queries

Query engine читает head и исторические blocks, выполняет агрегации.

5. Compaction + retention

Samples + queries

Фоновая compaction уплотняет blocks и применяет политику retention.

Активный шаг

1. Scrape / ingest

Scraper или remote write ingest получает новые samples.

Поток данных и запросов

  • DML-like путь охватывает ingest, хранение и чтение метрик через PromQL.
  • Свежие данные живут в head, исторические - в compacted blocks.
  • Кардинальность labels напрямую влияет на стоимость и latency запросов.

Источник

InfluxDB docs

Сравнительный контекст по альтернативному TSDB-профилю.

Перейти на сайт

Prometheus vs InfluxDB

Базовый подход

Prometheus: Pull-scrape модель и tight-интеграция с monitoring workflow.

InfluxDB: Сильный акцент на ingest API и time-series хранилище для широкого класса telemetry use cases.

Язык запросов

Prometheus: PromQL с фокусом на метрики, labels и alert-driven аналитике.

InfluxDB: InfluxQL/Flux в зависимости от версии и сценария обработки данных.

Типичный production-профиль

Prometheus: Инфраструктурный мониторинг, SLO, алерты, Kubernetes observability.

InfluxDB: Monitoring + IoT + телеметрия, где нужен гибкий ingest и retention-политики.

Операционная модель

Prometheus: Часто комбинируется с federation/remote storage для long-term retention.

InfluxDB: Часто используется как самостоятельный TSDB-контур или managed deployment.

Почему Prometheus часто выбирают для мониторинга

Практическая интерпретация для system design контекста:

  • Prometheus стал стандартом cloud-native мониторинга благодаря простой pull-модели и экосистеме вокруг Kubernetes.
  • PromQL и rules позволяют строить один контур для наблюдаемости и alerting без отдельного DSL.
  • TSDB-путь WAL -> head -> blocks делает поведение write/read path предсказуемым в production.
  • Интеграция с Alertmanager, Grafana и remote storage дает гибкий путь от single-node до масштабируемой топологии.

References

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки

System Design Space

© 2026 Александр Поломодов