BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Production-архитектура Prometheus: масштабирование и long-term storage » Протоколы и форматы: exposition format, remote_write, remote_read

Протоколы и форматы: exposition format, remote_write, remote_read

Мониторинг крупных платформ требует не только качественных метрик, но и устойчивых механизмов переноса, хранения и доступа к ним. В этой главе рассматриваются три базовых элемента производственной архитектуры Prometheus: exposition format как естественный формат экспорта метрик, remote_write как механизм push-interfaces для долговременного хранения, и remote_read как интерфейс для чтения данных из внешних хранилищ. Мы разберём принципы работы, типовые паттерны интеграции с federation и long-term storage (Thanos, Cortex, Mimir), вопросы производительности и отказоустойчивости, а также практические подходы к эксплуатации мониторинга больших платформ.

 

Краткое введение

Современные мониторинговые цепочки чаще всего строятся по схеме pull-сборa через Prometheus или его эмуляторы, где экспортёры предоставляют данные в exposition format. Для масштабирования на уровне организации и для обеспечения долговременного хранения данные pushed через remote_write на долговременные хранилища, такие как Thanos, Cortex или Mimir. Наконец, remote_read позволяет Prometheus или его окружению извлекать данные из этих хранилищ во время выполнения запросов, обеспечивая единый вид данных в across-кластерах. В совокупности эти протоколы формируют гибкую, масштабируемую и отказоустойчивую архитектуру мониторинга больших платформ. В главе последовательно раскрываются концепции, затем - практические решения и варианты реализации.

  • Архитектурные принципы взаимодействия протоколов и форматов в рамках крупномасштабной мониторинговой инфраструктуры.
  • Структура exposition format и принципы экспорта данных из экспортёров, а также пути минимизации проблем с карточностью метрик.
  • Протокол remote_write: формат WriteRequest, батчинг, надёжность, повторные отправки и безопасность.
  • Протокол remote_read: запросы к удалённому хранилищу, маршрутизация и ответственность за латентность в кластерах.
  • Интеграция с long-term storage (Thanos, Cortex, Mimir): паттерны federation, использование store-gateway, blocks, индексация и кэширование.
  • Эталонные практики эксплуатации мониторинга больших платформ: мониторинг самих потоков, observability remote-процессов, а также типовые проблемы и способы их устранения.

 

Архитектурные принципы протоколов exposition, remote_write, remote_read

В контексте масштабируемой платформы важно увидеть не просто как работает каждый протокол отдельно, но и как они образуют единый конвейер данных. Exposition format обслуживает выход экспортёра: читаемость и предсказуемость формата позволяют Prometheus и конфигурируемым потребителям корректно обрабатывать метрики. Remote_write выступает как обратимый канал к долговременному хранилищу: он push-отправляет данные в хранилище, обеспечивая устойчивость к сбоям источников и независимость сбора от скорости хранения. Remote_read - это механизм чтения данных из внешних систем, что позволяет центральной аналитике и кластерам Prometheus видеть единую версию данных, даже если источники распределены по регионам или кластерам.

Ключевые принципы:

  • Разделение ответственности: exposition format обеспечивает чистый и понятный экспорт данных; remote_write обеспечивает долговременное сохранение и агрегацию вне Prometheus; remote_read обеспечивает доступ к данным из внешних хранилищ, включая оркестрованные сервисы масштабирования.
  • Асинхронность и устойчивость к сбоям: remote_write спроектирован с учётом очередей, ретраев и ограничений по пропускной способности; remote_read следует принципы минимизации задержек и использования кэшей для снижения нагрузки на удалённые источники.
  • Федерирование и мультикластерность: federation на уровне целевых хранилищ и интенсификация запросов через remote_read позволяют строить единую логическую временную шкалу и набор рядов времени по нескольким источникам.
  • Прозрачность и наблюдаемость: на каждом этапе к концу цепочки необходимо иметь метрики качества передачи (latency, error rate, backlog), чтобы оперативно управлять отказами и планировать масштабирование.
  • Защита данных и соответствие требованиям безопасности: шифрование транспортного слоя, а также аутентификация и авторизация на уровне endpoints remote_write и remote_read являются обязательной частью архитектуры.

 

Exposition format: структура, применение и ограничения

Exposition format - это человеко-читаемый текстовый формат, который экспортёры Prometheus используют для передачи метрик. Он прост, предсказуем и поддерживает такие элементы, как HELP и TYPE, что облегчает интерпретацию для фаз предварительной обработки и мониторинга. Формат обеспечивает следующие характеристики:

  • Простота парсинга: натуральное текстовое представление, которое легко обрабатывать как на месте, так и на уровне последующей агрегации и визуализации.
  • Распознавание типов: наличие строк TYPE (counter, gauge, histogram, summary) позволяет точно обрабатывать метрики и выставлять корректную визуализацию.
  • Расширяемость: поддерживает добавление произвольных лейблов, что позволяет описывать контекст метрики (регион, среда, роль сервиса и т. д.).
  • Ограничение по карточности: чрезмерное увеличение числа уникальных лейблов приводит к экспоненциальному росту cardinality и позволяет инструментам мониторинга рефакторировать данные для снижения нагрузки.

Структура экспозиции типична для экспортеров: набор метрик, каждая метрика имеет имя, набор лейблов и одну или несколько точек значения. Примеры:

// Exposition format example
## HELP http_requests_total The total number of HTTP requests.
## TYPE http_requests_total counter
http_requests_total{method="post",code="200"} 1027
http_requests_total{method="post",code="400"} 3

## HELP response_latency_seconds The latency of responses in seconds.
## TYPE histogram response_latency_seconds histogram
response_latency_seconds_bucket{le="0.1"} 24054
response_latency_seconds_bucket{le="0.2"} 4873
response_latency_seconds_bucket{le="0.5"} 1442
response_latency_seconds_bucket{le="+Inf"} 24054
response_latency_seconds_sum 1.234
response_latency_seconds_count 24054
  • Поддержка стандартов OpenMetrics: современные экспортёры часто приводят метрики в согласованный стандарт, чтобы операции по мониторингу могли использовать единый набор инструментов и алгоритмов агрегации.
  • Влияние на дизайн экспортёров: при проектировании экспортеров следует учитывать минимизацию кардинальности и избегать избыточных лейблов с повторяемыми значениями, чтобы сохранить производительность Prometheus и downstream-систем.

Важно понимать, что exposition format служит локальной границей: Prometheus собирает данные через этот формат, однако для больших платформ, которые требуют долговременного хранения и кросс-кластерной аналитики, необходимы remote_write и remote_read. Это позволяет отделить длительную архитектуру хранения от оперативного сбора метрик, сохраняя лаконичную модель экспорта и открывая путь к единым хранилищам данных.

 

remote_write: протокол, надёжность и внедрение

remote_write реализует push-путь из прометея в внешнее долговременное хранилище. Основной механизм - HTTP POST к /api/v1/write (или аналогичному конечному точке), где тело запроса кодируется в protobuf и при необходимости сжатие осуществляется с помощью snappy. Формат WriteRequest включает множество временных рядов (timeseries), где каждый ряд определяется набором меток (labels) и сериям-значений (samples).

Ключевые аспекты протокола:

  • Структура данных: каждую временную серию характеризуют уникальная пара меток, включая имя метрики (name), и набор дополнительных лейблов. В рамках одной отправки могут быть упакованы десятки и сотни временных рядов с несколькими миллионами образцов.
  • Формат и кодирование: payload - protobuf-структура WriteRequest, обычно передаётся с использованием сжатия (snappy) и заголовком Content-Type: application/x-protobuf. Это обеспечивает эффективное сетевое взаимодействие и предсказуемый размер пакета.
  • Размеры и батчинг: удалённая архитектура требует разумной границы размера батча и частоты отправок. Большие батчи снижают накладные расходы на сетевые запросы, но увеличивают задержки до начала передачи. Малые батчи повышают латентность, но требуют больше RTT и могут перегружать при большом количестве источников.
  • Надёжность и ретраи: на стороне Prometheus обычно реализована логика повторных попыток с экспоненциальной задержкой, ограничениями на число повторов и backoff. Это критично, чтобы выдерживать временные перебои в доступности удалённого хранилища.
  • Idempotентность и коррекция ошибок: хотя WriteRequest уже предусматривает дубликаты, в практике стоит стремиться к минимизации повторной передачи одинаковых данных и к учёту возможной дубликации в целевом хранилище.
  • Безопасность: TLS/HTTPS обязателен, поддержка аутентификации на уровне HTTP (basic_auth, bearer tokens) и, в рамках корпоративной инфраструктуры, mTLS между Prometheus и удалённым хранилищем.
  • Мониторинг и наблюдаемость: в парадигме операционной практики необходимо держать под контролем очереди remote_write, задержки отправки, пропуски и количество ошибок. Элементы наблюдаемости включают в себя время записи в хранилище, средний размер батча, коэффициент retries и размер очереди.

Практические рекомендации по внедрению:

  • Выстраивайте несколько end-to-end очередей во избежание общего узкого места: если одно удалённое хранилище становится недоступно, другие источники не должны блокироваться.
  • Используйте агрегацию на стороне продюсера: если ваш конвейер отправляет метрики в несколько хранилищ, разумно агрегировать на уровне экспортёра или в конфигурации Prometheus для минимизации повторной отправки.
  • Балансировка нагрузки и геолокация: размещайте удалённые хранилища ближе к источникам метрик или используйте геораспределённые write-центры, чтобы снизить задержки и jitter.
  • Конфигурация и примеры: конкретика зависит от используемой платформы, однако базовые принципы остаются: обеспечить надёжность и предсказуемость задержек, а также мониторинг самой системы remote_write.

В качестве иллюстрации рассмотрим концептуальный фрагмент конфигурации Prometheus (без привязки к конкретной реализации) для remote_write:

// Концептуальная схема remote_write
remote_write:
  - url: "https://storage.example.org/api/v1/write"
    ## queue_config для контроля задержек и пропускной способности
    queue_config:
      capacity: 1000
      max_shards: 4
      max_samples_per_send: 1000
    ## параметры таймаута и retries
    remote_timeout: 30s
    write_relabel_configs:
      - **source_labels**: [__name__]
        regex: "http_requests_.*"
        action: keep

Приведённый фрагмент носит иллюстративный характер: конкретные имена полей и их значения зависят от реализации (Prometheus, обёртки, версия). Основной концепт - обеспечивать баланс между производительностью, надёжностью и предсказуемостью задержек в условиях перегрузок и частых сбоев.

  • Взаимодействие с federation и long-term storage: remote_write часто используется как мост к долговременному хранилищу в рамках federation-подходов. В контексте Thanos/Cortex/Mimir remote_write может выступать как входной канал в store-API, либо как источник данных для блоковой или графовой обработки в хранилищах. В любом случае следует учитывать различия в моделях хранения: хранилища могут требовать определённой структуры лейблов, а также специфики имен метрик и сопоставления временных рядов.

 

remote_read: протокол, доступ к удалённому хранилищу и оптимизация

remote_read формирует путь к чтению из внешних хранилищ. Этот API позволяет Prometheus и его окружению запрашивать данные из долговременного хранилища так, как если бы они находились локально. Основные характеристики:

  • Структура запроса и ответ: запрос (ReadRequest) включает временной диапазон, селекторы по меткам и по имени метрики; ответ (ReadResponse) содержит список временных серий и их точек времени. В реальных системах запрос может включать несколько цепочек условий (matchers) и наборы временных окон.
  • Поддержка кэширования и ленивых вычислений: для снижения задержек чтения из удалённого хранилища может применяться кэширование, предзагрузка и предикативная агрегация на уровне Querier или прокси-слоя.
  • Latency и соответствие срокам: remote_read может добавить задержки в запросы к Prometheus, поэтому стратегическое планирование latencies и параллелизма критично. При проектировании инфраструктуры следует учитывать лимит параллельных удалённых запросов и разумное время ожидания.
  • Различия между реализациями: Thanos, Cortex, Mimir предоставляют собственные архитектурные подходы к реализации remote_read и query-параметрам. Thanos, например, реализует store API с дополнительными слоями кэширования и индексации, что снижает нагрузку на источники; Cortex и Mimir строят распределённые блоки данных и читают их через отдельные стековые сервисы (Querier).
  • Безопасность и авторизация: remote_read должен поддерживать TLS и аутентификацию; в некоторых случаях применяется аутентификация на уровне прокси или сервисного уровня.

Практические рекомендации по эксплуатации remote_read:

  • Стратегия «близости к данным»: размещайте remote_read-эндоинты ближе к географическим регионам, к которым обращается основная аналитика, чтобы снизить латентность.
  • Поддерживайте агрегацию запросов: если возможно, используйте предагрегированные данные или предикаты выборки на стороне удалённого хранилища, чтобы уменьшить объём пересылаемых данных.
  • Ограничения по параллелизму: задавайте разумный уровень параллелизма и квоты на одновременные запросы к каждому удалённому источнику, чтобы не перегрузить сеть и удалённое хранилище.
  • Мониторинг remote_read: держите под контролем error_rate, latency, количество одновременных запросов и время выполнения. Эти метрики позволяют своевременно корректировать параметры и инфраструктуру.

Концептуальная схема взаимодействия между Prometheus и удалённым хранилищем может выглядеть так: Prometheus собирает экспозицию через scrape, отправляет данные через remote_write в долговременное хранилище; при запросах аналитики Prometheus или центрального аналитического сервиса remote_read обращается к удалённому хранилищу, которое возвращает данные за заданный период, после чего Prometheus продолжает обработку запросов, формируя готовые графики и алертинга. В реальных системах роль каждого элемента может меняться в зависимости от выбранной архитектуры хранения (store-gateway, blocks, хранение в объектном хранилище) и конфигурации кэширования.

 

Интеграция и эксплуатационные практики: Thanos, Cortex, Mimir

Интеграция с long-term storage и federation в современных корпоративных средах опирается на три наиболее распространённых решения: Thanos, Cortex и Mimir. Эти проекты расширяют функционал Prometheus за счёт долговременного хранения, обеспечения единого глобального запроса и масштабируемости.

  • Thanos: обеспечивает единый глобальный view данных через Store API и фрагменты хранения (object storage). Основные компоненты - sidecar (для каждого прометея), store-gateway (для доступа к архивным данным в объектном хранилище) и Querier (вычисление ответов на queries). Exposition и remote_write работают на уровне источников; remote_read может быть согласованно направлен к store-gateway для чтения данных из долговременного хранилища. В Thanos архитектура позволяет легко масштабировать хранение и запросы на уровне глобального кластера.

  • Cortex: ориентирован на горизонтальное масштабирование через технологии блоков (blocks) и слой Querier, что позволяет обслуживать большие объёмы данных. remote_read здесь часто реализуется через готовые API для чтения блоков; при настройке Prometheus к Cortex следует учитывать соответствие формата лейблов и агрегаций, чтобы сохранить совместимость и корректность запросов.

  • Mimir (Grafana Mimir): современная система долговременного хранения, которая поддерживает совместимые API Prometheus. В Mimir вопросы производительности и отказоустойчивости достигаются за счёт горизонтального масштабирования, кэширования и эффективной маршрутизации запросов. Интеграция с remote_write/read требует внимательного планирования конвейеров и подсистемы аутентификации между Prometheus и Mimir.

Типовые архитектурные паттерны:

  • Партитирование данных по регионам и кластерам с использованием remote_write на несколько конечных точек: каждый регион отправляет данные в ближайшее долговременное хранилище, а центральная аналитика читает данные через remote_read из нескольких источников.
  • Комбинация store-gateway и Querier в Thanos: данный паттерн обеспечивает быстрый доступ к архивным данным без необходимости полного вызова всех нод хранителя.
  • Единая точка обзора через federated-активность: Prometheus может использовать remote_read для обращения к удалённым хранилищам в разных кластерах, создавая единый глобальный view мониторинга.

Практические сведения об эксплуатации:

  • Наблюдаемость конвейера: мониторьте время жизни очередей remote_write, загрузку очереди, число успешных и неуспешных отправок, задержку между сбором и записью в хранилище. Для remote_read - задержку чтения, число ошибок чтения и нагрузку на Querier.
  • Безопасность и соответствие: требуются TLS-соединения и надёжная аутентификация. В корпоративной среде часто применяют mTLS и интеграцию с корпоративными секретами.
  • Управление жизненным циклом данных: при проектировании длительного хранения учитывайте политики хранения (retention, compaction), чтобы удалённое хранилище не стало узким местом по объёму и скорости обработки запросов.
  • Эволюция инфраструктуры: переход на Thanos/Cortex/Mimir потребует корректировок в сигнатурах метрик, валидации лейблов и согласования имени метрик между Prometheus и долговременным хранилищем.

 

Оптимизация производительности и отказоустойчивость на практике

В контексте больших платформ ключевые вопросы - задержки, отказоустойчивость и масштабируемость. Эффективная реализация exposition format, remote_write и remote_read требует предусмотрительности на этапе проектирования.

  • Модель задержек и backpressure: remote_write опирается на очереди и батчи, чтобы компенсировать временные сбои на стороне хранилища. Правильная конфигурация очереди и батчей - залог надёжности. Включение строгих ограничений по скорости и размеру батча может предотвратить перегрузку сети и сервиса хранилища.
  • Кэширование и локальная агрегация: на стороне хранилища целесообразно внедрять кэш-слои и индексы, что уменьшает нагрузку на удалённые источники и ускоряет ответы на запросы через remote_read. Это особенно полезно, когда запросы выполняются повторно для одного и того же диапазона времени.
  • Балансировка и географическая топология: размещение удалённых точек write и read ближе к соответствующим регионам снижает сетевую задержку и повышает устойчивость системы к сбоям в отдельных регионах.
  • Наблюдаемость и сигналы тревоги: монитори́нг очередей remote_write, выпадающих запросов и ошибок - критично для раннего обнаружения проблем. Применение алертинга на основе latency и error_rate позволяет быстро реагировать на ухудшение доступности внешних хранилищ.
  • Управление конфигурациями: для production-окружений полезно поддерживать шаблоны конфигураций, позволяющие быстро переключаться между локальным хранением и удалёнными хранилищами в зависимости от уровня нагрузки и бизнес-приоритетов.

 

Key takeaways

  • Exposition format обеспечивает простоту экспорта метрик и совместимость между экспортёрами и целевыми системами мониторинга, но требует внимательного управления карточностью и структурой лейблов.
  • remote_write - надёжный push-путь в долговременное хранение, который требует батчинга, ретраев, TLS/аутентификации и мониторинга очередей; он обеспечивает устойчивость к сбоям источников сбора.
  • remote_read - механизм чтения из внешних хранилищ, который требует продуманной архитектуры для минимизации латентности и обеспечения корректности агрегаций при федеративном доступе.
  • Интеграция с Thanos, Cortex и Mimir позволяет достигать масштабируемости и отказоустойчивости, обеспечивая единый источник правды для больших платформ и согласованные ответы на аналитические запросы.
  • Практики эксплуатации: используйте кэширование и географическую близость, контролируйте нагрузку на удалённые хранилища, поддерживайте строгий мониторинг и безопасность для устойчивого функционирования производственной мониторинговой инфраструктуры.
  • При проектировании архитектуры следует учитывать соответствие между экспортерской стороны и хранилищем: названия метрик и лейблы должны быть согласованы, чтобы избежать несоответствий при агрегации данных в облачных и локальных хранилищах.

 

FAQ

  1. Что такое exposition format и зачем он нужен?

Exposition format - это текстовый формат, которым экспортёры публикуют метрики для сбора в Prometheus. Он прост, легко читаем и поддерживает метаданные в виде HELP и TYPE. Формат играет роль отправной точки, после которой данные проходят в более сложные конвейеры, включая удалённое хранение и федеративный доступ.

 

  1. Как работает remote_write на уровне протокола?

Remote_write отправляет данные в удалённое хранилище через HTTP POST с Protobuf-пayload WriteRequest, часто с сжатием Snappy. В качестве транспортного уровня используется TLS. Пакеты содержат тысячи или миллионы точек времени, организованных в timeseries, каждая из которых имеет набор меток и серию samples (временных точек).

 

  1. Какие ключевые проблемы возникают с размером батчей в remote_write?

Слишком большие батчи могут привести к долгим задержкам в формировании и отправке, а слишком маленькие - к перегрузке сети и недоиспользованию пропускной способности. Оптимальная конфигурация достигается через баланс между размером батча, скоростью записи и надёжностью, а также через мониторинг очереди remote_write и времени ожидания.

 

  1. Что даёт remote_read для больших систем?

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

 

  1. Какие различия существуют между Thanos, Cortex и Mimir в контексте remote_read/write?
  • Thanos: Store API, sidecar, store-gateway и Querier. Хорошо подходит для глобальной агрегации и долговременного хранения на объектном хранилище.
  • Cortex: горизонтальное масштабирование через блоки и слой Querier; эффективен для больших объемов долговременного хранения и широкого спектра запросов.
  • Mimir: современная платформа хранения Grafana Mimir, ориентированная на совместимость с Prometheus API и масштабируемость. Включает механизмы маршрутизации и кэширования для повышения производительности чтения.
    Эти решения различаются архитектурой хранения, задержками и способами агрегации, однако общий принцип остаётся: remote_write ведёт данные в долговременное хранилище, remote_read читает их для выполнения запросов.

 

  1. Как обеспечить отказоустойчивость при работе с remote_write и remote_read?
  • Распределяйте write-endpoints по нескольким целям и регионам, дублируя источники данных.
  • Используйте очереди и батчи, контролируемые по размеру и времени, чтобы не перегружать удалённое хранилище.
  • Включайте мониторинг задержек, ошибок и backlog-метрик на каждом этапе конвейера.
  • Применяйте TLS/mTLS и строгую авторизацию для предотвращения несанкционированного доступа.
  • Реализуйте ретраи с экспоненциальной задержкой и ограничением числа повторов.

 

  1. Какие сценарии внедрения наиболее распространены для больших платформ?
  • Централизованный аналитический слой: локальные сборы через Prometheus превращаются в единый глобальный набор данных через Thanos/Cortex/Mimir.
  • Федеративная архитектура: несколько региональных Prometheus-подобных инстансов, данные которых образуют единый квази-глобальный набор через remote_read и store-слои.
  • Архивирование и быстрое восстановление: data-retention политики в долговременном хранилище, использование store-gateway для доступа к архиву без необходимости полного объема операций чтения.

 

  1. Какие ключевые метрики следует мониторить для remote_write и remote_read?
  • remote_write: queue_length, last_send_success_timestamp, write_errors, sample_size_per_send, send_latency, retry_count.
  • remote_read: read_latency, read_errors, concurrent_read_requests, bytes_read,_cache_hits (если используется кэширование).
  • Эти показатели позволяют оперативно выявлять перегрузку, сбои и узкие места в конвейере.

 

  1. Как обеспечить совместимость форматов между экспортёрами и долговременными хранилищами?

Важно поддерживать единый набор лейблов и согласование имён метрик. OpenMetrics и общепринятые конвенции по именованию снижают риск рассогласований и ошибок интерпретации при агрегации и анализе.

 

  1. Какие практики безопасности критичны для продакшн-окружения?

Потребуется TLS/HTTPS, аутентификация на уровне HTTP, возможность применения mTLS между Prometheus и хранилищем, а также контроль доступа на уровне кінцевых точек и шифрование данных в покое. Регулярно обновляйте ключи и сертификаты, отслеживайте аудит операций и храните секреты в подходящем секрет-менеджере.

 

## Приложение к главе: дополнительные замечания

  • Протоколы exposition format, remote_write и remote_read являются фундаментом для построения устойчивой мониторинговой инфраструктуры на больших платформах. Их правильная настройка и интеграция с Long-Term Storage (Thanos, Cortex, Mimir) позволяют сохранить единое представление о состояниях системы, обеспечить хранение исторических данных на протяжении длительного периода и эффективно выполнять аналитические запросы.
  • При выборе архитектуры для большой платформы следует учитывать географическую распределённость, требования к задержкам и доступности данных, а также планы по расширению. В некоторых случаях целесообразно реализовать гибридную схему, где часть данных хранится локально, а часть - в долговременных хранилищах, доступ к которым осуществляется через remote_read.
  • В эксплуатационной практике не следует рассматривать exposition format и remote_write/remote_read как отдельные компоненты; они должны быть частью единой политики управления данными, включая retention, агрегацию и маркировку метрик, чтобы обеспечить консистентность и качество данных на протяжении всего жизненного цикла мониторинга.

     

FAQ (продолжение)

11) Можно ли использовать exposition format напрямую для дальнего хранения без Prometheus?

Exposition format предназначен для экспортёров и снабжения Prometheus данными. Для долговременного хранения данные обычно маршируются через remote_write и соответствующие API удалённого хранилища. Exposition format остаётся на стороне источника данных, а долговременное хранение оборачивает этот формат в WriteRequest или аналоги.

 

12) Какие ограничения в случае использования multi-tenant среды?

Необходимо тщательно проектировать лейблы, чтобы избежать коллизий и перегрузки, обеспечивать изоляцию данных по проектам и корректную маршрутизацию remote_read/write между арендаторами. Важно поддерживать строгие политики доступа и аудита на уровне конечных точек.

 

13) Как выбрать между Thanos, Cortex и Mimir для конкретного кейса?

Выбор зависит от требований к масштабируемости, latency, архитектурным предпочтениям и существующей экосистемы. Thanos хорошо подходит для глобальных, распределённых окружений и единых глобальных view; Cortex - для горизонтального масштабирования блоками и высокой пропускной способности; Mimir - для тесной интеграции в экосистему Grafana и унифицированного пути к прометею API. Желательно провести пилотный этап с несколькими сценариями и сравнить показатели latency, throughput и стоимость владения.

 

14) Что делать при всплеске нагрузки на remote_write?

Проведите трассировку конвейера, увеличьте capacity очереди, при необходимости распределите источники по нескольким endpoint-ы, активируйте дополнительные хранилища, оптимизируйте батчи и параметры retry, проверьте конфигурацию TLS и сетевых фильтров. В критических случаях целесообразно временно снизить объём собранных метрик или фильтровать по критериям отбора лейблов.

 

15) Каковы лучшие практики для мониторинга самого конвейера?

Включите метрики очередей remote_write, latencies, error_rate, number_of_write_requests; для remote_read - latency_read, read_errors, number_of_concurrent_read_requests. Организуйте алертинг на системные переменные, такие как backlog и timeout, и используйте дашборды, которые позволяют быстро локализовать узкие места в конвейере.

 

16) Можно ли заменить exposition format на более современный вариант?

Exposition format остаётся базовым стандартом и широко поддерживается экспортёрами. В некоторых случаях можно переходить к OpenMetrics-совместимым экспортёрам и более строгим спецификациям, но основа остаётся прежней: совместимость, предсказуемость и простота. OpenMetrics добавляет дополнительные понятия к формату, но не отменяет существующий экспортерский подход.

 

17) Какие сценарии тестирования наиболее полезны для протоколов exposition, remote_write и remote_read?

  • Тестирование совместимости экспортеров с Prometheus и целевыми хранилищами (WriteRequest/ReadRequest).
  • Нагрузочное тестирование очередей remote_write и проверки погрешности доставки.
  • Тестирование сценариев отказа (пауза доступа к хранилищу, задержки сети) и поведения ретраев.
  • Энд-ту-энд тестирование через продакшн-данные в песочнице: от экспорта до долговременного хранения и обратно через remote_read.

 

Изучение протоколов exposition format, remote_write и remote_read в контексте Production-архитектуры Prometheus позволяет проектировать мониторинг больших платформ с учётом масштабируемости, отказоустойчивости и эффективной эксплуатации. Архитектурные решения должны синхронизироваться с выбором долговременного хранилища - Thanos, Cortex или Mimir - и строиться вокруг принципов надежности, наблюдаемости и безопасности. В качестве ключевого вывода можно отметить, что целью является не только сбор метрик, но и обеспечение единообразного, доступного и устойчивого доступа к историческим данным в рамках federation и многоуровневой архитектуры хранения.

← Предыдущая статья
Основы сбора метрик: метрики, targets, экспортёры и Service Discovery
Следующая статья →
PromQL: язык запросов, основы агрегаций и функций

 

Узнать стоимость решенияЗапросить видео презентацию

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • ПАО «Банк Уралсиб» (Публичное акционерное общество «Банк Уралсиб») — российский коммерческий банк. В 2020 году входил в топ-20 банков РФ по размеру активов (рэнкинг рейтингового агентства Эксперт РА), в 2021 году — в топ-25 крупнейших банков страны по расчётам агрегатора Банки.ру

  • Авиакомпания NordStar (АО «АК «НордСтар») – работает под данным брендом с 2008 г. и сейчас входит в топ-15 крупнейших российских авиакомпаний (данные Росавиации) с пассажирооборотом более 1 млн человек в год. АО «АК «НордСтар» выполняет и внутренние, и внешние рейсы, а ее основные хабы - Домодедово, Пулково и Емельяново. С 2021 года компания является базовым перевозчиком аэропорта Норильск.

  • ПАО «Ростелеком» — российский провайдер цифровых услуг и сервисов. Предоставляет услуги широкополосного доступа в Интернет, интерактивного телевидения, сотовой связи, местной и дальней телефонной связи и др. Занимает лидирующие позиции на российском рынке высокоскоростного доступа в интернет, платного ТВ, хранения и обработки данных, а также кибербезопасности

  • MoneyCare — кредитная платформа и сервис для ПОС-кредитования в магазинах, установленная в более чем 18 тысячах трейдинговых точек и сотрудничающая с 11 главными банками России.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.