google-cloud-platform - 如何在命令行中创建具有多个条件的 Gcloud 警报政策

标签 google-cloud-platform gcloud google-cloud-stackdriver google-cloud-monitoring

我正在尝试通过具有多个条件的 Gcloud 为 Cloud-Sql instance_state 创建单个警报策略。

如果实例处于“RUNNABLE”“FAILED”状态超过5分钟,则应触发警报。我能够在控制台中创建它,下面是屏幕截图:

enter image description here

现在我使用命令行尝试相同的操作并给出此 gcloud 命令:

    gcloud alpha monitoring policies create \
         --display-name='Test Database State Alert ('$PROJECTID')' \
         --condition-display-name='Instance is not running for 5 minutes'\
         --notification-channels="x23234dfdfffffff" \
         --aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_COUNT_TRUE"}' \
         --condition-filter='metric.type="cloudsql.googleapis.com/database/instance_state" AND resource.type="cloudsql_database" AND (metric.labels.state = "RUNNABLE")' 
OR 'metric.type="cloudsql.googleapis.com/database/instance_state" AND resource.type="cloudsql_database" AND (metric.labels.state = "FAILED")' \
         --duration='300s' \
         --if='> 0.0' \
         --trigger-count=1 \
         --combiner='OR' \
         --documentation='The rule "${condition.display_name}" has generated this alert for the "${metric.display_name}".' \
         --project="$PROJECTID" \
         --enabled

我在条件的 OR 部分收到以下错误:

ERROR: (gcloud.alpha.monitoring.policies.create) unrecognized arguments:
  OR
  metric.type="cloudsql.googleapis.com/database/instance_state" AND resource.type="cloudsql_database" AND (metric.labels.state = "FAILED")

即使我将 ( ) 放在条件上,它仍然会失败,|| 运算符也会失败。

正确的 gcloud 命令是什么?另外,我希望警报策略的结构与云控制台中创建的结构类似,如上所示。

最佳答案

我能够使用gcloud alpha monitoring policies conditions create 附加附加条件。

gcloud alpha monitoring policies create \
    --notification-channels=projects/qwiklabs-gcp-04-d822dd6cd419/notificationChannels/2510735656842641871 \
    --aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_MEAN"}' \
    --condition-display-name='CPU Utilization >0.95 for 1m'\
    --condition-filter='metric.type="compute.googleapis.com/instance/cpu/utilization" resource.type="gce_instance"' \
    --duration='1m' \
    --if='> 0.95' \
    --display-name=' alert on spikes or consistantly high cpu' \
    --combiner='OR'

gcloud alpha monitoring policies list --format='value(name,displayName)'

gcloud alpha monitoring policies conditions create \
    projects/qwiklabs-gcp-04-d822dd6cd419/alertPolicies/1712202834227136574 \
    --aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_MEAN"}' \
    --condition-display-name='CPU Utilization >0.80 for 10m'\
    --condition-filter='metric.type="compute.googleapis.com/instance/cpu/utilization" resource.type="gce_instance"' \
    --duration='10m' \
    --if='> 0.80' 

重复的--condition-filter子句对我不起作用。 YMMV。

关于google-cloud-platform - 如何在命令行中创建具有多个条件的 Gcloud 警报政策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67515569/

相关文章:

docker - 哪个适用于dockerized应用的google服务不需要http请求?

mysql - 谷歌云SQL插入性能缓慢

go - 为什么Go程序卡在gcloud应用部署上?

gcloud 崩溃(UnicodeEncodeError): 'ascii' codec can't encode character u'\xe7' in position 13: ordinal not in range(128)

google-cloud-platform - 数据流项目中的堆栈驱动程序监控 API

postgresql - CrashLoopBackOff (postgres) - GCP

google-cloud-platform - GCP BigQuery 资源级成本汇总

database - Cloud Spanner 插入 ID

google-cloud-stackdriver - 安装在 VM 上的 GCP stackdriver-agent 每分钟发送一次奇怪的日志

node.js - Firebase Functions 记录对象占用大量空间