插桩示例概览

本文档介绍了为 GoJavaNode.jsPython 语言提供的插桩示例的结构。这些示例提供了有关如何插桩应用的指南。

您可能对其他示例感兴趣,这些示例展示了不同的配置:

示例的运作方式

Go、Java、Node.js 和 Python 示例使用 OpenTelemetry 协议收集跟踪记录和指标数据。这些示例会将日志记录框架配置为写入结构化日志,并将 OpenTelemetry 收集器配置为从应用的 stdout 流读取数据。如需框架建议,请参阅选择插桩方法

应用是使用 Docker 构建和部署的。使用 OpenTelemetry 对应用进行插桩时,您无需使用 Docker。

您可以在 Cloud Shell、 Google Cloud资源或本地开发环境中运行这些示例。

深入探究

这些示例使用 OpenTelemetry 收集器作为边车来接收和丰富应用的遥测数据,然后使用 Google Cloud exporter 将这些数据发送到您的 Google Cloud 项目。导出器会将遥测数据转换为与 Cloud Trace API、Cloud Monitoring API 或 Cloud Logging API 兼容的格式。接下来,它们会通过发出 API 命令将转换后的数据发送到您的 Google Cloud 项目。

示例展示了如何执行以下操作:

  1. 使用 OpenTelemetry 收集器配置 OpenTelemetry 以收集指标和轨迹。

    如果您查看示例,会发现此步骤的复杂性取决于语言。例如,对于 Go,此步骤会配置 main 函数以调用用于配置指标和轨迹集合的函数。对于 Go,HTTP 服务器和客户端也会更新。

  2. 配置日志记录框架以写入结构化日志

    我们建议您的应用写入结构化日志,这会导致日志载荷采用 JSON 对象格式。对于这些日志,您可以构建用于搜索特定 JSON 路径的查询,还可以为日志载荷中的特定字段编制索引。

    某些服务(例如 Google Kubernetes Engine)具有内置代理,可抓取结构化日志并将这些日志发送到您的 Google Cloud 项目。其他服务(例如 Compute Engine)则需要您安装代理,以抓取和发送日志。如需了解您安装的代理,请参阅 Ops Agent 概览

    您无需安装任何代理即可使用这些示例。

  3. 配置 Docker 文件。所有示例都包含以下 yaml 文件:

    • docker-compose.yaml:为应用、OpenTelemetry 收集器和负载生成器配置服务。例如,OpenTelemetry 收集器 otelcol 的服务指定了映像、卷和环境变量。OpenTelemetry 收集器的端点由 OTEL_EXPORTER_OTLP_ENDPOINT 环境变量设置,该变量在 app 服务中指定。

    • otel-collector-config.yaml:配置接收器、导出器、处理器和流水线。

      telemetry 服务定义了跟踪记录、指标和日志数据的流水线。每个流水线条目都指定了接收器、处理器和导出器。指标和轨迹使用相同的接收器 otlp

      exporters 部分介绍了如何将收集的数据导出到 Google Cloud 项目。对于所有遥测数据,系统都会使用 Google Cloud 导出器。导出器会将遥测数据转换为与 Cloud Trace API、Cloud Monitoring API 或 Cloud Logging API 兼容的格式。接下来,它会通过发出 API 命令将转换后的数据发送到您的 Google Cloud 项目。

    • docker-compose.creds.yaml:此文件可选择性地在 otelcol 容器中挂载Google Cloud 凭据文件。在本地机器上运行示例时,如果应用默认凭据 (ADC) 仅以文件形式提供,则需要此文件。

所需权限

如果您在 Cloud Shell、 Google Cloud资源或本地开发环境中运行示例,则只需具备本部分列出的权限即可。对于生产应用,服务账号通常会提供用于写入日志、指标和轨迹数据的凭据。

  • 如需获得让示例应用写入日志、指标和轨迹数据所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

必需的 API

以下部分介绍了向 Google Cloud 项目发送遥测数据所需的 API:

Google Cloud 控制台

Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.

Enable the APIs

Google Cloud CLI

Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs:

gcloud services enable logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com

后续步骤