Это абсолютный минимум того, что должно интересовать Prometheus в вашем приложении.
Трафик (Traffic)
Что измеряет: Насколько востребован сервис?
Метрики:
- HTTP:
http_requests_total(RPS - Requests Per Second). - gRPC:
grpc_server_requests_total. - Message Queue:
messages_consumed_total,messages_produced_total.
Важно: Разбивать по лейблам service_name, method, path, endpoint.
Ошибки (Errors)
Что измеряет: Частота неудачных запросов/обработок.
Метрики:
- HTTP:
http_requests_total{status_code=~”500”}. - gRPC:
grpc_server_requests_total{grpc_code!=”OK”}. - Общие:
exceptions_thrown_total(по типам исключений).
Важно: Считать rate ошибок, а не абсолютные значения. rate(errors[5m]) / rate(total_requests[5m]) \* 100.
Задержка (Latency)
Что измеряет: Как быстро сервис отвечает?
Метрики:
- Гистограмма!
http_request_duration_seconds_bucket(и её аналоги дляgRPC,DBи т.д.).
Важно: Смотреть на перцентили (95й, 99й), а не на среднее. histogram_quantile(0.95, rate(...[5m])). 99-й перцентиль покажет худший опыт ваших пользователей.
Насыщение (Saturation)
Что измеряет: Насколько “занят” сервис? Насколько он близок к своему лимиту?
Метрики:
- Инфраструктура:
CPU usage,Memory usage,Disk I/O. - Приложение: Размер очереди задач (
queue_size_current), использование пулов соединений (db_connections_active), заполненность кэша.