获取第三方应用程序的 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
插入右边的表格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
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 数据,包括点(值)数组。然后可以将这些值转换并显示到您的外部页面中。
我正在尝试将我的应用程序(托管在 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
插入右边的表格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
NOTE In my case, I used an Uptime check name that included periods (
my.blog.com
) and this was converted (tomy-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 数据,包括点(值)数组。然后可以将这些值转换并显示到您的外部页面中。