收集 OpenTelemetry 协议 (OTLP) 指标和跟踪记录

本文档介绍如何使用 Ops Agent 和 OpenTelemetry 协议 (OTLP) 接收器从使用 OpenTelemetry 插桩且在 Compute Engine 上运行的应用中收集用户定义的指标和跟踪记录。

本文档的结构如下:

OTLP 接收器的使用概览

使用 Ops Agent OTLP 接收器,您可以执行以下操作:

  • 使用 OpenTelemetry 的某一语言特定 SDK 对您的应用进行插桩处理。如需了解支持的语言,请参阅 OpenTelemetry 插桩。OpenTelemetry SDK 和 Ops Agent 的组合可为您执行以下操作:
    • 从您的应用收集 OTLP 指标,然后将这些指标发送到 Cloud Monitoring 进行分析。
    • 从您的应用收集 OTLP span(跟踪记录数据),然后将这些 span 发送到 Cloud Trace 进行分析。
  • 从内置 OTLP 支持的第三方应用或具有此类支持的插件(如 Nginx)收集跟踪记录。Ops Agent 中的 OTLP 接收器可以收集这些跟踪记录。如需查看示例,请参阅 OpenTelemetry nginx 模块
  • 使用 OpenTelemetry 自定义插桩
  • 使用 OpenTelemetry 自动插桩

您可以使用接收器来收集指标和/或跟踪记录。 在 Ops Agent 收集您的指标后,您可以使用 Cloud Monitoring,包括图表、信息中心和提醒政策, 来监控指标如果您的应用也发送跟踪数据,那么 您可以使用 Cloud Trace 来分析这些数据

优势

在为 Ops Agent 推出 OTLP 插件之前, 检测应用以收集用户定义的 指标和跟踪记录包括以下内容:

  • 使用实现 Monitoring API 或 Trace API 的客户端库。
  • 使用旧版 OpenCensus 库。

与 OTLP 接收器相比,将 OpenTelemetry 与 OTLP 接收器配合使用 方法,包括:

  • OpenTelemetry 取代了 OpenCensus。OpenCensus 项目 正在归档。如需了解详情,请参阅“什么是 OpenTelemetry?”
  • 注入在代理级别进行控制,因此如果代理配置更改,您无需重新部署应用。
  • 您的应用不需要设置 Google Cloud 凭据;全部 授权在代理级别进行处理。
  • 您的应用代码不包含特定于 Google Cloud 的监控信息 或跟踪代码您不必使用 Monitoring API 或直接使用 Trace API。
  • 如果您的应用将数据推送到 Ops Agent, 则 Ops Agent 收集的任何数据都不会丢失。

限制

Ops Agent 接收器公开的 OTLP 监听器支持 gRPC 传输。不支持主要用于 JavaScript 客户端的 HTTP。如需详细了解 OpenTelemetry 协议,请参阅协议详细信息

OTLP 接收器不会收集日志。您可以使用 Ops Agent 和其他接收器收集日志,也可以在 OTLP span 中包含日志信息,但 OTLP 接收器不支持直接收集日志。如需了解如何使用 Ops Agent 收集日志,请参阅日志记录配置

前提条件

如需使用 OTLP 接收器和 Ops Agent 收集 OTLP 指标和跟踪记录,您必须安装 Ops Agent 2.37.0 版或更高版本。

本文档假定您已经有一个使用 OpenTelemetry SDK 编写的基于 OpenTelemetry 的应用。本文档未涵盖 OpenTelemetry SDK。如需了解 SDK 和支持的语言,请参阅 OpenTelemetry 插桩

配置 Ops Agent

如需将 Ops Agent 配置为使用 OTLP 接收器,请执行以下操作:

  1. 修改 Ops Agent 的用户配置文件,以包含 OTLP 接收器
  2. 重启 Ops Agent

以下各部分分别介绍了各个步骤。

修改 Ops Agent 用户配置文件

将 OTLP 接收器的配置元素添加到 Ops Agent 的用户配置文件:

  • 对于 Linux:/etc/google-cloud-ops-agent/config.yaml
  • 对于 Windows:C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml

如需了解如何配置代理的一般信息,请参阅配置模型

OTLP 接收器引入了 combined 配置部分 是 Ops Agent。要使用接收器,您需要为 指标和跟踪记录,即使您没有同时使用这两者。

以下部分介绍了 OTLP 接收器的配置步骤。

添加 combined 接收器部分

请将 OTLP 指标和跟踪记录的接收器放在 combined 中, 部分。combined 部分中不允许使用任何处理方或服务。 您不得使用 与 combined 部分中的接收器同名。以下示例 使用 otlp 作为接收器的名称。

OTLP 的最低 combined 配置如下所示:

combined:
  receivers:
    otlp:
      type: otlp

otlp 接收器具有以下配置选项:

  • type:必填。必须为 otlp
  • grpc_endpoint:可选。OTLP 接收器监听的 gRPC 端点。默认值为 0.0.0.0:4317
  • metrics_mode:可选。默认值为 googlemanagedprometheus, 指接收方将 OTLP 指标作为 Prometheus 格式的指标发送, Prometheus API, Managed Service for Prometheus

    要使用 Monitoring API,请将 metrics_mode 选项设置为 值为 googlecloudmonitoring

    您的选择会影响指标的注入方式以及计费方式。如需详细了解指标格式,请参阅 OTLP 指标的注入格式

将 OTLP 流水线添加到您的服务

OTLP 接收器可以收集指标和跟踪记录,因此您必须定义 以及用于指标和跟踪记录的服务如果您不打算收集 您可以创建空服务如果您已有 和其他流水线,则可以向其中添加 OTLP 流水线。

下面显示了使用 OTLP 的 metricstraces 服务 接收器:

combined:
  receivers:
    otlp:
      type: otlp
metrics:
  service:
    pipelines:
      otlp:
        receivers: [otlp]
traces:
  service:
    pipelines:
      otlp:
        receivers: [otlp]

如果您不想将 metricstraces 服务用于 OTLP 然后将 OTLP 接收器排除在服务的流水线之外。 服务必须存在,即使它没有流水线也是如此。如果您的应用发送指定类型的数据,并且不存在包含接收器的相应流水线,则 Ops Agent 会舍弃该数据。

重启 Ops Agent

如需应用配置更改,您必须重启 Ops Agent。

Linux

  1. 如需重启代理,请在您的实例上运行以下命令:
    sudo systemctl restart google-cloud-ops-agent
    
  2. 如需确认代理已重启,请运行以下命令并验证“指标代理”和“Logging 代理”组件是否已启动:
    sudo systemctl status "google-cloud-ops-agent*"
    

Windows

  1. 使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。
  2. 右键点击 PowerShell 图标并选择 Run as Administrator,以管理员权限打开 PowerShell 终端
  3. 如需重启代理,请运行以下 PowerShell 命令:
    Restart-Service google-cloud-ops-agent -Force
    
  4. 如需确认代理已重启,请运行以下命令并验证“指标代理”和“Logging 代理”组件是否已启动:
    Get-Service google-cloud-ops-agent*
    

收集 OTLP 指标

当您使用 OTLP 接收器从 OpenTelemetry 应用收集指标时,接收器的主要配置是您要用于注入指标的 API。

您可以通过更改 metrics_mode 选项 配置 otlp 接收器或使用默认值。 该选择会影响 OTLP 指标注入到 Cloud Monitoring 的方式以及该数据用于结算的方式。

metrics_mode 选择不会影响您在 Monitoring 中创建图表、信息中心和提醒政策的能力。

以下部分介绍了指标模式使用的格式差异,以及如何查询注入的数据以便在 Monitoring 中使用。

OTLP 指标的注入格式

OTLP 接收器提供 metrics_mode 选项,该选项指定用于注入指标数据的 API。默认情况下,接收器使用 Prometheus API;metrics_mode 选项的默认值为 googlemanagedprometheus。提取的指标使用的是 Managed Service for Prometheus 使用的 API。

您可以将接收器配置为将指标数据发送到 Cloud Monitoring API。如需向 Monitoring API 发送数据, 将 metrics_mode 选项的值设置为 googlecloudmonitoring,如下所示: 如以下示例中所示:

combined:
  receivers:
    otlp:
      type: otlp
      metrics_mode: googlecloudmonitoring

您使用的注入格式决定了 OTLP 指标如何映射到 Cloud Monitoring。您可以创建图表、信息中心和提醒 Monitoring 中针对任一指标格式的指标, 但您在查询中对指标的指代方式不同。

注入格式还决定了数据注入所用的价格模式。

以下各部分介绍了价格、 即 Prometheus API 注入的指标与 Monitoring API 以及如何在查询中引用指标。

价格和配额

您使用的注入格式决定了 OTLP 指标的计费方式:

  • Prometheus API:当您使用 Prometheus API 注入应用的指标时,数据会按照基于样本的价格收费,就像指标是使用 Managed Service for Prometheus 注入的一样。

  • Monitoring API:当您使用 Monitoring API 注入应用的指标时,数据将按基于量的价格计费,就像来自与 Ops Agent 的其他集成的数据一样。

使用 OTLP 接收器注入的指标在注入到 Cloud Monitoring 时被视为“自定义”指标类型,并且受自定义指标的配额和限制的约束。

指标结构

Cloud Monitoring 使用架构来描述指标数据的格式 称为指标描述符指标描述符包括 指标名称、指标值的数据类型、每个值之间的关系 先前的值以及与这些值相关联的任何标签。如果您使用 Prometheus API 将 OTLP 接收器配置为注入指标,则创建的指标描述符与使用 Monitoring API 时创建的指标描述符不同。

Prometheus API:当您使用 Prometheus API 注入应用的 每个指标都使用 OpenTelemetry 到 Prometheus 的转换 并映射到 Cloud Monitoring 受监控的资源类型。

  • 转换包括以下更改:
    • OTLP 指标名称的前缀为字符串 prometheus.googleapis.com/.
    • OTLP 指标名称中的任何非字母数字字符(如句点 [.])都将替换为下划线 (_)。
    • OTLP 指标名称的后缀会带有一个字符串,该字符串表示 指标种类,例如 /gauge/counter
  • 以下标签填充了来自 OTLP 资源的值, 都会添加到指标中: <ph type="x-smartling-placeholder">
      </ph>
    • instance_namehost.name 资源属性的值。
    • machine_typehost.type 资源属性的值。
  • 随指标测量值记录的受监控的资源为 通用 prometheus_target 类型。 生成的 Prometheus 时序包括 prometheus_target 资源中的以下标签,并填充了 OTLP 资源中的值:

    • locationcloud.availability_zone 资源属性的值。
    • namespacehost.id 资源属性的值。

    prometheus_target 资源类型还包括以下标签:

    • project_id:Google Cloud 项目的标识符,例如 my-project:Ops Agent 在其中运行。
    • cluster:收集指标时值始终为 __gce__ 由 Ops Agent 管理。

如果传入的 OTLP 数据缺少用于标签值的资源属性,则这些值将来自运行 Ops Agent 的虚拟机的相关信息。此行为意味着没有这些资源属性的 OTLP 数据与 Ops Agent Prometheus 接收器收集的数据具有相同的标签。

Monitoring API:当您使用 Monitoring API 注入应用的指标时,每个指标的处理方式如下:

  • OTLP 指标名称具有前缀 workload.googleapis.com/(除非 OTLP 指标名称已包含此字符串或其他有效的指标网域,例如 custom.googleapis.com)。我们建议使用“workload”网域。
  • 随指标测量值记录的受监控的资源为 Compute Engine 虚拟机类型 gce_instance.

以下示例显示了一对 OpenTelemetry 的指标描述符 指标。这些指标由使用 Go OpenTelemetry 指标库Prometheus API 标签页显示了 当 OTLP 接收器使用默认 Prometheus 指标模式。Monitoring API 标签页显示 指标描述符会在 OTLP 接收器使用 googlecloudmonitoring 指标模式。

创建该指标的应用中没有任何变化;唯一的 change 是 OTLP 接收器使用的指标模式。

该应用会创建一个 OTLP 量表指标 otlp.test.gauge, 记录 64 位浮点值。 以下标签页显示了每个 ingestion API 创建的指标描述符:

Prometheus API

{
  "name": "projects/PROJECT_ID/metricDescriptors/prometheus.googleapis.com/otlp_test_gauge/gauge",
  "labels": [
    {
      "key": "instance_name"
    },
    {
      "key": "machine_type"
    }
  ],
  "metricKind": "GAUGE",
  "valueType": "DOUBLE",
  "type": "prometheus.googleapis.com/otlp_test_gauge/gauge",
  "monitoredResourceTypes": [
    "prometheus_target"
  ]
}

Monitoring API

{
  "name": "projects/PROJECT_ID/metricDescriptors/workload.googleapis.com/otlp.test.gauge",
  "labels": [
    {
      "key": "instrumentation_source"
    }
  ],
  "metricKind": "GAUGE",
  "valueType": "DOUBLE",
  "type": "workload.googleapis.com/otlp.test.gauge",
  "monitoredResourceTypes": [
    "gce_instance",
    ...many other types deleted...
  ]
}

应用创建一个 OTLP 计数器指标 otlp.test.cumulative, 记录递增的 64 位浮点值。 以下标签页显示了每个 ingestion API 创建的指标描述符:

Prometheus API

{
  "name": "projects/PROJECT_ID/metricDescriptors/prometheus.googleapis.com/otlp_test_cumulative/counter",
  "labels": [
    {
      "key": "instance_name"
    },
    {
      "key": "machine_type"
    }
  ],
  "metricKind": "CUMULATIVE",
  "valueType": "DOUBLE",
  "type": "prometheus.googleapis.com/otlp_test_cumulative/counter",
  "monitoredResourceTypes": [
    "prometheus_target"
  ]
}

Monitoring API

{
  "name": "projects/PROJECT_ID/metricDescriptors/workload.googleapis.com/otlp.test.cumulative",
  "labels": [
    {
      "key": "instrumentation_source"
    }
  ],
  "metricKind": "CUMULATIVE",
  "valueType": "DOUBLE",
  "type": "workload.googleapis.com/otlp.test.cumulative",
  "monitoredResourceTypes": [
    "gce_instance",
    ...many other types deleted...
  ]
}

下表总结了用于注入 OTLP 指标的 API 施加的一些格式差异:

  Prometheus API Monitoring API
指标网域 prometheus.googleapis.com workload.googleapis.com
OTLP 指标名称 在注入期间修改 按原样使用
受监控的资源 prometheus_target gce_instance

注入格式和查询

OTLP 接收器中使用的指标模式会影响您对 当您在 Cloud Monitoring 中构建图表、信息中心 和提醒政策。

当您在 Google Cloud 控制台中配置图表、信息中心或提醒政策时, Cloud Monitoring,配置包括对 运行图表、信息中心或提醒政策的数据。

Cloud Monitoring 支持以下指标查询工具 数据:

  • 一个基于查询构建器的界面,内置于 Metrics Explorer、 信息中心构建器界面,以及 alert-policy 配置 界面。
  • Monitoring Query Language (MQL):特定于 Cloud Monitoring 的文本查询语言。
  • Prometheus 查询语言 (PromQL): 开源 Prometheus

如需了解如何使用这些工具查询 OTLP 指标, 请参阅以下内容:

查询使用 Prometheus API 注入的 OTLP 指标

本部分介绍如何查询使用 Prometheus API 注入的 OTLP 指标(这是 OTLP 接收器的默认指标模式)。

这些查询基于指标结构中所述的 OTLP 指标:

  • otlp.test.gauge:记录 64 位浮点值的 OTLP 衡量指标。
  • otlp.test.cumlative:记录不断增加的 64 位浮点值的 OTLP 计数器指标。

这些指标使用以下指标类型注入到 Cloud Monitoring 中,充当名称:

  • prometheus.googleapis.com/otlp_test_gauge/gauge
  • prometheus.googleapis.com/otlp_test_cumulative/counter

使用 Prometheus API 注入的指标根据 受监控的资源类型 prometheus_target

这两个标签页显示了按下列维度查询指标时的基本查询: 使用 Google Cloud 控制台这些示例使用的是 Metrics Explorer 信息中心和提醒政策的原则都是相同的。

查询构建器接口

如需使用查询构建器界面查询指标数据,请指定 指标类型和受监控的资源类型(通过在已启用搜索框中输入 字段。资源类型远远少于指标类型, 通常最高效的做法是搜索资源类型,然后使用 菜单,找到相应指标类型。

在搜索字段中输入“prometheus”后,搜索结果中会包含 prometheus_target 受监控的资源,由显示名称“Prometheus Target”显示,以及写入资源的一组指标。这些指标包括 按名称分类;这两个示例指标会显示为“Otlp”类别。Otlp 您可以选择 Prometheus/otlp_test_cumulative/counterPrometheus/otlp_test_gauge/gauge

如需详细了解如何使用查询构建器,请参阅使用菜单构建查询

以下屏幕截图显示了查询 prometheus.googleapis.com/otlp_test_gauge/gauge 指标的结果:

使用 Prometheus API 注入的 OTLP 衡量指标的基于构建器的 Metrics Explorer 图表。

以下屏幕截图显示了查询 prometheus.googleapis.com/otlp_test_cumulative/counter 指标的结果:

基于构建器的 Metrics Explorer 图表,显示使用 Prometheus API 注入的 OTLP 计数器指标。

MQL

如需使用 MQL 查询指标数据,请使用 fetch 语句并 指定指标类型和受监控的资源类型,以 :: 。示例指标的普通 MQL 查询如下: 以下:

  • fetch prometheus.googleapis.com/otlp_test_gauge/gauge::prometheus_target
  • fetch prometheus.googleapis.com/otlp_test_cumulative/counter::prometheus_target

如需详细了解如何创建 MQL 查询,请参阅示例 MQL 查询

以下屏幕截图显示了查询 prometheus.googleapis.com/otlp_test_gauge/gauge 指标的结果:

使用 Prometheus API 注入的 OTLP 衡量指标的 MQL Metrics Explorer 图表。

以下屏幕截图显示了查询 prometheus.googleapis.com/otlp_test_cumulative/counter 指标的结果:

使用 Prometheus API 注入的 OTLP 计数器指标的 MQL Metrics Explorer 图表。

PromQL

当您使用 PromQL 查询使用 Prometheus API 注入的指标数据时,您只需要指定原始 OTLP 指标名称的修改形式。您无需指定前缀 prometheus.googleapis.com/ 字符串或后缀类型。

当只能针对一种受监控的资源类型写入指标时, 就无需指定资源具体说明请参阅指标 结构,使用 Prometheus API 仅针对 prometheus_target 受监控的资源类型。 示例指标的普通 PromQL 查询如下所示:

  • otlp_test_gauge
  • otlp_test_cumulative

如需详细了解如何在 Cloud Monitoring 中使用 PromQL 查询 使用 Prometheus API 注入的指标,请参阅 Google Cloud Managed Service for Prometheus 数据。 如需了解 PromQL 语言,请参阅查询 Prometheus

以下屏幕截图显示了查询 prometheus.googleapis.com/otlp_test_gauge/gauge 指标的结果:

使用 Prometheus API 注入的 OTLP 计量指标的 PromQL Metrics Explorer 图表。

以下屏幕截图显示了查询 prometheus.googleapis.com/otlp_test_cumulative/counter 指标的结果:

使用 Prometheus API 注入的 OTLP 计数器指标的 PromQL Metrics Explorer 图表。

查询使用 Monitoring API 注入的 OTLP 指标

本部分介绍如何查询使用 Monitoring API 注入的 OTLP 指标。您可以通过设置 将 OTLP 接收器的 metrics_mode 字段转换为该值 googlecloudmonitoring.

这些查询基于指标结构中所述的 OTLP 指标:

  • otlp.test.gauge:记录 64 位浮点值的 OTLP 衡量指标。
  • otlp.test.cumlative:记录不断增加的 64 位浮点值的 OTLP 计数器指标。

这些指标使用以下指标类型注入到 Cloud Monitoring 中,充当名称:

  • workload.googleapis.com/otlp.test.gauge
  • workload.googleapis.com/otlp.test.cumulative

使用 Monitoring API 注入的指标是针对受监控的资源类型 gce_instance 编写的。

这两个标签页显示了按下列维度查询指标时的基本查询: 使用 Google Cloud 控制台这些示例使用的是 Metrics Explorer 信息中心和提醒政策的原则都是相同的。

查询构建器接口

如需使用查询构建器界面查询指标数据,请指定 指标类型和受监控的资源类型(通过在已启用搜索框中输入 字段。资源类型远远少于指标类型, 通常最高效的做法是搜索资源类型,然后使用 菜单,找到相应指标类型。

如果您在搜索字段中输入“gce_instance”,则结果将按显示名称、“虚拟机实例”以及写入资源的指标集显示资源类型。这些指标按名称分类两个示例 相应指标会显示为 Otlp 类别。您可以选择 Workload/otlp_test_ buildWorkload/otlp_test_gauge

如需详细了解如何使用查询构建器,请参阅使用菜单构建查询

以下屏幕截图显示了查询 workload.googleapis.com/otlp.test.gauge 指标的结果:

使用 Monitoring API 注入的 OTLP 衡量指标的基于构建器的 Metrics Explorer 图表。

以下屏幕截图显示了查询 workload.googleapis.com/otlp.test.cumulative 指标的结果:

使用 Monitoring API 注入的 OTLP 计数器指标的基于构建器的 Metrics Explorer 图表。

MQL

如需使用 MQL 查询指标数据,请使用 fetch 语句并 指定指标类型和受监控的资源类型,以 :: 。示例指标的普通 MQL 查询如下所示: 以下:

  • fetch workload.googleapis.com/otlp.test.gauge::gce_instance
  • fetch workload.googleapis.com/otlp.test.cumulative::gce_instance

如需详细了解如何创建 MQL 查询,请参阅示例 MQL 查询

以下屏幕截图显示了查询 workload.googleapis.com/otlp.test.gauge 指标的结果:

使用 Monitoring API 注入的 OTLP 衡量指标的 MQL Metrics Explorer 图表。

以下屏幕截图显示了查询 workload.googleapis.com/otlp.test.cumulative 指标的结果:

使用 Monitoring API 注入的 OTLP 计数器指标的 MQL Metrics Explorer 图表。

PromQL

当您使用 PromQL 查询使用 Monitoring API 注入的指标数据时,必须将指标名称映射到 PromQL 惯例。基本映射规则包括:

  • 将第一个 / 替换为 :
  • 将所有其他特殊字符(包括 . 和其他 / 字符)替换为 _

如需详细了解映射规则,请参阅映射 Cloud Monitoring 传递给 PromQL

示例指标的 Monitoring 指标类型为 映射到 PromQL,如下所示:

  • workload_googleapis_com:otlp_test_gauge
  • workload_googleapis_com:otlp_test_cumulative

当只能针对一种受监控的资源类型写入指标时, 就无需指定资源示例指标会针对 gce_instance 受监控的资源类型编写,但如指标结构中所述,gce_instance 只是可能的指标类型之一。因此,PromQL 对这些指标的查询必须包含针对gce_instance的过滤条件 资源类型。要添加过滤器,请将以下字符串添加到 映射的指标名称的末尾:{monitored_resource="gce_instance"}

如需详细了解如何在 Cloud Monitoring 中使用 PromQL, 请参阅 Cloud Monitoring 中的 PromQL。 如需了解 PromQL 语言,请参阅查询 Prometheus

示例指标的普通 PromQL 查询如下所示:

  • workload_googleapis_com:otlp_test_gauge{monitored_resource="gce_instance"}
  • workload_googleapis_com:otlp_test_cumulative{monitored_resource="gce_instance"}

以下屏幕截图显示了查询 workload.googleapis.com/otlp.test.gauge 指标的结果:

使用 Monitoring API 注入的 OTLP 计量指标的 PromQL Metrics Explorer 图表。

以下屏幕截图显示了查询 workload.googleapis.com/otlp.test.cumulative 指标的结果:

使用 Monitoring API 注入的 OTLP 计数器指标的 PromQL Metrics Explorer 图表。

在 Cloud Monitoring 中查看指标使用情况和诊断信息

Cloud Monitoring 指标管理页面提供的信息可帮助您控制在收费指标上支出的金额,而不会影响可观测性。指标管理页面报告以下信息:

  • 针对指标网域中基于字节和基于样本的结算以及各个指标的注入量。
  • 有关标签和指标基数的数据。
  • 指标在提醒政策和自定义信息中心内的使用。
  • 指标写入错误率。

如需查看指标管理页面,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 指标管理页面:

    进入指标管理

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 在工具栏中,选择时间窗口。默认情况下,指标管理页面会显示有关前一天收集的指标的信息。

如需详细了解指标管理页面,请参阅查看和管理指标使用情况

收集 OTLP 跟踪记录

如果您已将 Ops Agent 配置为收集跟踪记录,但得到 Cloud Trace 中没有任何跟踪记录,则您可能需要 需要向 Compute Engine 服务账号授予额外的角色 代理使用的代理默认情况下,服务账号会获得所需的角色 写入指标和日志,但不写入跟踪记录。

以下各部分介绍了如何向服务账号授予 必要的 Cloud Trace 授权。

确定授予服务账号的角色

如需查看授予服务账号的角色,请运行以下命令 gcloud projects get-iam-policy 命令:

gcloud projects get-iam-policy PROJECT_ID --format="table(bindings.role)" --flatten="bindings[].members" --filter="bindings.members:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com"

您可能会看到如下所示的输出:

ROLE
roles/logging.logWriter
roles/monitoring.metricWriter

如果输出包含 roles/cloudtrace.agentroles/cloudtrace.admin,则表示该服务账号已拥有足够的 写入跟踪记录的权限。要向服务授予这些角色之一,请执行以下操作: 请参阅下一部分。

为服务账号授予 Cloud Trace 角色

对于服务账号,Cloud Trace Agent 角色 roles/cloudtrace.agent, 通常比较合适如需将此角色授予服务账号,请执行以下操作: 运行以下 gcloud projects add-iam-policy-binding 命令:

gcloud projects add-iam-policy-binding PROJECT_ID --member "serviceAccount:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role="roles/cloudtrace.agent"

然后,您可以运行 gcloud projects get-iam-policy 命令来验证 所做的更改:

gcloud projects get-iam-policy PROJECT_ID --format="table(bindings.role)" --flatten="bindings[].members" --filter="bindings.members:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com"

输出现在包含 roles/cloudtrace.agent

ROLE
roles/cloudtrace.agent
roles/logging.logWriter
roles/monitoring.metricWriter

如需详细了解如何管理 IAM 角色,请参阅管理对项目的访问权限、 文件夹和组织

授权 Ops Agent 使用的服务账号写入 将数据上传到 Cloud Trace 时,当您运行基于 OpenTelemetry 的应用时, 跟踪记录显示在 Cloud Trace 中:

跟踪记录详情窗格显示 OTLP 跟踪记录。

停用 OTLP 接收器

如果您使用 Ops Agent 同时收集 OTLP 指标和跟踪记录, 您想要停用指标或跟踪记录的收集功能, ,则执行以下操作:

  1. 通过采用以下任一方法禁止收集指标或跟踪记录 对用户配置文件 config.yaml 进行以下更改:

    • metrics 服务中移除 otlp 流水线。
    • traces 服务中移除 otlp 流水线。
  2. 重启 Ops Agent

如需停用 Ops Agent 收集 OTLP 指标和跟踪记录的功能,请执行以下操作: 执行以下操作:

  1. 从用户配置文件中移除 OTLP 配置:

    • 删除整个 combined 部分,其中包括 otlp 接收器。
    • metrics 服务中移除 otlp 流水线。
    • 删除整个 traces 服务。
  2. 重启 Ops Agent

后续步骤

注入应用指标和跟踪记录后,您可以使用 Google Cloud 控制台来监控和分析数据。