4.5. 连接器
连接器连接两个管道。它在一个管道的末尾将数据视为导出器,并在另一个管道开始时将数据作为接收器发送。它可以消耗和发送相同或不同数据类型的数据。它可以生成并发送数据以汇总已消耗的数据,或者可以完全复制或路由数据。
目前,红帽构建的 OpenTelemetry 提供了以下正式发行(GA)和技术预览连接器:
4.5.1. 计数连接器 复制链接链接已复制到粘贴板!
Count Connector 计算 trace span、trace span 事件、指标、指标数据点和导出器管道中的日志记录。
Count Connector 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
以下是默认指标名称:
-
trace.span.count -
trace.span.event.count -
metric.count -
metric.datapoint.count -
log.record.count
您还可以公开自定义指标名称。
带有启用 Count Connector 的 OpenTelemetry Collector 自定义资源 (CR)
# ...
config:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
exporters:
prometheus:
endpoint: 0.0.0.0:8889
connectors:
count: {}
service:
pipelines:
traces/in:
receivers: [otlp]
exporters: [count]
metrics/out:
receivers: [count]
exporters: [prometheus]
# ...
Count Connector 可以根据定义的条件计算遥测数据,并在配置时将这些数据公开为指标,如 spans, spanevents, metrics, datapoints, 或 logs。请参阅下个示例。
Count Connector 的 OpenTelemetry Collector CR 示例,按条件计算 span
# ...
config:
connectors:
count:
spans:
<custom_metric_name>:
description: "<custom_metric_description>"
conditions:
- 'attributes["env"] == "dev"'
- 'name == "devevent"'
# ...
使用 spans, spanevents, metrics, datapoints, 或 logs 等字段配置时,Count Connector 可以根据定义的属性计算遥测数据。请参阅下个示例。属性键被注入到遥测数据。您必须为缺少属性的 default_value 字段定义一个值。
Count Connector 的 OpenTelemetry Collector CR 示例,按属性计算日志
# ...
config:
connectors:
count:
logs:
<custom_metric_name>:
description: "<custom_metric_description>"
attributes:
- key: env
default_value: unknown
# ...
4.5.2. Routing Connector 复制链接链接已复制到粘贴板!
Routing Connector 根据资源属性及其路由条件将日志、指标和追踪路由到指定的管道,它们被写为 OpenTelemetry Transformation Language (OTTL) 语句。
Routing Connector 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
带有启用路由连接器的 OpenTelemetry Collector 自定义资源
# ...
config:
connectors:
routing:
table:
- statement: route() where attributes["X-Tenant"] == "dev"
pipelines: [traces/dev]
- statement: route() where attributes["X-Tenant"] == "prod"
pipelines: [traces/prod]
default_pipelines: [traces/dev]
error_mode: ignore
match_once: false
service:
pipelines:
traces/in:
receivers: [otlp]
exporters: [routing]
traces/dev:
receivers: [routing]
exporters: [otlp/dev]
traces/prod:
receivers: [routing]
exporters: [otlp/prod]
# ...
4.5.3. Forward Connector 复制链接链接已复制到粘贴板!
Forward Connector 会合并同一类型的两个管道。
Forward Connector 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
启用了 Forward Connector 的 OpenTelemetry Collector 自定义资源
# ...
config:
receivers:
otlp:
protocols:
grpc:
jaeger:
protocols:
grpc:
processors:
batch:
exporters:
otlp:
endpoint: tempo-simplest-distributor:4317
tls:
insecure: true
connectors:
forward: {}
service:
pipelines:
traces/regiona:
receivers: [otlp]
processors: []
exporters: [forward]
traces/regionb:
receivers: [jaeger]
processors: []
exporters: [forward]
traces:
receivers: [forward]
processors: [batch]
exporters: [otlp]
# ...
4.5.4. Spanmetrics Connector 复制链接链接已复制到粘贴板!
Spanmetrics Connector 聚合了来自 span 数据的 Request, Error, 和 Duration (R.E.D) OpenTelemetry 指标。
启用了 Spanmetrics Connector 的 OpenTelemetry Collector 自定义资源
# ...
config:
connectors:
spanmetrics:
metrics_flush_interval: 15s
service:
pipelines:
traces:
exporters: [spanmetrics]
metrics:
receivers: [spanmetrics]
# ...
- 1
- 定义生成的指标的清除间隔。默认值为
15s。