Вопрос проверяет знание метрик для измерения длительности выполнения операций в системах мониторинга и профилирования.
При измерении длительности выполнения операции важно не просто фиксировать среднее время, а понимать распределение значений. Среднее может быть обманчивым из-за выбросов. Наиболее информативной метрикой является гистограмма (histogram) или специализированный таймер (timer), который часто реализуется на основе гистограммы.
Гистограмма собирает данные в интервалы (buckets) и позволяет вычислять процентили, такие как p50 (медиана), p95 и p99. Это даёт полную картину: например, если p99 в 10 раз больше среднего, значит, есть редкие, но очень медленные запросы, которые нужно оптимизировать.
from prometheus_client import Histogram
import time
# Создаём гистограмму с buckets от 0.1 до 10 секунд
request_duration = Histogram(
'request_duration_seconds',
'Time spent processing request',
buckets=[0.1, 0.5, 1, 2.5, 5, 10]
)
def handle_request():
start = time.time()
# ... обработка запроса ...
duration = time.time() - start
request_duration.observe(duration)
Используйте гистограмму или таймер для измерения длительности операций, чтобы получать не только среднее, но и процентили. Это помогает выявлять аномалии и принимать обоснованные решения по оптимизации производительности.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
Node.js
Testing
Ключевые слова
Подпишись на Golang Developer в телеграм