我如何以简化的方式编写普罗米修斯复杂警报规则?
How can i write the prometheus complex alerting rule in simplified manner?
我的警报规则的表达式如下所示,我需要用相同的表达式编写多达 20 个警报规则,但是 method_name 和 service_name 因规则而异,因此我的 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
如果你想提醒所有 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 和 [ 的所有不同组合生成所需的规则=25=]
我的警报规则的表达式如下所示,我需要用相同的表达式编写多达 20 个警报规则,但是 method_name 和 service_name 因规则而异,因此我的 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
如果你想提醒所有 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 和 [ 的所有不同组合生成所需的规则=25=]