检索 SLO 数据

SLO 数据存储在时间序列中。如需检索 SLO 时间序列,您可以在 timeSeries.list 方法的 filter 参数中指定时间序列选择器

基于 SLO 的提醒政策

如果您要使用 Cloud Monitoring API 创建提醒政策,则可以使用时间序列选择器在政策阈值条件中指定字段作为过滤条件。如需了解如何使用 Monitoring API 创建基于 SLO 的提醒政策,请参阅创建提醒

在提醒政策中,只能有一部分可用于 SLO 的时间序列选择器。此外,使用 Google Cloud Console 创建的基于 SLO 的提醒政策始终使用 select_slo_burn_rate选择器。

在过滤器中使用时间序列选择器

若要检索 SLO 的时间序列数据,您的过滤器必须指定时间序列选择器。SLO 数据不与标准指标类型一起存储,并且无法使用更常见的过滤器(指定一对指标和受监视资源类型)进行检索。

名称和参数

时间序列选择器具有以下某种形式:

SELECTOR_NAME(SLO_NAME)
SELECTOR_NAME(SLO_NAME, LOOKBACK_PERIOD)

选择器的名称以 select_slo_ 开头,并采用一个或两个参数:

  • 选择器的第一个参数是 SLO 的资源名称,如下所示:

    projects/[PROJECT_ID]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_ID]
    

  • 第二个参数(如果支持)是回溯期。 如需了解回溯期的信息,请参阅错误预算提醒类型。有效时间单位为“ns”、“us”、“ms”、“s”、“m”和“h”。

例如,select_slo_budget 选择器只接受 SLO-name 参数,因此使用此选择器的过滤器如下所示:

select_slo_budget("projects/[PROJECT_ID]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_ID]")

相比之下,select_slo_burn_rate 选择器也具有回顾期,因此使用此选择器的过滤器如下所示:

select_slo_burn_rate("projects/[PROJECT_ID]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_ID]", "3600s")

如需查看所有选择器的列表和说明,请参阅时间序列选择器

使用选择器检索数据

查询时间序列数据的一种直接方法是在 timeSeries.list 方法的参考页面上使用 API Explorer 工具。如需了解 API Explorer 工具的信息,请参阅 API Explorer

以下屏幕截图显示了在 API Explorer 中将 select_slo_budget 时间序列选择器用作 timeSeries.list 的过滤器:

给 timeSeries.list 方法指定时间序列选择器。

下面显示了返回的时间序列数据的片段:

检索到的时间序列的摘录

时间序列选择器

本部分列出了 SLO 可用的时间序列选择器,并介绍了它们所代表的含义。所有选择器都可以用于 timeSeries.list 的过滤器中检索时间序列数据。提醒政策仅支持部分指标。

select_slo_burn_rate

语法select_slo_burn_rate(SLO_NAME, LOOKBACK_PERIOD)

“消耗率”时间序列选择器会返回当前故障率(回溯间隔中的错误请求率)与 SLO 的持续故障率之比。持续故障率是完全满足 SLO 的比率:值 1 表示服务具有理想的故障率:不存在风险,也不会过于保守。

此时间序列中的值的范围是 0 到无穷大。 大于 1 的值表示故障率超过了持续故障率。 值越高,SLO 越不合规。

使用两种提醒策略来监控消耗率:一种是快速消耗策略提醒您消耗率出现峰值,另一种是慢速消耗策略提醒您消耗率逐渐增加。

您可以使用 API 或 Cloud Console 根据此时间序列选择器创建和修改提醒政策。

使用 Cloud Console 创建的所有基于 SLO 的提醒政策都使用此选择器来检索 SLO 数据。

select_slo_health

语法select_slo_health(SLO_NAME)

“SLO 运行状况”时间序列回答了这样一个问题:“在给定的输出期内,正常请求与总请求之比是多少?”哪些请求被视为正常请求由该服务的 SLI 定义。

此时间序列衡量的是服务性能:如果服务的每个请求均正常,则此时间序列中的数据点的值为 1。随着错误请求的数量增加,数据点的值会下降。

您可以使用 API 创建使用此时间序列选择器的提醒政策,并且只能通过 API 修改这些政策。

select_slo_compliance

语法select_slo_compliance(SLO_NAME)

“SLO 合规性”时间序列回答了这样一个问题:“衡量自合规期(以日历时间或滚动期衡量)开始以来服务的行为,此时正常单位与总单位之比是多少?”单位可以是请求或时间范围。如需了解详情,请参阅基于请求和基于时间范围的 SLO 中的合规性

通过此时间序列,您可以大致了解该服务与 SLO 的关系。它不会产生操作上的紧急信号。

请勿在提醒政策中使用此时间序列选择器。

select_slo_budget

语法select_slo_budget(SLO_NAME)

“SLO 预算”时间序列回答了这样一个问题:“衡量时错误预算的剩余比率是多少?”错误预算可以以请求或分钟为单位进行衡量,剩余数量根据合规期是按照日历时间还是滚动期来衡量。如需了解详情,请参阅错误预算

此时间序列用于衡量服务可靠性的风险。如果错误预算低于 0,即使该服务在工作中执行得很完美,也可能无法满足当前时间段的 SLO。未能达到 SLO 可能会给组织的生产环境带来实质后果,具体取决于组织如何管理可靠性。

请勿在提醒政策中使用此时间序列选择器。

select_slo_budget_fraction

语法select_slo_budget_fraction(SLO_NAME)

“SLO 预算分数”时间序列回答了这样一个问题:“此时剩余多少错误预算(从负无穷 到 1 的分数)?”

请勿在提醒政策中使用此时间序列选择器。

select_slo_budget_total

语法select_slo_budget_total(SLO_NAME)

“SLO 总预算”时间序列回答了这样一个问题:“根据自合规期(日历时间或滚动期)开始以来服务的行为,预计此时可用的总错误预算(以请求或分钟为单位)是多少?”

请勿在提醒政策中使用此时间序列选择器。

select_slo_counts

语法select_slo_counts(SLO_NAME)

“SLO 计数”时间序列回答了这样一个问题:“在给定的输出期内,好的和坏的请求的数量是多少?”此选择器提供记录一般健康状况的时间序列,适合提取到长期存储系统中。

请勿在提醒政策中使用此时间序列选择器。