Ответ
Sentry напрямую не предоставляет готовую метрику RPS, так как его основная задача — отслеживание ошибок и мониторинг производительности транзакций, а не высокочастотный метрический мониторинг. Однако его инструменты позволяют вычислить и визуализировать этот показатель.
Существует два основных способа:
1. Через Мониторинг производительности (Performance Monitoring)
Sentry автоматически собирает метрику throughput (пропускная способность) для каждой транзакции (например, для каждого эндпоинта API). Throughput показывает количество транзакций в минуту (tpm). Вы можете создать виджет на дашборде, отображающий throughput, и, хотя это не RPS, это близкий показатель для оценки нагрузки.
2. Через Пользовательские метрики (Custom Metrics) — Рекомендуемый способ
Это наиболее точный и гибкий подход. Вы можете вручную инкрементировать счетчик при каждом входящем запросе, а Sentry агрегирует эти данные.
Шаги:
-
Отправка метрики из кода. В вашем приложении (например, в middleware) нужно добавить вызов
metrics.incr()
.# Пример для Python (FastAPI/Django middleware) from sentry_sdk import metrics def process_request(request): # Инкрементируем счетчик с тегом для каждого эндпоинта metrics.incr( key='http.requests', value=1, tags={'endpoint': request.path} ) # ... остальная логика обработки запроса
-
Визуализация в Sentry.
- Перейдите в раздел Dashboards.
- Создайте новый виджет (Add Widget).
- Выберите тип визуализации (например, Line Chart).
- В качестве метрики (Y-Axis) укажите
count(http.requests)
. - Установите агрегацию по времени (например,
per second
), чтобы получить RPS.
Заключение
Хотя Sentry позволяет отслеживать RPS, для этой задачи лучше подходят специализированные системы мониторинга, такие как Prometheus или Datadog. Они оптимизированы для сбора и хранения большого объема временных рядов с высокой частотой.
Рекомендация: Используйте Sentry для глубокого анализа производительности и ошибок конкретных запросов, а Prometheus/Grafana — для общего мониторинга системных метрик, включая RPS.