Какой у вас опыт работы с системой мониторинга Prometheus?

«Какой у вас опыт работы с системой мониторинга Prometheus?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Работал с Prometheus как с основным инструментом для сбора и хранения метрик.

Архитектура и компоненты:

  1. Prometheus Server: Сбор метрик по pull-модели, хранение в TSDB.
  2. Exporters: Использовал node_exporter для метрик ОС, jmx_exporter для JVM.
  3. Client Libraries: Интеграция в Java-приложения через Micrometer (Spring Boot Actuator).
  4. Alertmanager: Обработка и маршрутизация алертов.
  5. Grafana: Визуализация метрик.

Настройка в Spring Boot (application.yml):

management:
  endpoints:
    web:
      exposure:
        include: health,metrics,prometheus
  metrics:
    export:
      prometheus:
        enabled: true
    distribution:
      percentiles-histogram:
        http.server.requests: true # Включение гистограмм для таймингов

Пример правила алерта (prometheus.yml):

groups:
  - name: example
    rules:
    - alert: HighErrorRate
      expr: rate(http_server_requests_errors_total[5m]) > 0.05
      for: 2m
      labels:
        severity: warning
      annotations:
        summary: "Высокая частота ошибок в приложении"

Почему Prometheus? Система эффективна для мониторинга динамических облачных сред благодаря service discovery, мощному языку запросов PromQL и надежной модели хранения временных рядов.