SLO 数据存储在时间序列中。如需检索 SLO 时序,您可以在 timeSeries.list
方法的 filter
参数中指定时序选择器,或者在 Metrics Explorer 中使用直接过滤模式。
基于 SLO 的提醒政策
如果您要使用 Cloud Monitoring API 创建提醒政策,则可以使用时间序列选择器在政策阈值条件中指定字段作为过滤条件。如需了解如何使用 Monitoring API 创建基于 SLO 的提醒政策,请参阅创建提醒政策。
在提醒政策中,只能有一部分可用于 SLO 的时间序列选择器。此外,使用 Google Cloud 控制台创建的基于 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
上述表达式包含三个变量:
- PROJECT_ID:Google Cloud 项目的名称或编号。
- SERVICE_ID:服务的名称。
- SLO_ID:为服务定义的 SLO 的标识符。
如需了解如何查找 Google Cloud 项目的 SERVICE_ID 和 SLO_ID 字段的值,请参阅使用 API。
第二个参数(如果支持)是回溯期。 如需了解回溯期的信息,请参阅错误预算提醒类型。有效时间单位为“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
选择器则需要 SLO_NAME 和 LOOKBACK_PERIOD 参数,使用此选择器的过滤器将如下所示:
select_slo_burn_rate("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID", "3600s")
如需查看所有选择器的列表和说明,请参阅时间序列选择器。
使用选择器检索数据
查询时序数据的一种方法是使用 timeSeries.list
方法的参考页面上的 APIs Explorer 工具。如需了解此工具,请参阅 APIs Explorer。
例如,如需检索 SLO 预算的相关信息,请在 APIs Explorer 工具中填写以下字段:
- 名称:
projects/PROJECT_ID
- 过滤条件:
select_slo_budget("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")
- interval.startTime:
2021-10-07T13:00:20-04:00
- interval.endTime:
2021-10-08T13:00:20-04:00
对于一个系统,将 PROJECT_ID 等变量替换为值并执行方法后,系统会返回以下时序数据:
时间序列选择器
本部分列出了 SLO 可用的时间序列选择器,并介绍了它们所代表的含义。所有选择器都可以在过滤器中与 timeSeries.list
方法一起用来检索时序数据。提醒政策仅支持部分指标。
select_slo_burn_rate
语法:select_slo_burn_rate(SLO_NAME, LOOKBACK_PERIOD)
“消耗率”时间序列选择器会返回当前故障率(回溯间隔中的错误请求率)与 SLO 的持续故障率之比。持续故障率是完全满足 SLO 的比率。
此时序中的值的范围是 0 到无穷大:
- 值 1 表示服务具有理想的故障率:不存在风险,也不会过于保守。
- 大于 1 的值表示故障率超过了持续故障率。 值越高,SLO 越不合规。
- 小于 1 的值表示当前故障率小于持续故障率。
我们建议您使用两种提醒政策来监控消耗率:一种是快速消耗政策提醒您消耗率出现峰值,另一种是慢速消耗政策提醒您消耗率逐渐增加。
您可以使用 API 或 Google Cloud 控制台根据此时序选择器创建和修改提醒政策。
使用 Google Cloud 控制台创建的所有基于 SLO 的提醒政策都使用此选择器来检索 SLO 数据。
select_slo_health
语法:select_slo_health(SLO_NAME)
“SLO 健康状况”时序回答了这样一个问题:“在给定的校准期内,正常请求与总请求之比是多少?”;服务的 SLI 会定义哪些请求被视为正常请求。如需详细了解 SLI,请参阅概览。
此时间序列衡量的是服务性能:如果服务的每个请求均正常,则此时间序列中的数据点的值为 1。随着错误请求的数量增加,数据点的值会下降。
select_slo_compliance
语法:select_slo_compliance(SLO_NAME)
“SLO 合规性”时序回答了这样一个问题:“自合规期开始以来正常单位与总单位之比是多少?”SLO 将合规期定义为滚动窗口或日历时间范围。单位可以是请求或时间窗口。如需了解详情,请参阅基于请求和基于窗口的 SLO 中的合规性。
通过此时间序列,您可以大致了解该服务与 SLO 的关系。它不会产生操作上的紧急信号。
请勿在提醒政策中使用此时序选择器。
select_slo_budget
语法:select_slo_budget(SLO_NAME)
“SLO 预算”时间序列回答了这样一个问题:“衡量时错误预算的剩余比率是多少?”错误预算可以以请求或分钟为单位进行衡量,剩余数量根据合规期是按照日历时间还是滚动期来衡量。如需了解详情,请参阅错误预算。
此时间序列用于衡量服务可靠性的风险。如果错误预算变为小于零,则可能无法满足当前时段的 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 总预算”时序回答了这样一个问题:“根据自合规期开始以来服务的行为,预计此时可用的总错误预算(以请求或分钟为单位)是多少?”SLO 将合规期定义为滚动窗口或日历时间范围。
请勿在提醒政策中使用此时序选择器。
select_slo_counts
语法:select_slo_counts(SLO_NAME)
“SLO 计数”时序回答了这样一个问题:“在给定的校准期内,好的和坏的请求的数量是多少?”此选择器提供记录一般健康状况的时序,适合提取到长期存储系统中。
请勿在提醒政策中使用此时序选择器。