Cloud Monitoring 概览

本文档简要介绍了 Cloud Monitoring 提供的服务, 提供什么。这些服务可帮助您了解应用的行为、健康状况和 应用和其他 Google Cloud 服务的性能。 Cloud Monitoring 会自动收集和存储性能信息 大多数 Google Cloud 服务的可用性。 您 可以收集 Prometheus 使用 Google Cloud Managed Service for Prometheus 监控指标。 如果在 Compute Engine 上安装 Ops Agent 就可以从虚拟机 (VM) 中收集指标和日志, 和通过第三方应用进行攻击。

Google Cloud Platform 提供的提醒、测试和可视化服务 Cloud Monitoring 可帮助您解答如下重要问题:

  • 我的服务的负载情况如何?
  • 我的网站响应是否正常?
  • 我的服务是否表现良好?

Cloud Monitoring 为大多数项目提供 Google Cloud 控制台和 API 支持, 。有些服务还支持 Google Cloud CLI 或 Terraform。Cloud Monitoring API 参考文档页面,例如 alertPolicies.list, 让您可以在参考页面中直接尝试 API 调用。

Cloud Monitoring 服务

Cloud Monitoring 提供了多种不同的服务 来了解应用的健康状况和性能 您使用的其他 Google Cloud 服务。

提醒和通知

在效果指标的值符合您设定的条件时收到通知 创建提醒政策。提醒政策 包含将接收通知的人员或群组列表。 Monitoring 支持 常见的通知渠道, 包括电子邮件、Cloud Mobile App 以及 PagerDuty 或 Slack 等服务。 例如,您可以创建提醒政策,以便在 在虚拟机的 CPU 利用率超过 80% 时触发。

每条通知都包含失败的相关信息 包含指向突发事件的链接。突发事件是一种持久性记录,用于存储 有助于排查故障的信息。通常,一个记录 列出了事件状态、日志链接、所记录指标的图表 数据、标签和时长。

提醒服务与许多 Google Cloud 服务集成。当这些 您可能会看到列出推荐的提醒的面板,或者 您可能会在图表上看到一个可让您创建提醒政策的按钮。 在这两种情况下,提醒政策都已预先配置, 您只需指定要接收通知的人员或群组列表。

您可以使用 Google Cloud 控制台、 Cloud Monitoring API、Google Cloud CLI 或 Terraform。

主动监控和验证

如需测试服务的可用性、一致性和性能, 应用、网页和 API,创建 合成监控工具。例如: 您可以探测 HTTP、HTTPS 和 TCP 端点的响应, 拨测,并在出现以下情况时收到通知 端点无法响应。您还可以创建一个 断开链接检查器抓取网页,然后检查 并在检测到损坏的链接时通知您。

您可以使用 Google Cloud 控制台、 Cloud Monitoring API、Google Cloud CLI 或 Terraform。

直观呈现数据

直观呈现数据以查看趋势、识别离群值并查看其他 您可以使用 信息中心图表服务:

数据收集和存储

Cloud Monitoring 会收集并存储以下类型的指标数据:

  • 系统和应用指标 Ops Agent 会收集有关系统资源和 应用 在 Compute Engine 实例上运行的您可以配置 Ops Agent 从第三方插件收集指标,例如 Apache 或 Nginx Web 服务器、MongoDB 或 PostgreSQL 数据库。
  • 基于日志的指标,用于记录 写入 Cloud Logging 的日志。 Google 定义的基于日志的指标包括 您的服务检测到的错误数量以及 您的 Google Cloud 项目收到的日志条目的数量。 您还可以定义基于日志的指标。

查询语言

创建提醒政策或图表时, 提供一个查询来描述您要监控的数据或绘制图表:

监控大型系统

本部分介绍如何将资源作为 以及如何监控存储在 多个 Google Cloud 项目

将资源作为集合进行管理

将资源作为集合进行管理 请创建资源组,而不是逐个创建。 资源组是资源的动态集合 满足您提供的特定条件的所有广告素材添加和移除资源时 例如将 Compute Engine 虚拟机实例 Google Cloud 项目中,则群组中的成员资格会自动更改。 以下是资源组的示例:

  • 名称以字符串 prod- 开头的 Compute Engine 实例。
  • 带有 test-cluster 标记的资源。
  • 区域 A 或区域 B 中的 Amazon EC2 实例。

定义资源组后,您可以将组当作单个资源进行监控。例如,您 可以配置正常运行时间检查来监控资源组。 对于图表和提醒政策,您还可以根据群组名称进行过滤。

如需了解详情,请参阅配置资源组

监控多个 Google Cloud 项目的指标

如需通过一个界面查看和监控多个 Google Cloud 项目和 AWS 账号的时序数据,请配置多项目指标范围

默认情况下,Google Cloud 控制台中的 Cloud Monitoring 页面提供 对限定范围项目中存储的时序的访问权限。通过 限定范围的项目是您使用 Google Cloud 控制台项目选择器。限定范围的项目 存储提醒合成监控工具信息中心监控组 配置。

范围界定项目还托管一个指标范围。指标范围定义了其指标对于范围界定项目可见的项目和账号。您可以配置指标范围,以包含来自其他 Google Cloud 项目和来自 AWS 账号的时间序列数据。如需了解如何修改指标范围,请参阅 为多个项目配置指标范围

Cloud Monitoring 数据模型

本部分介绍 Cloud Monitoring 数据模型:

  • “指标类型”描述的是 。指标类型的示例包括虚拟机的 CPU 利用率和 磁盘使用量百分比

  • 时间序列是一种数据结构,包含指标的带时间戳的测量结果以及关于这些测量结果的来源和含义的信息。

以下是有关时间序列所含内容的一些详细信息:

  • points 数组包含带有时间戳的测量结果。

    以下是具有两个值的 points 数组的示例:

      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
    

    如需了解值的含义,您需要参考时间序列中包含的其他数据以及这些数据的定义。

  • resource 字段描述了受监控的硬件或软件组件。在 Cloud Monitoring 中,硬件或软件组件称为受监控的资源。受监控资源的示例包括 Compute Engine 实例和 App Engine 应用。有关 请参阅受监控的资源列表

    以下是 resource 字段的示例:

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
      }
    
    • type 字段将受监控资源列为 gce_instance,这表示这些测量是在 Compute Engine 虚拟机实例上进行的。

    • labels 字段包含键值对,用于提供受监控资源的其他信息。对于 gce_instance 类型,这些标签标识了受监控的虚拟机实例。

  • metric 字段描述了要测量的内容。

    以下是 metric 字段的示例:

      "metric": {
        "labels": {
          "instance_name": "test"
        },
        "type": "compute.googleapis.com/instance/cpu/utilization"
      },
    
    • 对于 Google 服务,type 字段指定服务和受监控的内容。在此示例中,Compute Engine 服务 测量 CPU 利用率。 当 type 字段以 customexternal 开头时,该指标为 自定义指标或第三方定义的指标

    • labels 字段包含键值对,用于提供有关测量的其他信息。这些标签被定义为 MetricDescriptor(即用于定义测量数据属性的资料结构)的一部分。指标的 MetricDescriptor compute.googleapis.com/instance/cpu/utilization 包含 instance_name 标签。

  • metricKind 字段描述了时间序列中相邻测量之间的关系:

    • GAUGE 指标用于存储在给定时间测量的事物值,例如每小时温度记录。

    • CUMULATIVE 指标会存储给定时刻(例如车辆中的里程表)测量的事物累计值。

    • DELTA 指标会存储指定时间段内所测量事物值的变化,例如,显示股票收益或损失的股票摘要。

  • valueType 字段描述测量的数据类型:INT64DOUBLEBOOLSTRINGDISTRIBUTION

Cloud Monitoring 会针对资源和指标标签值的每个组合写入一个时间序列。您可以使用这些标签对时间序列进行分组和过滤。 例如,如果某个 Google Cloud 项目包含多个 Compute Engine 虚拟机实例、每个虚拟机实例的 CPU 利用率 是一个唯一的时序。您可以通过以下几种方法显示这些数据:

  • 您可以显示每个虚拟机实例的 CPU 利用率。
  • 您可以通过以下方式显示特定虚拟机实例的 CPU 利用率 过滤时序以获取 instance_id 标签的单个值。
  • 您可以使用 machine_type 标签按虚拟机实例分组, 然后显示平均 CPU 利用率以下屏幕截图显示了采用此配置的图表:

    平均 CPU 利用率(按机器类型分组)。

价格

一般来说,Cloud Monitoring 系统指标是免费的, 不会来自外部系统、代理或应用。计费指标 按注入的字节数或提取的样本数收费。

如需详细了解 Cloud Monitoring 价格,请参阅以下文档:

后续步骤

  • 有关如何配置我们的 Google Cloud 项目 多个 Google Cloud 项目和 AWS 账号的指标,请参阅 指标范围概览