目前我设置了一个简单的警报规则,它使用黑盒导出器的"probe_success"指标在探测关闭时发出警报,这很明显。
要求是警报中包含失败请求的状态代码。因此,与其只说"...已关闭",它应该包含状态代码("probe_http_status_code"),例如"...已下降(500)"。
因为状态代码是"probe_http_status_code"的值,所以我无法同时连接"probe_success"和"probe_http_status_code"的标签以获得我想要的结果。
我还读到指标值不能作为标签连接,这令人失望。 https://github.com/prometheus/prometheus/issues/2393
我也没有发现有关在警报规则本身中将 PromQL 表达式作为单独标签传递的任何其他内容。
我知道我在这里没有放太多"你已经尝试过什么?"的例子,但老实说,我到处都在尝试让这个工作的东西,我没有任何可靠的"我已经尝试过这个"的例子"。
您可以使用and
来实现此目的:
probe_http_status_code and probe_success == 0
因为这两个指标具有相同的标签。然后,警报表达式的值将是状态代码。