# ...
config: |
processors:
batch:
timeout: 5s
send_batch_max_size: 10000
service:
pipelines:
traces:
processors: [batch]
metrics:
processors: [batch]
# ...
批量处理器将跟踪和指标批量处理,以减少传输遥测信息所需的传出连接数。
# ...
config: |
processors:
batch:
timeout: 5s
send_batch_max_size: 10000
service:
pipelines:
traces:
processors: [batch]
metrics:
processors: [batch]
# ...
参数 | 描述 | 默认值 |
---|---|---|
|
在特定时间段后发送批次,而不管批次大小。 |
|
|
发送指定数量的跨度或指标的遥测数据批次。 |
|
|
批次的允许最大大小。必须等于或大于 |
|
|
激活后,将为 |
|
|
当填充 |
|
内存限制器处理器定期检查 Collector 的内存使用情况,并在达到软内存限制时暂停数据处理。此处理器支持跟踪、指标和日志。前面的组件(通常是接收器)应重试发送相同的数据,并可能对传入数据施加背压。当内存使用量超过硬限制时,内存限制器处理器将强制运行垃圾回收。
# ...
config: |
processors:
memory_limiter:
check_interval: 1s
limit_mib: 4000
spike_limit_mib: 800
service:
pipelines:
traces:
processors: [batch]
metrics:
processors: [batch]
# ...
参数 | 描述 | 默认值 |
---|---|---|
|
内存使用情况测量之间的时间间隔。最佳值为 |
|
|
硬限制,即在堆上分配的最大内存量(以MiB为单位)。通常,OpenTelemetry Collector 的总内存使用量比此值大约大 50 MiB。 |
|
|
峰值限制,即内存使用量的最大预期峰值(以MiB为单位)。最佳值约为 |
|
|
与 |
|
|
与 |
|
资源检测处理器根据 OpenTelemetry 的资源语义标准识别主机资源详细信息。使用检测到的信息,此处理器可以添加或替换遥测数据中的资源值。此处理器支持跟踪和指标。您可以将此处理器与多个检测器一起使用,例如 Docket 元数据检测器或OTEL_RESOURCE_ATTRIBUTES
环境变量检测器。
资源检测处理器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的抢先体验,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
kind: ClusterRole
metadata:
name: otel-collector
rules:
- apiGroups: ["config.openshift.io"]
resources: ["infrastructures", "infrastructures/status"]
verbs: ["get", "watch", "list"]
# ...
# ...
config: |
processors:
resourcedetection:
detectors: [openshift]
override: true
service:
pipelines:
traces:
processors: [resourcedetection]
metrics:
processors: [resourcedetection]
# ...
# ...
config: |
processors:
resourcedetection/env:
detectors: [env] (1)
timeout: 2s
override: false
# ...
1 | 指定要使用的检测器。在此示例中,指定了环境检测器。 |
属性处理器可以修改跨度、日志或指标的属性。您可以配置此处理器以过滤和匹配输入数据,并为特定操作包含或排除此类数据。
属性处理器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的抢先体验,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
此处理器对操作列表进行操作,按配置中指定的顺序执行它们。支持以下操作
当指定的键尚不存在时,将新属性插入输入数据。
如果键已存在,则更新输入数据中的属性。
组合插入和更新操作:如果键尚不存在,则插入新属性。如果键已存在,则更新属性。
从输入数据中删除属性。
将现有属性值哈希为 SHA1。
使用正则表达式规则从输入键提取值到规则中定义的目标键。如果目标键已存在,则类似于 Span 处理器的to_attributes
设置那样覆盖它,其中现有属性作为源。
将现有属性转换为指定的类型。
# ...
config: |
processors:
attributes/example:
actions:
- key: db.table
action: delete
- key: redacted_span
value: true
action: upsert
- key: copy_key
from_attribute: key_original
action: update
- key: account_id
value: 2245
action: insert
- key: account_password
action: delete
- key: account_email
action: hash
- key: http.status_code
action: convert
converted_type: int
# ...
资源处理器将更改应用于资源属性。此处理器支持跟踪、指标和日志。
资源处理器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的抢先体验,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
# ...
config: |
processors:
attributes:
- key: cloud.availability_zone
value: "zone-1"
action: upsert
- key: k8s.cluster.name
from_attribute: k8s-cluster
action: insert
- key: redundant-attribute
action: delete
# ...
属性表示应用于资源属性的操作,例如删除属性、插入属性或更新属性。
跨度处理器根据其属性修改跨度名称,或从跨度名称中提取跨度属性。此处理器还可以更改跨度状态并包含或排除跨度。此处理器支持跟踪。
跨度重命名需要使用from_attributes
配置指定新名称的属性。
跨度处理器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的抢先体验,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
# ...
config: |
processors:
span:
name:
from_attributes: [<key1>, <key2>, ...] (1)
separator: <value> (2)
# ...
1 | 定义形成新跨度名称的键。 |
2 | 可选的分隔符。 |
您可以使用此处理器从跨度名称中提取属性。
# ...
config: |
processors:
span/to_attributes:
name:
to_attributes:
rules:
- ^\/api\/v1\/document\/(?P<documentId>.*)\/update$ (1)
# ...
1 | 此规则定义如何执行提取。您可以定义更多规则:例如,在本例中,如果正则表达式与名称匹配,则会创建一个documentID 属性。在本例中,如果输入跨度名称为/api/v1/document/12345678/update ,则会产生/api/v1/document/{documentId}/update 输出跨度名称,并且会向跨度添加一个新的"documentId"="12345678" 属性。 |
您可以修改跨度状态。
# ...
config: |
processors:
span/set_status:
status:
code: Error
description: "<error_description>"
# ...
Kubernetes 属性处理器通过使用 Kubernetes 元数据,可以自动配置跨度、指标和日志资源属性。此处理器支持跟踪、指标和日志。此处理器自动识别 Kubernetes 资源,从中提取元数据,并将此提取的元数据作为资源属性添加到相关的跨度、指标和日志中。它利用 Kubernetes API 来发现集群中运行的所有 Pod,维护其 IP 地址、Pod UID 和其他相关元数据的记录。
kind: ClusterRole
metadata:
name: otel-collector
rules:
- apiGroups: ['']
resources: ['pods', 'namespaces']
verbs: ['get', 'watch', 'list']
# ...
# ...
config: |
processors:
k8sattributes:
filter:
node_from_env_var: KUBE_NODE_NAME
# ...
过滤器处理器利用 OpenTelemetry 变换语言来建立丢弃遥测数据的标准。如果满足任何这些条件,则会丢弃遥测数据。您可以使用逻辑 OR 运算符组合这些条件。此处理器支持跟踪、指标和日志。
过滤器处理器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您抢先体验即将推出的产品功能,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
# ...
config: |
processors:
filter/ottl:
error_mode: ignore (1)
traces:
span:
- 'attributes["container.name"] == "app_container_1"' (2)
- 'resource.attributes["host.name"] == "localhost"' (3)
# ...
1 | 定义错误模式。设置为ignore 时,忽略条件返回的错误。设置为propagate 时,将错误返回到管道。错误会导致有效负载从 Collector 中删除。 |
2 | 过滤具有container.name == app_container_1 属性的跨度。 |
3 | 过滤具有host.name == localhost 资源属性的跨度。 |
路由处理器将日志、指标或跟踪路由到特定导出器。此处理器可以从传入的 gRPC 或普通 HTTP 请求中读取标头,或者读取资源属性,然后根据读取的值将跟踪信息定向到相关的导出器。
路由处理器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您抢先体验即将推出的产品功能,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
# ...
config: |
processors:
routing:
from_attribute: X-Tenant (1)
default_exporters: (2)
- jaeger
table: (3)
- value: acme
exporters: [jaeger/acme]
exporters:
jaeger:
endpoint: localhost:14250
jaeger/acme:
endpoint: localhost:24250
# ...
1 | 执行路由时查找值的 HTTP 标头名称。 |
2 | 当属性值不存在于下一节中的表中时的默认导出器。 |
3 | 定义哪些值应路由到哪些导出器的表。 |
可以选择创建一个attribute_source
配置,该配置定义了在哪里查找在from_attribute
字段中指定的属性。支持的值包括用于搜索包含 HTTP 标头的上下文的context
,以及用于搜索资源属性的resource
。
累积到增量处理器将单调、累积和和直方图指标转换为单调增量指标。
您可以使用include:
或exclude:
字段并指定strict
或regexp
指标名称匹配来过滤指标。
此处理器不转换非单调和和指数直方图。
累积到增量处理器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您抢先体验即将推出的产品功能,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
# ...
config: |
processors:
cumulativetodelta:
include: (1)
match_type: strict (2)
metrics: (3)
- <metric_1_name>
- <metric_2_name>
exclude: (4)
match_type: regexp
metrics:
- "<regular_expression_for_metric_names>"
# ...
1 | 可选:配置要包含的指标。省略时,除exclude 字段中列出的指标外,所有指标都将转换为增量指标。 |
2 | 将metrics 字段中提供的值定义为strict 精确匹配或regexp 正则表达式。 |
3 | 列出要转换为增量指标的指标的指标名称(精确匹配或正则表达式匹配)。如果指标同时匹配include 和exclude 过滤器,则exclude 过滤器优先。 |
4 | 可选:配置要排除的指标。省略时,不会从转换为增量指标中排除任何指标。 |
按属性分组处理器通过将共享相同属性的所有跨度、日志记录和指标数据点重新分配到与这些属性匹配的资源来对它们进行分组。
按属性分组处理器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您抢先体验即将推出的产品功能,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
至少,配置此处理器需要指定一个属性键数组,用于将跨度、日志记录或指标数据点组合在一起,如下例所示
# ...
processors:
groupbyattrs:
keys: (1)
- <key1> (2)
- <key2>
# ...
1 | 指定要分组的属性键。 |
2 | 如果已处理的跨度、日志记录或指标数据点包含至少一个指定的属性键,则将其重新分配到共享相同属性值的资源;如果不存在此类资源,则会创建一个新的资源。如果已处理的跨度、日志记录或指标数据点中不存在任何指定的属性键,则它将与其当前资源相关联。相同资源的多个实例将被合并。 |
转换处理器允许根据指定的规则和OpenTelemetry 变换语言 (OTTL)修改遥测数据。对于每种信号类型,处理器都会处理与特定 OTTL 上下文类型相关的一系列条件和语句,然后根据配置按顺序对传入的遥测数据执行这些条件和语句。每个条件和语句都可以使用各种函数访问和修改遥测数据,允许条件决定是否执行函数。
所有语句都使用 OTTL 编写。您可以为不同的信号、跟踪、指标和日志配置多个上下文语句。context
类型的值为处理器解释关联语句时必须使用的OTTL上下文。
转换处理器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您抢先体验即将推出的产品功能,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
# ...
config: |
processors:
transform:
error_mode: ignore (1)
<trace|metric|log>_statements: (2)
- context: <string> (3)
conditions: (4)
- <string>
- <string>
statements: (5)
- <string>
- <string>
- <string>
- context: <string>
statements:
- <string>
- <string>
- <string>
# ...
1 | 可选:请参见下表“可选error_mode 字段的值”。 |
2 | 指示要转换的信号。 |
3 | 请参见下表“context 字段的值”。 |
4 | 可选:执行转换的条件。 |
# ...
config: |
transform:
error_mode: ignore
trace_statements: (1)
- context: resource
statements:
- keep_keys(attributes, ["service.name", "service.namespace", "cloud.region", "process.command_line"]) (2)
- replace_pattern(attributes["process.command_line"], "password\\=[^\\s]*(\\s?)", "password=***") (3)
- limit(attributes, 100, [])
- truncate_all(attributes, 4096)
- context: span (4)
statements:
- set(status.code, 1) where attributes["http.path"] == "/health"
- set(name, attributes["http.route"])
- replace_match(attributes["http.target"], "/user/*/list/*", "/user/{userId}/list/{listId}")
- limit(attributes, 100, [])
- truncate_all(attributes, 4096)
# ...
1 | 转换跟踪信号。 |
2 | 保留资源上的键。 |
3 | 替换属性,并将密码字段中的字符串字符替换为星号。 |
4 | 在跨度级别执行转换。 |
信号语句 | 有效上下文 |
---|---|
|
|
|
|
|
|
值 | 描述 |
---|---|
|
忽略并记录语句返回的错误,然后继续执行下一条语句。 |
|
忽略并不会记录语句返回的错误,然后继续执行下一条语句。 |
|
将错误返回到管道并丢弃有效负载。隐式默认值。 |