【发布时间】:2021-05-24 11:05:18
【问题描述】:
我正在尝试将我的应用程序(托管在谷歌云中)正常运行时间历史记录到我自己的页面。谷歌云上有什么api吗?我只需要获取日期和上/下百分比或时间。
我已经在谷歌控制台上配置了正常运行时间检查。但我需要将它集成到我的应用程序中。
【问题讨论】:
标签: google-cloud-platform google-cloud-stackdriver health-monitoring google-cloud-monitoring
我正在尝试将我的应用程序(托管在谷歌云中)正常运行时间历史记录到我自己的页面。谷歌云上有什么api吗?我只需要获取日期和上/下百分比或时间。
我已经在谷歌控制台上配置了正常运行时间检查。但我需要将它集成到我的应用程序中。
【问题讨论】:
标签: google-cloud-platform google-cloud-stackdriver health-monitoring google-cloud-monitoring
是的,您可以,但这并不明显,使用 Cloud Monitoring 以外的其他工具将正常运行时间数据导出到非 GCP 站点可能更容易:-)
如果您确实想使用 Stackdriver Monitoring 将此数据导入到非 GCP 页面中,那么 Cloud Monitoring SDKs 之一可能是最好的选择。您也可以创建一个 URL(见下文),但您需要对该 URL 进行身份验证,这可能会使其过于复杂。
举个例子,这是我针对我的博客创建的正常运行时间检查:
我推荐Google APIs Explorer,因为它是了解 Google 服务(通过 REST API)和测试方法的绝佳方式。
首先:列表|获取正常运行时间检查
https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.uptimeCheckConfigs/list
插入右侧表格parent,projects/${PROJECT}的值
如果您的项目 ID 是 freddie-210224-66311747,那么您应该输入 project/freddie-210224-66311747。
https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.uptimeCheckConfigs/get
对于这个,你需要提供name,projects/${PROJECT}/uptimeCheckConfigs/${UPTIME_CHECK}的值
如果您的正常运行时间检查称为test,那么您将输入projects/freddie-210224-66311747/uptimeCheckConfigs/test
注意在我的例子中,我使用了包含句点 (
my.blog.com) 的正常运行时间检查名称,并将其转换为 (my-blog-com)。因此,您可能需要先列出以检查名称。
点击“执行”(您无需勾选API Key,但没有区别)。
我了解到,正常运行时间检查与所有其他检查一样是指标。我在观看 Uptime 检查时通过观看 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
所以,现在我们要查询监控指标时间序列
https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/query
name 的值为 projects/${PROJECT}
对于query,从上面粘贴MQL 保留引号,即"fetch uptime_url ..."
点击EXECUTE
您应该会收到 Uptime URL 所依据的时间序列数据的快照。您可以修改 MQL 以准确反映您需要的子集。在2021-02-24T20:55:38,延迟为20.869:
所以,得到例如为您的正常运行时间检查请求延迟,您可以使用监控 API 的 TimeSeries 查询方法,并且通过合适的查询,这将产生 JSON 数据,包括一个点(值)数组。然后可以将这些值转换并显示到您的外部页面中。
【讨论】: