如何在 Stackdriver 警报文档中获取 Bigquery 表的名称

Posted

技术标签:

【中文标题】如何在 Stackdriver 警报文档中获取 Bigquery 表的名称【英文标题】:How to get Bigquery table's name inside a Stackdriver alert documentation 【发布时间】:2020-04-14 12:46:29 【问题描述】:

我创建了一个 Stackdriver Monitoring 提醒,当我的一个 BigQuery 表在白天的大小增加超过 5% 时,我会向我发送一封电子邮件。警报工作正常,但我想收到有关触发警报的表的信息。

我尝试了几种我在GCP docs 中找到的组合,但它们都不适合我。现在我的文档模板如下所示:

resource.label.table: $resource.label.table --> Returns null

condition.name: $condition.name
condition.display_name: $condition.display_name
metric.type: $metric.type
metric.display_name: $metric.display_name
policy.name: $policy.name
policy.display_name: $policy.display_name
project: $project
resource.type: $resource.type

有人知道如何检索表名吗?

【问题讨论】:

resource.type 是什么:是bigquery_dataset 吗?它可以与$metric.labels.table 一起使用吗? 【参考方案1】:

正如您在BigQuery metrics 列表中所见,resource.type 可以是globalbigquery_projectbigquery_dataset。指标可以包括可以通过metric.labels.[KEY] 访问的附加标签。例如,storage/uploaded_row_count 指标报告 apitable

为了测试这一点,我们创建了一个警报策略,用于检查何时将行上传到表:

$metric.labels.table 中使用以下文档模板:

## BigQuery uploaded rows alert

metric.labels.table: $metric.labels.table

---

condition.name: $condition.name

condition.display_name: $condition.display_name

metric.type: $metric.type

metric.display_name: $metric.display_name

policy.name: $policy.name

policy.display_name: $policy.display_name

project: REDACTED

resource.type: $resource.type

然后我们将一些行加载到 BigQuery 表中,当指标数据在大约 6 小时后可用时,我们应该会收到带有正确表名的警报邮件(在本例中为 cloudaudit_googleapis_com_data_access_20191223):


编辑:它也适用于 bigquery.googleapis.com/storage/stored_bytes 指标:

【讨论】:

感谢吉勒姆!我试过你的代码,它对我不起作用。主要区别在于我使用的是另一个指标(stored_bytes),但它也有表指标标签。好吧,我会尝试一些改变,但我认为你的答案是正确的。谢谢! 正如您在我编辑的答案中看到的那样,它也适用于该指标:i.stack.imgur.com/dmDII.png

以上是关于如何在 Stackdriver 警报文档中获取 Bigquery 表的名称的主要内容,如果未能解决你的问题,请参考以下文章

Stackdriver 警报“减少”条件失火

需要帮助配置 Stackdriver 警报的条件

Stackdriver 监控 - 指标缺失

在stackdriver上监视VM进程

如何从 kubernetes pod 在 Stackdriver 中设置错误报告?

Stackdriver 错误电子邮件通知未发送