获取第三方应用程序的 google 云正常运行时间历史记录

Get google cloud uptime history to a third party application

我正在尝试将我的应用程序(托管在 google 云中)的正常运行时间历史记录添加到我自己的页面。 google云上有没有api这样的东西?我只需要获取日期和 up/down 百分比或时间。

我已经在 google 控制台上配置正常运行时间检查。但我需要将它集成到我的应用程序中。

是的,你可以,但这并不明显,使用云监控以外的其他东西将正常运行时间数据导出到非 GCP 站点可能更容易:-)

如果您确实想使用 Cloud Monitoring 将此数据来源到 off-GCP 页面,Cloud Monitoring SDKs 之一可能是最好的选择。您也可以创建一个 URL(见下文),但您需要验证此 URL,这可能会使它变得过于复杂。

例如,这是我针对我的博客创建的正常运行时间检查:

我推荐 Google APIs Explorer,因为它是了解 Google 服务(通过 REST APIs)和测试方法的绝佳方式。

首先:列表|获取正常运行时间检查

https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.uptimeCheckConfigs/list

插入右边的表格parentprojects/${PROJECT}的值

如果您的项目 ID 是 freddie-210224-66311747,那么您需要输入 project/freddie-210224-66311747

https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.uptimeCheckConfigs/get

这个需要提供nameprojects/${PROJECT}/uptimeCheckConfigs/${UPTIME_CHECK}的值

如果您的正常运行时间检查称为 test,那么您将键入 projects/freddie-210224-66311747/uptimeCheckConfigs/test

NOTE In my case, I used an Uptime check name that included periods (my.blog.com) and this was converted (to my-blog-com). So, you may want to list first to check the name.

点击“执行”(您不需要勾选 API Key 但没有区别)。

我了解到正常运行时间检查与所有其他指标一样都是指标。我在观看正常运行时间检查时通过观看 Chrome 开发工具确认了这一点。

确保使用正确的指标名称。您可以使用 Monitoring 的 Metrics Explorer 来确认这一点:

资源类型是 Uptime Check URL (uptime_url)

您可能使用的一个 (!) 指标是 Request Latency (monitoring.googleapis.com/uptime_check/request_latency)

如果您填充 Metrics Explorer,您应该会看到与“正常运行时间检查”页面绘制的相同数据。

单击 Query Editor 以获取表示为云监控查询语言 (MQL) 的正常运行时间指标,删除所有换行符。您可以使用:

fetch uptime_url | metric 'monitoring.googleapis.com/uptime_check/request_latency' | group_by 1m, [value_request_latency_mean: mean(value.request_latency)] | every 1m

所以,现在我们要查询Montioring Metric Time-series

https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/query

name 的值为 projects/${PROJECT}

对于 query,从上面粘贴到 MQL 中并保留引号,即 "fetch uptime_url ..."

命中EXECUTE

您应该会收到作为正常运行时间基础的时间序列数据的快照 URL。您可以修改 MQL 以准确反映您需要的子集。在 2021-02-24T20:55:38 时,延迟是 20.869:

所以,例如为您的正常运行时间检查请求延迟,您可以使用 Monitoring API 的 TimeSeries Query 方法,通过合适的查询,这将产生 JSON 数据,包括点(值)数组。然后可以将这些值转换并显示到您的外部页面中。