这组文档介绍了 Google 构建的 OpenTelemetry 收集器,并说明了如何部署该收集器以从插桩的应用中收集 OpenTelemetry 协议 (OTLP) 跟踪记录、指标和日志,并将这些数据导出到 Google Cloud Observability 和其他后端。
Google 构建的 OpenTelemetry 收集器是使用上游 OpenTelemetry 收集器组件构建的上游 OpenTelemetry 收集器的开源正式版 build。OpenTelemetry 是 Cloud Native Computing Foundation 的一部分,提供开源 API、库和 SDK,用于收集分布式跟踪记录、指标和日志以进行应用监控。
借助 Google 构建的 OpenTelemetry 收集器,您可以将关联的 OTLP 跟踪记录、指标和日志从使用 OpenTelemetry SDK 插桩的应用发送到 Google Cloud Observability 和其他后端。收集器还会捕获资源的元数据,以便您将应用性能数据与基础架构遥测数据相关联。 Google Cloud 将 Google 构建的 Collector 与 Google Cloud Observability 搭配使用,可获得有助于提升应用和基础架构性能的数据洞见。如需详细了解收集器,请参阅 Google 构建的 OpenTelemetry 收集器说明。
使用 Google 构建的 OpenTelemetry 收集器
您可以使用 Google 构建的 Collector 从在 Kubernetes(包括 Google Kubernetes Engine)、Container-Optimized OS 或独立容器上运行的应用收集遥测数据。本部分中的文档介绍了如何在以下环境中配置和部署 Google 构建的收集器:
如果您没有准备好使用收集器的应用,则可以使用 Google 构建的收集器部署 OpenTelemetry 演示版。如需了解详情,请参阅试用 OpenTelemetry 演示。
如需了解如何使用 OpenTelemetry 插桩从应用生成轨迹、指标和日志,请参阅以下文档:
Google 构建的 OpenTelemetry 收集器说明
Google 构建的 OpenTelemetry 收集器是使用上游 OpenTelemetry 组件和工具构建的,并且完全从 Google 构建-测试-发布基础架构 (Artifact Registry) 构建和检索。Google 构建的收集器与上游代码库中的 OpenTelemetry 收集器 build 兼容。它还以 Docker 映像的形式托管,可在任何基于容器的系统(包括 Kubernetes 和 GKE)上灵活部署。
Google 构建的 Collector 提供了由 Google 精选的软件包,其中包含大多数用户在 Google Cloud上获得丰富可观测性体验所需的组件。您无需选择组件并手动构建自己的 Collector。使用 Google 构建的收集器,您可以:
- 收集 Google Cloud 资源的元数据,以便将应用性能数据与基础架构遥测数据相关联。
- 使用导出器(包括原生支持 OpenTelemetry 的后端)将遥测数据路由到 Google Cloud Observability 或您选择的后端。
- 通过推荐的配置和最佳实践自监控(包括健康检查和批量处理)功能简化初始配置。
- 使用托管的 Docker 映像在任何基于容器的系统(包括 Kubernetes 和 GKE)上灵活部署。
最佳做法
OpenTelemetry 维护了有关配置 OpenTelemetry 收集器和扩缩收集器的最佳实践列表。本部分提供了一些其他建议。
使用健康检查扩展程序
健康检查扩展程序会启用一个 HTTP 网址,可用于探测 OpenTelemetry 收集器的状态。使用此扩展程序具有以下优势:
- 提前检测问题:健康检查有助于主动监控收集器的状态,以便在潜在问题对遥测数据产生负面影响之前检测到这些问题。此预防措施有助于确保可观测性流水线的可靠性。
- 改进了问题排查功能:当出现问题时,健康检查可提供有关 Collector 当前状态的宝贵数据洞见。这些信息可以简化诊断和解决问题的过程,缩短停机时间并简化问题排查工作。
- 增强的可靠性:持续监控收集器的运行状况可确保其正常运行并防止意外故障。这种主动措施可以提高可观测性系统的整体可靠性,并最大限度地降低遥测数据丢失或出现数据缺口的风险。
在 Kubernetes 和 GKE 上,健康检查扩展程序与 Kubernetes 活跃性和就绪性探测兼容。如需了解如何设置这些探测,请参阅 Kubernetes 最佳实践:使用就绪性探测和活跃性探测设置健康检查。
在 Cloud Run 上,单个健康检查扩展程序可用作 Cloud Run 服务配置中的启动探测和活跃探测的端点。
使用批处理器
批处理器会收集轨迹、指标或日志,并将其打包成批量以进行传输。使用批处理器具有以下优势:
- 最大限度地减少出站连接:通过将数据传输分组为批次,OpenTelemetry 收集器可显著减少出站连接数量。这种整合方法可降低配额用量,并有可能降低总体网络费用。
- 改进了数据压缩:批处理可实现更高效的数据压缩,从而缩减传输数据的总大小。
- 批处理策略的灵活性:同时支持基于大小和基于时间的批处理,可灵活针对不同场景进行优化。基于大小的批处理可确保批处理在达到特定大小后才发送,而基于时间的批处理会在特定时间间隔过后发送批处理。这种灵活性可让您微调批处理策略,以符合数据的具体特征和应用的具体要求。
版本说明
Google 构建的 OpenTelemetry 收集器的版本与上游 OpenTelemetry 收集器保持同步。当前版本为 v0.122.1;存储在 Artifact Registry 中的相应 Docker 映像为 us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.122.1。对于每个新版本,此页面都会包含与用户最相关的更改。 Google Cloud
0.122.1:
- Google 构建的 OpenTelemetry 收集器:更新为 OpenTelemetry Collector Core 版本 v0.122.1 和 OpenTelemetry Collector Contrib v0.122.0。
- 添加了新组件:
googleclientauthextension
- 已知问题通告:
- 如果您使用 OTLP 导出收集器自定义遥测数据,请注意以下问题:https://github.com/open-telemetry/opentelemetry-collector/issues/12701
- OpenTelemetry Collector Core 代码库:版本说明
- OpenTelemetry Collector Contrib 代码库: 版本说明
0.121.0:
可支持性
对于 Google 构建的所有 OpenTelemetry Collector 客户端问题(包括功能请求、bug 报告和常见问题),请在相应的 GitHub 代码库中提交问题。Google 会监控这些代码库,并尽最大努力对问题进行分类和解决。
Google 构建的 OpenTelemetry Collector 打包仓库,适用于与以下内容相关的问题:
- 打包
- 在 Google Cloud上部署
- Google Cloud中的身份验证
- 请求添加新的 OpenTelemetry 组件
OpenTelemetry Collector Contrib 代码库,适用于与以下内容相关的问题:
- 特定于 Google 的 OpenTelemetry 组件,例如:
googlecloudexporter
googlemanagedprometheusexporter
googleclientauthextension
resourcedetectionprocessor
- 由上游社区管理的非 Google 专用 OpenTelemetry 组件
- 特定于 Google 的 OpenTelemetry 组件,例如:
对于与 Google 构建的 OpenTelemetry 收集器使用 Google Cloud 可观测性服务和 API 相关的问题(例如服务器错误或配额),请与 Cloud Customer Care 联系。
价格
部署和使用 Google 构建的 OpenTelemetry 收集器无需付费。
向 Google Cloud发送遥测数据时,您将按提取量付费。如需了解与轨迹、日志和 Google Cloud Managed Service for Prometheus 指标的提取相关的费用,请参阅 Google Cloud Observability 的价格。
试用 OpenTelemetry 演示
本部分介绍了如何使用 Google 构建的 OpenTelemetry 收集器部署和运行 适用于Google Cloud的 OpenTelemetry 演示。
此部分为可选。如果您已准备好将 Google 构建的 Collector 集成到您自己的部署中,请参阅以下文档:
- 在 Google Kubernetes Engine 上部署收集器
- 在 Container-Optimized OS 上部署收集器
- 在 Cloud Run 上部署 Collector
准备工作
OpenTelemetry 演示需要配置了 Workload Identity 联合的 Kubernetes 集群。如需了解如何为 OpenTelemetry 演示版设置 Workload Identity 联合,请参阅 Workload Identity 前提条件。
更新演示以使用 Google 构建的收集器
默认情况下,OpenTelemetry 演示使用上游 OpenTelemetry 收集器。如需改用 Google 构建的 OpenTelemetry 收集器,请执行以下操作:
克隆 OpenTelemetry 演示代码库:
git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
转到
kubernetes
目录。cd kubernetes
修改文件
opentelemetry-demo.yaml
,替换要供 Collector 映像使用的行。该行代码如下所示,但版本可能有所不同:image: "otel/opentelemetry-collector-contrib:0.108.0"
将
image:
字段的值替换为us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.122.1
,使该行看起来像下面这样,然后保存文件:image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.122.1"
部署演示
通过应用更新后的 opentelemetry-demo.yaml
文件部署演示版:
kubectl apply --namespace otel-demo -f opentelemetry-demo.yaml
连接到演示
应用更新后的配置后,您可以将数据转发到本地端口。例如,如需连接到 localhost:8080
上的演示版,请发出以下命令:
kubectl port-forward --n otel-demo svc/opentelemetry-demo-frontendproxy 8080:8080
然后,您可以使用浏览器连接到 localhost:8080
上的演示版。
查看遥测数据
OpenTelemetry 演示使用 Google 构建的 OpenTelemetry 收集器将指标、轨迹和日志发送到 Google Cloud 。如需了解该演示发送的具体遥测数据,请参阅该演示文档中的查看遥测数据部分。
查看指标
Google 构建的 OpenTelemetry 收集器会收集 Prometheus 指标,您可以使用 Metrics Explorer 查看这些指标。收集的指标取决于应用的插桩,不过 Google 构建的 Collector 也会写入一些自定义指标。
如需查看 Google 构建的 OpenTelemetry 收集器收集的指标,请执行以下操作:-
在 Google Cloud 控制台中,转到 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在 Google Cloud 控制台的工具栏中,选择您的 Google Cloud 项目。 对于 App Hub 配置,请选择 App Hub 宿主项目或启用应用的文件夹的管理项目。
- 在指标元素中,展开选择指标菜单,在过滤栏中输入
Prometheus Target
,然后使用子菜单选择一个特定资源类型和指标:- 在活跃资源菜单中,选择 Prometheus 目标。
- 如需选择指标,请使用活跃指标类别和活跃指标菜单。
Google 构建的 OpenTelemetry 收集器收集的指标带有前缀
prometheus.googleapis.com
。 - 点击应用。
- 配置数据的查看方式。
如果指标的测量结果是累积的,则 Metrics Explorer 会自动按校准时间段对测量数据进行归一化,从而使图表显示速率。如需了解详情,请参阅种类、类型和转换。
测量整数或双精度值时(例如使用
counter
指标),Metrics Explorer 会自动对所有时序求和。如需更改此行为,请将汇总条目的第一个菜单设置为无。如需详细了解如何配置图表,请参阅使用 Metrics Explorer 时选择指标。
查看跟踪记录
如需查看跟踪记录数据,请执行以下操作:
-
在 Google Cloud 控制台中,转到 Trace 探索器页面:
您也可以使用搜索栏查找此页面。
- 在 Google Cloud 控制台的工具栏中,选择您的 Google Cloud 项目。对于 App Hub 配置,请选择 App Hub 主机项目或启用应用的文件夹的管理项目。
- 在页面上的表格部分,选择一行。
在跟踪记录详情面板的甘特图中,选择一个 span。
系统会打开一个面板,其中显示跟踪的请求的相关信息。这些详细信息包括方法、状态代码、字节数以及调用方的用户代理。
如需查看与此跟踪记录关联的日志,请选择日志和事件标签页。
该标签页会显示各个日志。如需查看日志条目的详细信息,请展开日志条目。您还可以点击查看日志,并使用 Logs Explorer 查看日志。
如需详细了解如何使用 Cloud Trace 探索器,请参阅查找和探索跟踪记录。
查看日志
在 Logs Explorer 中,您可以检查日志,还可以查看关联的跟踪记录(如果存在)。
-
在 Google Cloud 控制台中,转到 Logs Explorer 页面。
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
找到插桩应用中的日志条目。如需查看详细信息,请展开日志条目。
点击包含跟踪消息的日志条目中的
Traces,然后选择 View trace details(查看跟踪记录详情)。
跟踪记录详情面板随即会打开并显示所选跟踪记录。
如需详细了解如何使用 Logs Explorer,请参阅使用 Logs Explorer 查看日志。