Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Kubernetes: prometheus, metrics, scrape

Как с помощью системы мониторинга Prometheus собирать метрики?

Этот вопрос проверяет понимание, как приложение и инфраструктура отдают метрики, как Prometheus их собирает (scrape), и как всё это настраивается.

Короткий ответ

Prometheus собирает метрики по принципу pull: он сам ходит по HTTP-эндпоинтам и забирает данные в текстовом формате. Чтобы начать собирать метрики, приложение нужно “проинструментировать” — добавить библиотеку Prometheus-клиента и повесить HTTP-эндпоинт metrics. Далее в конфигурации Prometheus настраиваются scrape_configs, где указываются адреса таргетов (сервисов) и интервалы опроса. Для сторонних систем используются exporter’ы (например, node_exporter). В итоге Prometheus регулярно опрашивает все таргеты и сохраняет метрики во внутреннюю time-series базу.

Длинный ответ

Prometheus — это система мониторинга, ориентированная на сбор временных рядов (time series) метрик. Ключевая идея — не приложение “шлёт” метрики куда-то, а Prometheus сам их забирает по HTTP.

Основные шаги настройки сбора метрик

  1. Инструментировать приложение (добавить сбор метрик).

  2. Организовать HTTP-эндпоинт /metrics.

  3. Настроить Prometheus на опрос этого эндпоинта.

  4. (Опционально) добавить exporter’ы для систем, которые не умеют отдавать метрики сами.


Инструментирование приложения

Для разных языков есть свои Prometheus-клиенты: для Python — prometheus_client, для Go — prometheus/client_golang и т.д.

Простой пример на Python:

python

from prometheus_client import Counter, generate_latest
from prometheus_client import CONTENT_TYPE_LATEST
from flask import Flask, Response

app = Flask(__name__)
REQUESTS = Counter("app_requests_total", "Total number of requests")

@app.route("/")
def index():
    REQUESTS.inc()
    return "Hello"

@app.route("/metrics")
def metrics():
    data = generate_latest()
    return Response(data, mimetype=CONTENT_TYPE_LATEST)

Здесь:

  • объявляем счётчик app_requests_total;

  • увеличиваем его при каждом запросе;

  • отдаём все метрики на /metrics.


Настройка Prometheus

Prometheus конфигурируется через prometheus.yml. В нём указываются scrape_configs — какие сервисы он опрашивает.

yaml

scrape_configs:
  - job_name: "my_app"
    static_configs:
      - targets: ["my-app:8000"]

Prometheus будет ходить на http://my-app:8000/metrics (по умолчанию путь /metrics) с заданным интервалом, по умолчанию каждые 15 секунд.


Exporter’ы

Если система не умеет отдавать метрики в формате Prometheus, используют экспортёры:

  • node_exporter — метрики хоста (CPU, RAM, диски);

  • blackbox_exporter — проверка доступности HTTP/TCP/ICMP;

  • postgres_exporter, redis_exporter и т.д.

В Kubernetes обычно:

  • деплоят Prometheus;

  • деплоят sidecar- или отдельные exporter’ы;

  • используют ServiceMonitor/PodMonitor (в kube-prometheus-stack) для автоматического обнаружения таргетов.


Вывод

Сбор метрик в Prometheus — это:

  • приложение отдаёт метрики по HTTP;

  • Prometheus регулярно опрашивает /metrics;

  • все данные сохраняются как временные ряды и могут быть использованы в алертах и Grafana.

Это стандартный подход для мониторинга микросервисов и Kubernetes-кластеров.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Kubernetes

    Kubernetes

Ключевые слова

#prometheus

#metrics

#scrape

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.