Как я могу написать упрощенное правило предупреждения о комплексном прометее? - PullRequest
0 голосов
/ 29 марта 2020

Выражение моего правила оповещения показано ниже, мне нужно написать до 20 правил оповещения с одним и тем же выражением, но имя-метода и имя-службы варьируются от правила к правилу, что делает мой файл alert.yaml безобразным, может кто-нибудь указать упрощенный способ написания этот тип оповещений

Выражение:

( sum(rate(grpc_server_handling_seconds_bucket{endpoint="http",grpc_method="MethodName",grpc_service="ServiceName",grpc_type="unary",job="JobName",le="1",service="ServiceName"}[15m])) by (job)+sum(rate(grpc_server_handling_seconds_bucket{endpoint="http",grpc_method="MethodName",grpc_service="ServiceName",grpc_type="unary",job="JobName",le="5",service="ServiceName"}[15m])) by (job) ) / 2 /  sum(rate(grpc_server_handling_seconds_count{endpoint="http",grpc_method="MethodName",grpc_service="ServiceName",grpc_type="unary",job="JobNAme",service="ServiceName"}[15m])) by (job) < 0.9

1 Ответ

0 голосов
/ 29 марта 2020

Если вы хотите оповещать обо всех method_names & service_names , вы можете просто пропустить добавление их в селектор меток целиком

(
  (
    sum by (job) (rate(grpc_server_handling_seconds_bucket{endpoint="http",grpc_type="unary",job="JobName",le="1",service="ServiceName"}[15m])) 
  +
    sum by (job) (rate(grpc_server_handling_seconds_bucket{endpoint="http",grpc_type="unary",job="JobName",le="5",service="ServiceName"}[15m]))
  ) / 2 
/  
 sum by (job)(rate(grpc_server_handling_seconds_count{endpoint="http",grpc_type="unary",job="JobNAme",service="ServiceName"}[15m]))
) < 0.9

В противном случае вы можете использовать некоторые шаблоны инструмент, подобный ytt , для генерации необходимых правил для всех различных комбинаций method_names & service_names

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...