值类型和指标种类

在介绍指标模型的讨论中,指标类型部分简要介绍了用于描述指标类型的属性。本部分将对这两个属性进行更详细的讨论:

  • 值类型
  • 指标种类

值类型

值类型 是测量的数据类型。每个时序记录其数据点的值类型(类型 ValueType)。

  • 对于一次包含一个值的测量结果(如布尔值和数值数据),值类型会显示数据的存储方式:

    • BOOL,一个布尔值
    • INT64,64 位整数
    • DOUBLE,双精确率浮点数
    • STRING,一个字符串
  • 对于分布测量,该值不是单个值,而是一组值。分布测量的值类型为 DISTRIBUTION

    分布包含汇总一组值的统计信息。分布中的值包括为一组值计算的平均值,计数,最大值和其他统计信息。分布还可以包含一个直方图,用于表示值在一组范围内的分布情况。

    延迟时间指标通常捕获数据用作分布。如需详细了解发行版,请参阅 Distribution 参考页面。 如需了解如何绘制这些指标的图表,请参阅分布指标

指标种类

每个时序都包含数据点的指标种类(类型 MetricKind)。指标数据的 种类 告诉您如何解读相对的值。Cloud Monitoring 指标是以下三种方式之一:

  • gauge 指标,其中的值用于衡量特定时刻。例如,衡量 CPU 利用率的指标就是衡量指标;每个点都会记录测量时的 CPU 利用率。另一个衡量指标是当前温度。

  • 增量指标,其中值用于衡量一段时间内的变化。 对于读取,时间间隔为半开状态,不包括开始时间,但包括结束时间:(startTime, endTime]。例如,衡量请求数的指标就是增量指标;每个值会记录在开始时间之后收到的请求数量,直到结束时间(包括结束时间)。

  • 累计 指标,其中值会随着时间的推移不断增大。例如,“已发送字节数”的指标可能是累积的;每个值都会记录服务当时发送的总字节数。

支持的组合

并非所有的指标类型和值类型组合都有意义。例如,您绝不会看到包含布尔值数据的增量指标。某些组合是有意义的。

下表列出了受支持的指标种类和值类型:

值类型 GAUGE DELTA CUMULATIVE4
BOOL
INT64 1
DOUBLE 1
STRING 1
DISTRIBUTION 2 1、3

1 自定义指标 custom.googleapis.com 中不允许使用此组合。
2 基于日志的指标不支持此组合。如需了解详情,请参阅配置分布类型的基于日志的指标
3 这是基于日志的指标 logging.googleapis.com/user(值类型为 DISTRIBUTION)唯一允许使用的组合;如需了解详情,请参阅 Logging API LogMetric 参考文档中的 metricDescriptor 字段
4 累积指标不能直接用于 Monitoring 中的图表或提醒,但可以汇总到以这些方式使用的非累积指标。如需了解详情,请参阅种类、类型和转换

此外,如果您要创建自己的指标,则必须仅使用有效的值类型和指标种类组合。

模拟字符串值的自定义指标

不支持自定义指标中的字符串值,但您可以通过以下方式复制字符串值指标功能:

  • 使用 INT64 值作为映射到字符串值的枚举创建 GAUGE 指标。在查询指标时,在外部将枚举转换为字符串值。
  • 创建一个包含 BOOL 值的 GAUGE 指标以及一个标签,其值是要监控的字符串之一。使用布尔值可指示该值是否为有效值。

例如,假设您想要创建一个名为“status”的字符串值指标,其中包含选项 OK、OFFLINE 或 PENDING。您可以使用名为 status_value 的标签来创建 GAUGE 指标。每次更新会写入三个时序,每个 status_value(OK、OFFLINE 或 PENDING)各写入一个时序,值为 1 表示“true”,值为 0 表示“false”。