第 4 章 配置 Collector
4.1. 配置 Collector 复制链接链接已复制到粘贴板!
红帽构建的 OpenTelemetry Operator 使用自定义资源定义(CRD)文件来定义创建和部署分布式追踪平台 (Tempo) 资源时要使用的架构和配置设置。您可以安装默认配置或修改该文件。
4.1.1. 部署模式 复制链接链接已复制到粘贴板!
OpenTelemetryCollector
自定义资源允许您为 OpenTelemetry Collector 指定以下部署模式之一:
- Deployment
- 默认值。
- StatefulSet
- 如果您需要运行有状态工作负载,例如使用 Collector 的 File Storage Extension 或 Tail Sampling Processor 时,请使用 StatefulSet 部署模式。
- DaemonSet
- 如果您需要从每个节点中提取遥测数据,例如使用 Collector 的 Filelog Receiver 来读取容器日志,请使用 DaemonSet 部署模式。
- Sidecar
如果您需要访问容器内的日志文件,请将 Collector 注入 sidecar,并使用 Collector 的 Filelog Receiver 和共享卷,如
emptyDir
。如果您需要将应用程序配置为通过
localhost
发送遥测数据,请将 Collector 注入 sidecar,并设置 Collector 通过加密和经过身份验证的连接将遥测数据转发到外部服务。当作为 sidecar 注入时,Collector 会与应用程序在同一 pod 中运行。注意如果选择 sidecar 部署模式,那么除了在
OpenTelemetryCollector
自定义资源 CR 中设置spec.mode: sidecar
字段外,还必须将sidecar.opentelemetry.io/inject
注解设置为 pod 注解或命名空间注解。如果在 pod 和命名空间上设置了此注解,如果 pod 注解被设置为false
或OpenTelemetryCollector
CR 名称,则 pod 注解会优先使用。作为 pod 注解,
sidecar.opentelemetry.io/inject
注解支持几个值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 支持的值:
false
- 不要注入 Collector。如果缺少注解,则这是默认设置。
true
-
使用同一命名空间中的
OpenTelemetryCollector
CR 配置注入 Collector。 <collector_name>
-
使用同一命名空间中的 <
collector_name
>OpenTelemetryCollector
CR 配置注入 Collector。 <namespace>/<collector_name>
-
使用 <
namespace
> 命名空间中的<collector_name
>OpenTelemetryCollector
CR 配置注入 Collector。
4.1.2. OpenTelemetry Collector 配置选项 复制链接链接已复制到粘贴板!
OpenTelemetry Collector 由访问遥测数据的一组组件组成:
- Receivers
- Processors
- Exporters
- 连接器
- 扩展
您可以在自定义资源 YAML 文件中定义多个组件实例。配置后,必须通过 YAML 文件的 spec.config.service
部分中定义的管道启用这些组件。作为最佳实践,仅启用您需要的组件。
OpenTelemetry Collector 自定义资源文件示例
- 1
- 如果一个组件被配置但没有在
service
部分中定义,则组件不会被启用。
参数 | 描述 | 值 | default |
---|---|---|---|
receivers:
| 接收器用于控制数据如何进入 Collector。默认情况下,不会配置接收器。必须至少有一个启用的接收器才能使配置被视为有效。接收器通过添加到管道中来启用。 |
| None |
processors:
| 处理器在导出前会处理接收的数据。默认情况下,不启用处理器。 |
| None |
exporters:
| 导出器将数据发送到一个或多个后端或目的地。默认情况下,不会配置导出器。必须至少启用了一个 exporter 时,配置才被视为有效。将导出器添加到管道中即可启用。导出器可能会与其默认设置一起使用,但很多需要配置至少指定目标和安全设置。 |
| None |
connectors:
| 连接器通过将数据作为管道导出器来加入管道对,并将数据作为 Start-of-pipeline 接收器发送。连接器可用于总结、复制或路由消耗的数据。 |
| None |
extensions:
| 不涉及处理遥测数据的任务的可选组件。 |
| None |
service: pipelines:
|
组件通过将组件添加到 | ||
service: pipelines: traces: receivers:
|
您可以通过在 | None | |
service: pipelines: traces: processors:
|
您可以通过在 | None | |
service: pipelines: traces: exporters:
|
您可以通过在 | None | |
service: pipelines: metrics: receivers:
|
您可以通过在 | None | |
service: pipelines: metrics: processors:
|
您可以通过在 | None | |
service: pipelines: metrics: exporters:
|
您可以通过在 | None |
4.1.3. 自动创建所需的 RBAC 资源 复制链接链接已复制到粘贴板!
有些 Collector 组件需要配置 RBAC 资源。
流程
在
opentelemetry-operator-controller-manage
服务帐户中添加以下权限,以便红帽构建的 OpenTelemetry Operator 可以自动创建它们:Copy to Clipboard Copied! Toggle word wrap Toggle overflow