本页面是对指标、时间序列和资源以及指标模型的组成部分中的讨论和示例的进一步深入探讨。要充分利用此页面,请先阅读以上这些页面。
本页面面向希望更深入地了解时序和 Cloud Monitoring 指标模型实现的读者,尤其是那些使用 Monitoring API 的读者。指标模型回顾
理解时间序列结构的先决条件是熟悉 Cloud Monitoring 使用的指标模型。指标、时间序列和资源中介绍了此模型。本部分简要回顾了该模型。
一般而言,监控数据记录在时间序列中。每个单独的时间序列都包含与此讨论相关的三项信息:
- 一组带时间戳的数据点。
- 对指标类型的引用,告知您如何解读数据点。
对数据来源的受监控资源的引用。
每个时间序列都包含来自单个物理来源或逻辑来源的测量结果。如果您的环境有数百个资源,则每个资源至少贡献一个时间序列。实际上,如果您的指标类型和受监控的资源类型具有标签,则可通过每个标签值组合获得一个时间序列;有关详情,请参阅基数。
时间序列示例
时序表示为 TimeSeries
对象的实例。以下是单个时序的完整实例:
{ "metric": { "labels": { "log": "kubelet", "severity": "DEFAULT" }, "type": "logging.googleapis.com/log_entry_count" }, "resource": { "type": "gce_instance", "labels": { "instance_id": "5106847938295940291", "zone": "us-central1-a", "project_id": "a-gcp-project" } }, "metricKind": "DELTA", "valueType": "INT64", "points": [ { "interval": { "startTime": "2019-12-20T20:25:38Z", "endTime": "2019-12-20T20:26:38Z" }, "value": { "int64Value": "20" } } ] }
大多数时间序列包含更多数据点;此时间序列的时间跨度为一分钟。所有时间序列都具有相同的结构,具有以下字段:
metric
字段记录- 此特定时间序列的指标标签值,表示标签值的一个组合。
- 数据所关联的指标类型。指标类型指定可用的标签并描述数据点所代表的内容。
指标中更详细地介绍了此字段中的信息。。
resource
字段记录:- 此特定时间序列的资源标签值,表示标签值的一个组合。
- 从中收集数据的特定受监控的资源。
受监控的资源对象中更详细地介绍了此字段中的信息。
metricKind
和valueType
字段告诉您如何解读值。如需了解详情,请参阅指标种类和类型。points
字段是带时间戳的值的数组。指标类型告诉您值所代表的含义。时间序列示例有一个包含单个数据点的数组;在大多数时间序列中,数组会包含更多值。
有关检索时间序列数据的即时示例,请参阅时间序列:来自受监控资源的数据。
本页面的其余部分将更详细地介绍 metric
和 resource
字段中的信息。
受监控的资源
Cloud Monitoring 会从受监控的资源中收集数据并将其记录在时间序列中。创建的每个时序都包含从中收集数据的受监控资源的说明。
受监控的资源对象
受监控的资源由 MonitoredResource
对象的实例表示。受监控的资源描述时序中值的来源。MonitoredResource
对象会嵌入到时序中,并标识 Monitoring 已知的受监控资源类型的特定实例:它指向物理实体或逻辑实体。
例如,以下是描述一个特定 Compute Engine 实例的受监控资源对象,提取自示例时间序列:
"resource": { "type": "gce_instance", "labels": { "instance_id": "5106847938295940291", "zone": "us-central1-a", "project_id": "a-gcp-project" } }
此受监控资源的实例的类型为 gce_instance
,它在项目 a-gcp-project
中有一个特定的 instance_id
值 (5106847938295940291)。该实例位于美国。另一个时序可能源自此受监控资源的不同实例。每个标签值组合都会标识从中收集数据的唯一资源。
不同的标签集对不同的资源有意义。资源的标签集取决于该类型的受监控资源描述符。
受监控的资源描述符
受监控的资源类型的相关信息包含在称为“受监控的资源描述符”的数据结构中。如需了解此数据结构的定义,请参阅 MonitoredResourceDescriptor
。
受监控的资源描述符类似于记录结构的架构或规范。它不包含有关受监控资源的特定实例的数据;它告诉您如何描述特定类型的受监控资源。例如,以下是 gce_instance
资源的受监控资源描述符:
{ "type": "gce_instance", "displayName": "VM Instance", "description": "A virtual machine instance hosted in Compute Engine.", "name": "projects/[PROJECT_ID]/monitoredResourceDescriptors/gce_instance" "labels": [ { "key": "project_id", "description": "The identifier of the GCP project associated with this resource, such as \"my-project\"." }, { "key": "instance_id", "description": "The numeric VM instance identifier assigned by Compute Engine." }, { "key": "zone", "description": "The Compute Engine zone in which the VM is running." } ], }
将此受监控的资源描述符与受监控的资源对象中所示的 gce_instance
资源的特定实例进行比较。此描述符未描述某个特定的受监控的资源;相反,描述符指定标签,而标签值的每个组合都会标识一个特定的受监控的资源。
您可以使用 Cloud Monitoring API 在 Trusted Cloud by S3NS 项目中检索受监控的资源描述符。例如,请参阅 monitoredResourceDescriptors.list
和 monitoredResourceDescriptors.get
方法的参考页面。
如需查看使用 Monitoring API 方法的示例,请参阅列出指标和资源类型。
指标
Cloud Monitoring 创建的每个时间序列都会记录一组数据点以及这些数据点的组织结构和含义的信息。
指标对象
每个时间序列都包含对指标对象中所记录数据说明的引用。
时序中包含的指标对象用于指定测量类型以及这些测量相关的指标特有信息。如需了解指标对象数据结构的定义,请参阅 Metric
。例如,以下是从示例时序中的时序提取的指标对象:
{ "metric": { "labels": { "log": "kubelet", "severity": "DEFAULT" }, "type": "logging.googleapis.com/log_entry_count" }
此对象指示时序包含 logging.googleapis.com/log_entry_count
测量。标签值告诉您,此特定时间序列仅计算名为 kubelet
的日志文件中严重程度为 DEFAULT
的日志条目。
每个标签值组合都有一个时间序列,因此同一日志文件的 INFO
条目会以不同的时间序列显示。
在指标对象中收集的标签集在该指标类型的描述符中指定。
指标描述符
指标类型的相关信息包含在称为“指标描述符”的数据结构中。如需了解此数据结构的定义,请参阅 MetricDescriptor
。
指标描述符是记录结构的架构或规范。它不包含特定指标的相关数据;相反,它会告诉您如何解读与特定指标类型相关的数据。
以下是一个指标描述符示例:
{ "type": "logging.googleapis.com/log_entry_count", "name": "projects/a-gcp-project/metricDescriptors/logging.googleapis.com/log_entry_count", "labels": [ { "key": "log", "description": "Name of the log." }, { "key": "severity", "description": "Severity of the log entry." } ], "metricKind": "DELTA", "valueType": "INT64", "unit": "1", "description": "Number of log entries that contributed to user-defined metrics.", "displayName": "Log entries", "metadata": { "launchStage": "GA", "samplePeriod": "60s" }, "launchStage": "GA" }
将此指标描述符与指标对象中显示的指标对象进行比较。描述符会告诉您标签值的含义,以及如何解读数据点的值。
您可以使用 Cloud Monitoring API 检索指标描述符。例如,请参阅 metricDescriptors.list
和 metricDescriptors.get
方法的参考页面。
如需查看使用 Monitoring API 方法的示例,请参阅列出指标和资源类型。
指标描述符中的大多数字段都是简明直观的。可能需要进一步说明的两个指标是指标种类和值类型,指标种类和类型中对此进行了进一步描述。