Дата: 2025-01-24
Принято
Для оценки качества работы кода требуется собирать метрики, такие как время выполнения запросов к БД,, потребление процессорного времени и памяти.
Для измерения скорости - Uptrace.
Для сбора внутренних метрик JVM - Prometheus и Grafana (cм. демо).
Возможность оценить работу всех подсистем проекта.
[наверх]
Это популярное и мощное решение. На сайте производителя предлагается облачный вариант, но можно хостить самому, бесплатно. Uptrace накапливает метрики в ClickHouse, а метаданные метрик хранит в Postgres. Графики полезны тем, что отображаются не средние значения, а персентили1: p50, p90, p99. Это позволяет ответить, например, на вопрос, в какое время укладывается обработка 90% входящих запросов (p90), оставляя пики (10%) «за скобками». Соответственно бизнес-требования по скорости накладываются не на 100% запросов, что технически невозможно гарантировать, а на 90% или на 99%. Вот пример графика с сайта Uptrace:
Персентиль (или процентиль) - мера, в которой процентная часть выборки не превышает её. Например, p90 для времени выполнения запросов - это столько секунд, что время выполнения 90% запросов не превышает его.
↩