关于指标比率

本文档可帮助您选择用于绘制或监控指标数据比率的最佳方法。它还包含示例链接,确定了何时可以计算比率,并描述了在为两个不同指标绘制比率图表时可能会遇到的异常情况。这些异常是由于采样率或校准参数存在差异而导致的。

利用比率,您可以将指标数据转换为另一种可能更实用的形式。例如,假设某个指标类型按响应代码统计 HTTP 响应数量。指标数据会报告错误数量,但不会报告失败的请求所占的比例。但是,性能要求通常以百分比的形式指定,例如“错误率必须小于 0.1%”。如需使用指标数据确定错误率,您需要计算失败请求数与请求总数的比率。

最佳实践

如需监控指标数据比率或绘制其比率图表,我们建议您使用 Monitoring Query Language (MQL)。您可以将 MQL 与 Cloud Monitoring API 和 Google Cloud 控制台搭配使用。Google Cloud 控制台包含一个代码编辑器,可提供建议、进行错误检测以及对创建有效 MQL 查询的其他支持。如需了解详情和示例,请参阅以下文档:

要在您不熟悉 MQL 的情况下创建提醒政策,以便监控指标比率,请使用 Cloud Monitoring API 并添加一个时间序列过滤条件。如需查看示例,请参阅指标比率

如果您要在不熟悉 MQL 的情况下绘制指标数据比率图表,建议您使用 Google Cloud 控制台并使用菜单驱动型界面。如需了解详细说明,请参阅绘制指标比率图表向自定义信息中心添加图表和表格

具有比率的限制

配置比率时,存在以下限制:

  • 聚合后,分母时序中的标签必须与分子时序中的标签相同,或者是分子时序中的标签子集。

    我们建议您选择聚合选项,使分子和分母时序在聚合后具有相同的标签。

    假设分子时序具有 methodquota_metricproject_id 标签。分母时间序列具有 limit_namequota_metricproject_id 标签。分母分组的有效选项取决于分子的选择:

    • method 标签分组的分子:将分母时序合并为一个时序。没有其他分组导致分母时序的标签为分子时序的标签子集。
    • quota_metric 标签分组的分子:按该标签对分母进行分组,或将分母中的所有时序合并到一个时序中。
    • quota_metricproject_id 标签分组的分子:按两个标签对分母进行分组(按一个标签),或者将分母时序合并到单个时序中。

    有效的分母聚合选项始终会从已分组的时序中消除 limit_name 标签,因为该标签在分子时序中不存在。

    如需查看示例,请参阅 MQL 提醒政策示例

  • 使用 Google Cloud 控制台配置图表时,分子和分母的校准时间段必须相同;但是,在使用 Cloud Monitoring API 时,这些字段可以有所不同。

    无论您使用什么工具来创建图表,我们都建议您为分子和分母使用相同的校准时间段。

  • 分子和分母必须具有相同的值类型。 例如,当分子的类型为 DOUBLE 时,分母也必须为 DOUBLE 类型。

    比率要求分子和分母指标的值类型必须为 DOUBLEINT64

  • 分子和分母的对应时序必须具有相同的指标种类。当这两个指标具有不同的种类时,您必须使用校准器将其转换为同一种类。

    假设有这样一种配置:为分子选择 DELTA 指标,并为分母选择 GAUGE 指标。在这种情况下,请使用速率校准器 ALIGN_RATEDELTA 指标转换为 GAUGE 指标。如需查看示例,请参阅关于一个限额的速率配额用量的比率提醒政策

  • 对于未使用 MQL 定义的比率,分子和分母的受监控的资源类型必须相同。

    例如,如果分子指标的资源是 Compute Engine 实例,则分母指标的资源也必须是 Compute Engine 实例。

由于抽样和校准不匹配而导致的异常

通常,最好根据为单个指标类型收集的时序使用标签值计算比率。针对两种不同指标类型计算的比率可能会因采样周期和校准时段不同而出现异常。

例如,假设您有两个不同的指标类型,一个是 RPC 总数,一个是 RPC 错误数量,并且您想要计算错误 RPC 与总 RPC 的比率。失败的 RPC 会计入这两个指标类型的时序中。因此,当您校准时序时,某个失败的 RPC 可能不会出现在两个时序的同一校准间隔中。导致这种差异的原因有很多,包括:

  • 由于两个不同的时序记录同一事件,因此有两个计数器值在实现集合,并且它们不会以原子方式更新。
  • 采样率可能会不一样。当时序与公共时间段校准时,单个事件的计数可能会出现在不同指标的时序的相邻校准间隔中。

相应校准间隔内值的数量差可能导致无意义的 error/total 比率值,例如 1/0 或 2/1。

数值较大的比率不太可能产生无意义的值。 您可以通过聚合获得更大的数字,方法是使用长于采样周期的校准时段,或针对特定标签的数据分组。这些方法可以最大限度地减少给定时间间隔中数据点数量的微小差异的影响。也就是说,在一个时间间隔内,预期数据点数量为 3 时的两点间差异会比预期数量为 300 时更明显。

如果您使用的是内置指标类型,则可能只能计算不同指标类型的比率以获得所需的值。

如果您设计的自定义指标可能会在两个不同的指标中统计相同的内容(例如,返回错误状态的 RPC 数量),请考虑使用单个指标,以使每个计数仅被包含一次。例如,假设您在统计 RPC 数量并想要跟踪失败的 RPC 与所有 RPC 之比。要解决此问题,请创建单个指标类型来统计 RPC 数量,然后使用标签来记录调用状态,包括“成功”状态。然后,通过更新单个计数器即可记录每个状态值(在此例中为“错误”或“成功”)。

后续步骤