Перечисление верхних K конечных точек по количеству исключений с помощью prometheus - PullRequest
0 голосов
/ 11 декабря 2018

Я использую пружинную загрузку 2.x и использую микрометр для записи метрик входящего http-запроса в PrometheusMeterRegistry.

Конечная точка привода метрик весенней загрузки отображает метрику, как показано ниже

http_server_requests_seconds_count{exception="None",method="GET",status="200",uri="/v2/endpoint1",} 272.0 http_server_requests_seconds_count{exception="SomeException",method="GET",status="400",uri="/v2/endpoint1",} 8.0 http_server_requests_seconds_count{exception="SomeOtherException",method="GET",status="422",uri="/v2/endpoint1",} 5.0 http_server_requests_seconds_count{exception="None",method="GET",status="200",uri="/v2/endpoint2",} 472.0 http_server_requests_seconds_count{exception="SomeException",method="GET",status="400",uri="/v2/endpoint2",} 11.0 http_server_requests_seconds_count{exception="SomeOtherException",method="GET",status="422",uri="/v2/endpoint2",} 7.0

Меня интересует следующий результат

Вывод: (10 лучших за последние x минут)

1, /v2/endpoint2, {actual count of non 200 status codes in last minutes or so}
2, /v2/endpoint1, {actual count of non 200 status codes in last minutes or so}

Я пробовал с помощью функции подсчета что-то похожее на приведенное ниже.Однако это не позволяет мне указать временной диапазон.Я не мог заставить его работать так, как я упоминал выше.Ценю любую помощь по этому вопросу.

count(http_server_requests_seconds_count{status!="200"}) by (uri, method)

1 Ответ

0 голосов
/ 11 декабря 2018

Вы хотите получить итоговую сумму за единицу измерения / метод, а затем выбрать первые 10 из них:

topk(10,
  sum by (uri, method)(
    increase(http_server_requests_seconds_count{status!="200"}[10m])
  )
)
...