statusCode для отслеживания времени запроса. И при пуше значений прометеус в моем nodejs приложении выводит следующие метрики
http_request_duration_sec_bucket{le="0.02"} 0
http_request_duration_sec_bucket{le="0.05"} 0
http_request_duration_sec_bucket{le="0.1"} 1
http_request_duration_sec_bucket{le="0.2"} 1
http_request_duration_sec_bucket{le="0.3"} 1
http_request_duration_sec_bucket{le="0.4"} 1
http_request_duration_sec_bucket{le="0.5"} 1
http_request_duration_sec_bucket{le="1"} 1
http_request_duration_sec_bucket{le="+Inf"} 1
http_request_duration_sec_sum 0.056137855
http_request_duration_sec_count 1
http_request_duration_sec_bucket{le="0.02",method="GET",route="/api/v1/test",statusCode="200"} 0
http_request_duration_sec_bucket{le="0.05",method="GET",route="/api/v1/test",statusCode="200"} 0
http_request_duration_sec_bucket{le="0.1",method="GET",route="/api/v1/test",statusCode="200"} 1
http_request_duration_sec_bucket{le="0.2",method="GET",route="/api/v1/test",statusCode="200"} 1
http_request_duration_sec_bucket{le="0.3",method="GET",route="/api/v1/test",statusCode="200"} 1
http_request_duration_sec_bucket{le="0.4",method="GET",route="/api/v1/test",statusCode="200"} 1
http_request_duration_sec_bucket{le="0.5",method="GET",route="/api/v1/test",statusCode="200"} 1
http_request_duration_sec_bucket{le="1",method="GET",route="/api/v1/test",statusCode="200"} 1
http_request_duration_sec_bucket{le="+Inf",method="GET",route="/api/v1/test",statusCode="200"} 1
http_request_duration_sec_sum{method="GET",route="/api/v1/test",statusCode="200"} 0.056
то есть не только sum, count и bucket с лэйблами, но и общий (без лейблов). Это нормальное поведение или нет? Есть другая гистограма, в которой данной проблемы нет.
Нормально. Правда буквально вчера я за такую простыню бил прогаммистов. Вам не нужна такая детализация по всем эндпоинтам!
У нас есть такая же гистограмма по измерению времени исполнения SQL запросов к БД и поисковому движку, там нет по какой-то причине общего показателя. Нагрузка планируется очень серьезная, цель - следить за самыми долгими урлами. Подскажите, пожалуйста, какие лейблы тогда лучше сделать на ваш взгляд?? Вопрос возник еще и из-за того, что при выведении графика в графану с помощью запроса sum(rate(http_request_duration_sec_sum{container=~"$container",route!~"/api/health/.*", statusCode=~".+"}[5m])) by (statusCode) / sum(rate(http_request_duration_sec_count{container=~"$container",route!~"/api/health/.*", statusCode=~".+"}[5m])) by (statusCode) * 1000 получаем неадекватные графики. Если делать sum by по всем метрикам, то значения по роутам получаются адекватные. Но когда делаем sum by (statusCode), время запроса показывается от 3 до 8 секунд. С чем это может быть связано?
у вас там много разбития по времени какой смысл знать сколько отработало за 0.1/0.2/0.3?
принял, а что можете подсказать по поводу неадекватных результатов запроса в графане?
Обсуждают сегодня