使用 gcloud 创建 Stackdriver 警报策略? (不从文件加载)
Create a Stackdriver Alert Policy using gcloud? (without loading from file)
所以我设置了一个通知渠道:
gcloud alpha monitoring channels create \
--description='test notification' \
--display-name='test_channel' \
--type=email \
--channel-labels=email_address=example@gmail.com
但我似乎无法获得与 command line 一起使用的警报策略(尽量避免使用从文件加载,因为我需要使用模板)。这似乎应该有效:
gcloud alpha monitoring policies create \
--notification-channels=test_channel \
--aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_MEAN"}' \
--condition-display-name='CPU Utilization >0.80 for 10m'\
--condition-filter='metric.type="appengine.googleapis.com/flex/instance/cpu/utilization" resource.type="gae_instance"' \
--duration='1min' \
--if='> 0.80' \
--display-name='test alert'
但是 returns:
Invalid value for [--aggregation]: Should only be specified if
--condition-filter is also specified.
但是,如您所见,上面有一个 --condition-filter
标志。我尝试对其重新排序,以便 --condition-filter
出现在 --aggregation
之前,但这会导致持续时间错误,尽管它已经与文档匹配,并且会进行一些细微的编辑,例如 =60s
、=1min
或在 --aggregation
中添加引号似乎没有帮助:
gcloud alpha monitoring policies create \
--notification-channels=test_channel \
--condition-filter='metric.type=appengine.googleapis.com/flex/instance/cpu/utilization resource.type=gae_instance' \
--aggregation='{"alignmentPeriod": "20s","perSeriesAligner": "ALIGN_MEAN"}' \
--condition-display-name='CPU Utilization >0.80 for 1m'\
--duration='1min' \
--if='> 0.80' \
--display-name='test alert'
怎么了?为什么我会收到这些错误?
经过一些刻意的试错,我设法通过一些更改让它工作。
首先,我强烈建议您使用最新的 Cloud SDK 版本 - 如果您还没有使用 gcloud components update
,请将其更新到最新版本。就我而言,我使用了 Cloud SDK v275.0.0
.
您提供的第一个命令片段可以正确创建通知渠道,因此应该保持不变:
gcloud alpha monitoring channels create \
--description='test notification' \
--display-name='test_channel' \
--type=email \
--channel-labels=email_address=example@gmail.com
不过,为了创建 Stackdriver Monitoring 政策,我不得不进行一些更改:
--duration
标志指定的时长好像没有
认清单位;我不得不从 --duration='1min'
更改为
--duration='1m'
为了不抛出错误。
需要警报策略的组合器,因此我在这种情况下添加了一个 --combiner
选项设置为 AND
的组合器:--combiner='AND'
.
指定的通知渠道
--notification-channels
标志要求和 ID
或完全
限定标识符 - 它不解析显示名称,所以我
将其更改为 --notification-channels=13234113421234567
.
您可以找到 ID
或完全限定的标识符
您之前创建的通知渠道:
gcloud alpha monitoring channels list \
--filter='displayName="test_channel"' \
--format='value(name)'
最后,用于创建警报策略的 gcloud
命令应该与此类似:
gcloud alpha monitoring policies create \
--notification-channels=13234113421234567 \
--aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_MEAN"}' \
--condition-display-name='CPU Utilization >0.80 for 10m'\
--condition-filter='metric.type="appengine.googleapis.com/flex/instance/cpu/utilization" resource.type="gae_instance"' \
--duration='1m' \
--if='> 0.80' \
--display-name='test alert' \
--combiner='AND'
请注意,此命令处于 alpha 开发状态,因此某些特性或功能可能尚未完全充实和/或测试。
谢谢@maxim,对我帮助很大!
这是我用来部署侦听系统日志消息的基于日志的指标:
创建基于日志的指标:
gcloud logging metrics create "S3-SQL-backup-failed-test2" \
--description "The backup has failed go over the logs to find out why (tag: backup-to-s3)." \
--log-filter "resource.type=gce_instance AND
resource.labels.instance_id=${INSTANCE_ID} AND
logName=projects/${PROJECT_ID}/logs/syslog AND
'SQL backup has failed failure occurred during the dump file exists validation'"
创建监视器电子邮件:
gcloud alpha monitoring channels create --display-name="${MONITOR_EMAIL_NAME}" /
--type=email /
--channel-labels=email_address="${MONITOR_EMAIL}"
根据指标创建警报
gcloud alpha monitoring policies create \
--notification-channels="${CHANNEL}" \
--aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_MEAN"}' \
--condition-display-name='S3-SQL-backup-failed-test2'\
--condition-filter='resource.type="gce_instance" AND metric.type="logging.googleapis.com/user/S3-SQL-backup-failed"' \
--duration='0s' \
--display-name='Alert-S3-SQL-backup-failed-test2' \
--if='> 0' \
--combiner='OR' \
--trigger-count="1"
所以我设置了一个通知渠道:
gcloud alpha monitoring channels create \
--description='test notification' \
--display-name='test_channel' \
--type=email \
--channel-labels=email_address=example@gmail.com
但我似乎无法获得与 command line 一起使用的警报策略(尽量避免使用从文件加载,因为我需要使用模板)。这似乎应该有效:
gcloud alpha monitoring policies create \
--notification-channels=test_channel \
--aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_MEAN"}' \
--condition-display-name='CPU Utilization >0.80 for 10m'\
--condition-filter='metric.type="appengine.googleapis.com/flex/instance/cpu/utilization" resource.type="gae_instance"' \
--duration='1min' \
--if='> 0.80' \
--display-name='test alert'
但是 returns:
Invalid value for [--aggregation]: Should only be specified if --condition-filter is also specified.
但是,如您所见,上面有一个 --condition-filter
标志。我尝试对其重新排序,以便 --condition-filter
出现在 --aggregation
之前,但这会导致持续时间错误,尽管它已经与文档匹配,并且会进行一些细微的编辑,例如 =60s
、=1min
或在 --aggregation
中添加引号似乎没有帮助:
gcloud alpha monitoring policies create \
--notification-channels=test_channel \
--condition-filter='metric.type=appengine.googleapis.com/flex/instance/cpu/utilization resource.type=gae_instance' \
--aggregation='{"alignmentPeriod": "20s","perSeriesAligner": "ALIGN_MEAN"}' \
--condition-display-name='CPU Utilization >0.80 for 1m'\
--duration='1min' \
--if='> 0.80' \
--display-name='test alert'
怎么了?为什么我会收到这些错误?
经过一些刻意的试错,我设法通过一些更改让它工作。
首先,我强烈建议您使用最新的 Cloud SDK 版本 - 如果您还没有使用 gcloud components update
,请将其更新到最新版本。就我而言,我使用了 Cloud SDK v275.0.0
.
您提供的第一个命令片段可以正确创建通知渠道,因此应该保持不变:
gcloud alpha monitoring channels create \
--description='test notification' \
--display-name='test_channel' \
--type=email \
--channel-labels=email_address=example@gmail.com
不过,为了创建 Stackdriver Monitoring 政策,我不得不进行一些更改:
--duration
标志指定的时长好像没有 认清单位;我不得不从--duration='1min'
更改为--duration='1m'
为了不抛出错误。需要警报策略的组合器,因此我在这种情况下添加了一个
--combiner
选项设置为AND
的组合器:--combiner='AND'
.指定的通知渠道
--notification-channels
标志要求和ID
或完全 限定标识符 - 它不解析显示名称,所以我 将其更改为--notification-channels=13234113421234567
.您可以找到
ID
或完全限定的标识符 您之前创建的通知渠道:gcloud alpha monitoring channels list \ --filter='displayName="test_channel"' \ --format='value(name)'
最后,用于创建警报策略的 gcloud
命令应该与此类似:
gcloud alpha monitoring policies create \
--notification-channels=13234113421234567 \
--aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_MEAN"}' \
--condition-display-name='CPU Utilization >0.80 for 10m'\
--condition-filter='metric.type="appengine.googleapis.com/flex/instance/cpu/utilization" resource.type="gae_instance"' \
--duration='1m' \
--if='> 0.80' \
--display-name='test alert' \
--combiner='AND'
请注意,此命令处于 alpha 开发状态,因此某些特性或功能可能尚未完全充实和/或测试。
谢谢@maxim,对我帮助很大! 这是我用来部署侦听系统日志消息的基于日志的指标:
创建基于日志的指标:
gcloud logging metrics create "S3-SQL-backup-failed-test2" \
--description "The backup has failed go over the logs to find out why (tag: backup-to-s3)." \
--log-filter "resource.type=gce_instance AND
resource.labels.instance_id=${INSTANCE_ID} AND
logName=projects/${PROJECT_ID}/logs/syslog AND
'SQL backup has failed failure occurred during the dump file exists validation'"
创建监视器电子邮件:
gcloud alpha monitoring channels create --display-name="${MONITOR_EMAIL_NAME}" /
--type=email /
--channel-labels=email_address="${MONITOR_EMAIL}"
根据指标创建警报
gcloud alpha monitoring policies create \
--notification-channels="${CHANNEL}" \
--aggregation='{"alignmentPeriod": "60s","perSeriesAligner": "ALIGN_MEAN"}' \
--condition-display-name='S3-SQL-backup-failed-test2'\
--condition-filter='resource.type="gce_instance" AND metric.type="logging.googleapis.com/user/S3-SQL-backup-failed"' \
--duration='0s' \
--display-name='Alert-S3-SQL-backup-failed-test2' \
--if='> 0' \
--combiner='OR' \
--trigger-count="1"