Google 警报策略根据云存储桶对象计数触发问题
Google alert policy triggers issues based on cloud storage bucket object count
我一直在尝试设置警报策略(通过堆栈驱动程序)以在云存储桶中有新对象时收到电子邮件通知。
但这里的问题是,它有时会在一段时间后起作用,而在其他大多数时候,它不会。
我们如何让警报立即触发,就像当存储桶中有新文件时(每天多次)。
代码如下:
resource "google_monitoring_alert_policy" "alert_policy" {
display_name = "File notification"
combiner = "OR"
notification_channels = ["${google_monitoring_notification_channel.email.name}"]
conditions {
display_name = "File Notification"
condition_threshold {
comparison = "COMPARISON_LT"
duration = "60s"
filter = "metric.type=\"storage.googleapis.com/storage/object_count\" resource.type=\"gcs_bucket\" resource.label.\"bucket_name\"=\"realbucketname\""
threshold_value = 1
aggregations {
alignment_period = "60s"
per_series_aligner = "ALIGN_COUNT"
}
trigger {
count = 1
}
}
}
documentation {
content = "There is a new file"
}
}
感谢您的意见!
谢谢
对象计数指标每天测量一次,因此该条件可能每天只触发一次。这很可能是您的警报不一致的原因。
如果可能,查看存储桶中对象更改的推荐解决方案是通过 pub/sub notifications。
使用 pub/sub 通知,您可以在存储桶中出现许多不同的 events 时收到通知。
这是一个 gsutil 命令示例,您可以使用它在存储桶中创建对象时收到通知。 -e 指定我只希望在特定事件发生时发生通知,在本例中是文件上传到存储桶时。
gsutil notification create -t [TOPIC_NAME] -f json gs://[BUCKET_NAME] -e OBJECT_FINALIZE
然后您将创建一个 subscriber 来接收通知。
这里 tutorial 介绍了如何通过 App Engine 管理存储桶上的通知。
您还可以研究使用 cloud functions that make use of stand-alone functions in response to events (adding files to bucket). To send emails via functions you can make use of third party services such as Mailgun. You can also follow this third-party tutorial 来使用 SMTP 和 nodemailer 发送电子邮件。
谢谢。我通过删除脚本中的聚合来修复它,
现在按预期工作了!!!
condition_threshold {
comparison = "COMPARISON_GT"
duration = "60s"
filter = "metric.type=\"storage.googleapis.com/storage/object_count\" resource.type=\"gcs_bucket\" resource.label.\"bucket_name\"=\"realbucketname\""
threshold_value = 1
我一直在尝试设置警报策略(通过堆栈驱动程序)以在云存储桶中有新对象时收到电子邮件通知。
但这里的问题是,它有时会在一段时间后起作用,而在其他大多数时候,它不会。
我们如何让警报立即触发,就像当存储桶中有新文件时(每天多次)。
代码如下:
resource "google_monitoring_alert_policy" "alert_policy" {
display_name = "File notification"
combiner = "OR"
notification_channels = ["${google_monitoring_notification_channel.email.name}"]
conditions {
display_name = "File Notification"
condition_threshold {
comparison = "COMPARISON_LT"
duration = "60s"
filter = "metric.type=\"storage.googleapis.com/storage/object_count\" resource.type=\"gcs_bucket\" resource.label.\"bucket_name\"=\"realbucketname\""
threshold_value = 1
aggregations {
alignment_period = "60s"
per_series_aligner = "ALIGN_COUNT"
}
trigger {
count = 1
}
}
}
documentation {
content = "There is a new file"
}
}
感谢您的意见!
谢谢
对象计数指标每天测量一次,因此该条件可能每天只触发一次。这很可能是您的警报不一致的原因。
如果可能,查看存储桶中对象更改的推荐解决方案是通过 pub/sub notifications。 使用 pub/sub 通知,您可以在存储桶中出现许多不同的 events 时收到通知。
这是一个 gsutil 命令示例,您可以使用它在存储桶中创建对象时收到通知。 -e 指定我只希望在特定事件发生时发生通知,在本例中是文件上传到存储桶时。
gsutil notification create -t [TOPIC_NAME] -f json gs://[BUCKET_NAME] -e OBJECT_FINALIZE
然后您将创建一个 subscriber 来接收通知。
这里 tutorial 介绍了如何通过 App Engine 管理存储桶上的通知。
您还可以研究使用 cloud functions that make use of stand-alone functions in response to events (adding files to bucket). To send emails via functions you can make use of third party services such as Mailgun. You can also follow this third-party tutorial 来使用 SMTP 和 nodemailer 发送电子邮件。
谢谢。我通过删除脚本中的聚合来修复它,
现在按预期工作了!!!
condition_threshold {
comparison = "COMPARISON_GT"
duration = "60s"
filter = "metric.type=\"storage.googleapis.com/storage/object_count\" resource.type=\"gcs_bucket\" resource.label.\"bucket_name\"=\"realbucketname\""
threshold_value = 1