配置Google Cloud Storage上传无数据告警及分传感器告警需求
配置Google Cloud Storage上传缺失告警方案
第一阶段:全局24小时无任何数据上传告警
方案1:基于Cloud Logging直接配置告警
- 打开Cloud Logging日志查询界面,输入以下查询语句:
resource.type="gcs_bucket" AND protoPayload.methodName="storage.objects.insert" AND timestamp>=-24h - 点击创建告警,设置告警条件为「查询结果计数等于0」,评估窗口设为24小时,同时选择邮件、Slack等你需要的通知渠道。
- 保存规则后,过去24小时无文件上传时会自动触发告警通知。
方案2:结合Cloud Functions与Cloud Monitoring自定义指标
- 创建Cloud Function,触发事件选择
google.storage.object.finalize(文件上传完成时触发),函数逻辑仅需更新一个Cloud Monitoring自定义计数器指标(比如custom.googleapis.com/gcs_upload_count),每有一次上传就累加1。 - 在Cloud Monitoring中创建告警规则:选中上述自定义指标,设置24小时评估窗口,当指标累计值为0时触发告警,配置好通知渠道即可。
第二阶段:单传感器24小时无数据上传告警
基于Cloud Logging的分组告警
- 打开Cloud Logging查询界面,用正则提取文件名中的传感器名称,同时按传感器分组统计上传次数:
resource.type="gcs_bucket" AND protoPayload.methodName="storage.objects.insert" AND timestamp>=-24h | REGEXP_EXTRACT(protoPayload.resourceName, r'objects/([^_]+)_') AS sensor_name | GROUP BY sensor_name | COUNT(*) AS upload_count | HAVING upload_count = 0 - 点击创建告警,设置告警条件为「查询返回结果行数大于0」,这样任意传感器24小时无上传时都会触发通知。
- 若仅针对特定4-5个传感器,可在查询中添加过滤条件:
resource.type="gcs_bucket" AND protoPayload.methodName="storage.objects.insert" AND timestamp>=-24h | REGEXP_EXTRACT(protoPayload.resourceName, r'objects/([^_]+)_') AS sensor_name | WHERE sensor_name IN ('sensorA', 'sensorB', 'sensorC') | GROUP BY sensor_name | COUNT(*) AS upload_count | HAVING upload_count = 0
备选方案:基于BigQuery统计告警
- 将GCS上传日志导出到BigQuery数据集,创建视图按传感器名称和日期统计每日上传次数:
CREATE OR REPLACE VIEW `your-project.your-dataset.sensor_upload_stats` AS SELECT REGEXP_EXTRACT(resourceName, r'objects/([^_]+)_') AS sensor_name, DATE(timestamp) AS upload_date, COUNT(*) AS upload_count FROM `your-project.your-dataset.gcs_logs_table` WHERE methodName = 'storage.objects.insert' GROUP BY sensor_name, upload_date - 在Cloud Monitoring中创建基于BigQuery的自定义指标,统计每个传感器最近24小时的上传次数,再配置告警规则:当传感器指标值为0时触发通知。
内容的提问来源于stack exchange,提问作者Sana
相关产品推荐
相关产品推荐

