Я хочу создать оповещение благодаря GCP Stackdriver, чтобы создать оповещение для Pub / Sub, такое как «ЕСЛИ подписка имеет более XXX ожидающих сообщений (не распакованных) для темы И уровень потребления этого потребителя на этомтема рядом с 0, затем выдает предупреждение ".
Я больше привык к Прометею, где я могу просто положиться на ярлыки, чтобы как-то присоединиться к временным сериям, но мне интересно, как это сделать с помощью Stackdriver.
Сначала я подумал об использовании 2 условий с «нарушением политики, когда ВСЕ условия выполняются на совпадающих ресурсах», но мне интересно, имеет ли это «совпадающие ресурсы» то же поведение, что и в Прометее.
Вот предупреждение, о котором я подумал, но, похоже, оно срабатывает, даже если два условия не выполнены полностью:
{
"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": {}
}