【问题标题】:How to get Bigquery table's name inside a Stackdriver alert documentation如何在 Stackdriver 警报文档中获取 Bigquery 表的名称
【发布时间】: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} 一起使用吗?

标签: google-cloud-platform google-bigquery google-cloud-stackdriver google-cloud-monitoring


【解决方案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
猜你喜欢
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
相关资源
最近更新 更多