如何在 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
可以是global
、bigquery_project
或bigquery_dataset
。指标可以包括可以通过metric.labels.[KEY]
访问的附加标签。例如,storage/uploaded_row_count
指标报告 api
和 table
:
为了测试这一点,我们创建了一个警报策略,用于检查何时将行上传到表:
在$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 表的名称的主要内容,如果未能解决你的问题,请参考以下文章