值类型和指标种类

在指标模型的讨论中,指标类型部分对描述指标类型的属性进行了一般性讨论。本部分将对这两个属性进行更详细的讨论:

  • 值类型
  • 指标种类

值类型

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

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

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

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

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

指标种类

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

  • 衡量 指标,其中的值用于衡量特定时刻。例如,衡量 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 的标签来创建一个平均值指标。每次更新都会写入三个时序,每个 status_value(“OK”“OFFLINE”或“PENDING”)对应一个时序,值为 1 表示“true”,值为 0 表示“false”。