google-cloud-platform - 警报策略“匹配资源满足所有条件”与过滤器或 groupByFields 不匹配
问题描述
由于 GCP Stackdriver 为 Pub/Sub 创建警报,我愿意创建警报,例如“如果订阅有超过 XXX 个等待主题的消息(未确认)并且该消费者在该主题上的消费率接近0,然后触发警报”。
我更习惯于 Prometheus,我可以简单地依靠标签来加入时间序列,但我想知道如何使用 Stackdriver 来做到这一点。
起初,我考虑使用 2 个条件和“在匹配资源上满足所有条件时策略违反”,但我想知道“匹配资源”是否与 Prometheus 中的行为相同。
这是我想到的警报,但即使两个条件未完全满足,它似乎也会触发:
{
"combiner": "AND_WITH_MATCHING_RESOURCE",
"conditions": [
{
"conditionThreshold": {
"aggregations": [
{
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
"metadata.system_labels.topic_id",
"resource.label.subscription_id"
],
"perSeriesAligner": "ALIGN_RATE"
}
],
"comparison": "COMPARISON_LT",
"duration": "300s",
"filter": "metric.type=\"pubsub.googleapis.com/subscription/ack_message_count\" resource.type=\"pubsub_subscription\" resource.label.\"project_id\"=\"pl-service-prod-lm-fr\"",
"thresholdValue": 1,
"trigger": {
"count": 1
}
},
"displayName": "Ack message count"
},
{
"conditionThreshold": {
"aggregations": [
{
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
"metadata.system_labels.topic_id",
"resource.label.subscription_id"
],
"perSeriesAligner": "ALIGN_MEAN"
}
],
"comparison": "COMPARISON_GT",
"duration": "300s",
"filter": "metric.type=\"pubsub.googleapis.com/subscription/num_undelivered_messages\" resource.type=\"pubsub_subscription\" resource.label.\"project_id\"=\"pl-service-prod-lm-fr\"",
"trigger": {
"count": 1
}
},
"displayName": "Unacked messages"
}
],
"displayName": "Pub/Sub is not consumed",
"enabled": true,
"incidentStrategy": {}
}
解决方案
推荐阅读
- ios - 浅色状态栏样式不适用于 iPhone XS max 和 XR?
- android - 如何在 SharedPreferences 中使用上下文?
- unity3d - 为什么我创建的新画布会变得巨大且无法调整大小?
- javascript - 浏览器扩展/发送消息/如何在内容脚本尚未加载时捕获错误
- angular - 数据不显示在表格中,但它确实存在
- laravel - Laravel 注册文件上传
- tensorflow - 根据给定阈值过滤多个图像预测
- android - 如何将 FFT 字节转换为 wav 文件
- javascript - Jquery concat变量到字符串不起作用
- javascript - ReactJs如何呈现未读通知的数量