当没有数据上传到 GCP 中的 BigQuery 表时创建警报

Posted

技术标签:

【中文标题】当没有数据上传到 GCP 中的 BigQuery 表时创建警报【英文标题】:creating an alert when no data was uploaded to BigQuery table in GCP 【发布时间】:2021-10-10 20:24:18 【问题描述】:

我需要在没有数据插入到我的 BigQuery 表中时发送电子邮件通知。为此,我正在使用日志记录和警报机制但是,我仍然无法收到任何电子邮件。以下是我遵循的步骤:

    我在日志资源管理器中编写了一个查询,如下所示:

    现在我已经为那些度量类型为 COUNTER 的日志创建了一个度量,并且在过滤器部分显然我已经给出了上述查询。

    现在我在 MONITORING 域下的 ALERTING 中创建了一个策略。这是随附的屏幕截图。我选择的警报策略是针对我之前创建的日志记录指标的。

    然后触发如下:

在通知频道中,添加了我的电子邮件 ID。

如果我遗漏了什么,有人可以帮我吗?我的要求是在 Bigquery 表中超过一天没有插入数据时收到警报。

另外,我可以在 Metrics Explorer 中看到,我创建的指标不是 ACTIVE。为什么会这样?

【问题讨论】:

我建议你在调试时尝试更小的缺席窗口 我也尝试了滚动窗口 5 分钟,仍然没有运气。触发缺席时间应该只有1天吧?我认为这不应该改变,因为我的要求是如果超过一天没有记录,就会得到警报。 在调试时请假 5 分钟。这将帮助您实际测试它并查看发生了什么。当一切如您所愿时 - 您可以延长到所需的 24 小时。 【参考方案1】:

正如 GCP 中提到的 docs:

指标缺失条件要求在安装或修改策略后的最长持续时间窗口内至少进行一次成功的测量(检索数据的测量)。

例如,假设您将指标缺失策略中的持续时间窗口设置为 30 分钟。如果写入指标数据的子系统从未写入数据点,则不满足条件。子系统需要输出至少一个数据点,然后在 30 分钟内无法输出更多数据点。

意思是,您将需要至少 1 个数据点(插入作业)才能创建一个事件以使指标丢失。

有两种选择:

    创建人工日志条目以启动指标并具有至少一个时间序列和数据点。 运行一个插入作业,该作业将匹配为启动该指标而创建的基于日志的指标。

关于您的最后一个问题,您创建的指标未激活,因为在过去 24 小时内没有任何书面数据指向它。如上所述,指标必须至少写入 1 个数据点。

请参阅custom metrics quota 了解更多信息。

【讨论】:

以上是关于当没有数据上传到 GCP 中的 BigQuery 表时创建警报的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 GCP 中自动化这个 Python 脚本?

如何防止用户在 GCP 中下载数据(所有可能的方法)

GCP - 从 PubSub 到 BigQuery 的消息

使用 apache beam 中的 beam.io.gcp.bigquery.WriteToBigQuery 模块写入日期分区的 Bigquery 表

如何从闪亮写入 bigquery 表?

以增量方式将数据从 GCP Datastore 移动到 BigQuery 的最佳做法