实验性
otelcol.processor.interval
实验性:这是一个实验性组件。实验性组件可能会频繁出现重大变更,并且可能会被移除而没有等效的替代品。必须将
stability.level
标志设置为experimental
才能使用此组件。
otelcol.processor.interval
聚合指标并定期将最新值转发到流水线中的下一个组件。该处理器支持聚合以下指标类型:
- 单调递增的累积总和
- 单调递增的累积直方图
- 单调递增的累积指数直方图
- 测量(Gauges)
- 摘要(Summaries)
以下指标类型将不会被聚合,而是直接原样传递给流水线中的下一个组件:
- 所有 Delta 指标
- 非单调递增的总和
注意
在一定时间间隔内聚合数据本质上是一个有损过程。对于单调递增的累积总和、直方图和指数直方图,您会损失精度,但不会损失整体数据。对于非单调递增的总和、测量和摘要,您可能会丢失数据。例如,一个值可能增加然后减少到原始值,您可能会在聚合过程中丢失这个变化。在大多数情况下,这种数据丢失是可以接受的。然而,您可以更改配置,以便这些变化的值直接通过,而不被聚合。
警告
导出后,任何内部状态都将被清除。如果没有新的指标进入,下一个间隔将不会导出任何内容。
注意
otelcol.processor.interval
是上游 OpenTelemetry Collectorinterval
处理器的包装。如有必要,错误报告或功能请求将被重定向到上游仓库。
用法
otelcol.processor.interval "LABEL" {
output {
metrics = [...]
}
}
参数
otelcol.processor.interval
支持以下参数:
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
interval | duration | 处理器导出聚合指标的时间间隔。 | "60s" | 否 |
块
otelcol.processor.interval
的定义中支持以下块:
层级 | 块 | 描述 | 必需 |
---|---|---|---|
output | output | 配置接收到的遥测数据的发送目标。 | 是 |
passthrough | passthrough | 配置要直接传递而非聚合的指标类型。 | 否 |
debug_metrics | debug_metrics | 配置此组件生成的用于监控其状态的指标。 | 否 |
output 块
output
块配置一组组件以转发生成的遥测数据。
支持以下参数:
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
logs | list(otelcol.Consumer) | 发送日志的消费者列表。 | [] | 否 |
metrics | list(otelcol.Consumer) | 发送指标的消费者列表。 | [] | 否 |
traces | list(otelcol.Consumer) | 发送追踪的消费者列表。 | [] | 否 |
您必须指定 output
块,但其所有参数都是可选的。默认情况下,遥测数据会被丢弃。相应地配置 metrics
、logs
和 traces
参数以将遥测数据发送到其他组件。
passthrough 块
passthrough
块配置哪些指标类型应该直接通过而不是被聚合。
支持以下属性:
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
gauge | bool | 确定测量指标是原样传递还是被聚合。 | false | 否 |
summary | bool | 确定摘要指标是原样传递还是被聚合。 | false | 否 |
debug_metrics 块
debug_metrics
块配置此组件生成的用于监控其状态的指标。
支持以下参数:
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
disable_high_cardinality_metrics | boolean | 是否禁用某些高基数指标。 | true | 否 |
disable_high_cardinality_metrics
是 Grafana Alloy 中等效于 OpenTelemetry Collector 中 telemetry.disableHighCardinalityMetrics
功能门控的参数。它移除可能导致高基数指标的属性。例如,指标中关于 HTTP 和 gRPC 连接的 IP 地址和端口号等属性会被移除。
注意
如果配置了
disable_high_cardinality_metrics
,则仅应用于otelcol.exporter.*
和otelcol.receiver.*
组件。
导出的字段
以下字段被导出,可以被其他组件引用:
名称 | 类型 | 描述 |
---|---|---|
input | otelcol.Consumer | 其他组件可用于向此组件发送遥测数据的值。 |
input
接受指标的 otelcol.Consumer
数据。
组件健康状态
otelcol.processor.interval
仅在配置无效时报告不健康。
调试信息
otelcol.processor.interval
不公开任何特定于组件的调试信息。
示例
此示例接收 OTLP 指标,聚合 30 秒,然后发送到下一个导出器。
otelcol.receiver.otlp "default" {
grpc { ... }
http { ... }
output {
metrics = [otelcol.processor.interval.default.input]
}
}
otelcol.processor.interval "default" {
interval = "30s"
output {
metrics = [otelcol.exporter.otlphttp.grafana_cloud.input]
}
}
otelcol.exporter.otlphttp "grafana_cloud" {
client {
endpoint = "https://otlp-gateway-prod-gb-south-0.grafana.net/otlp"
auth = otelcol.auth.basic.grafana_cloud.handler
}
}
otelcol.auth.basic "grafana_cloud" {
username = env("GRAFANA_CLOUD_USERNAME")
password = env("GRAFANA_CLOUD_API_KEY")
}
时间戳 | 指标名称 | 聚合时效性 | 属性 | 值 |
---|---|---|---|---|
0 | test_metric | 累积 | labelA: foo | 4.0 |
2 | test_metric | 累积 | labelA: bar | 3.1 |
4 | other_metric | Delta | fruitType: orange | 77.4 |
6 | test_metric | 累积 | labelA: foo | 8.2 |
8 | test_metric | 累积 | labelA: foo | 12.8 |
10 | test_metric | 累积 | labelA: bar | 6.4 |
由于是 Delta 指标,处理器会立即将以下指标传递给链中的下一个处理器。
时间戳 | 指标名称 | 聚合时效性 | 属性 | 值 |
---|---|---|---|---|
4 | other_metric | Delta | fruitType: orange | 77.4 |
在下一个 interval
(默认 15 秒)时,处理器将以下指标传递给链中的下一个处理器。
时间戳 | 指标名称 | 聚合时效性 | 属性 | 值 |
---|---|---|---|---|
8 | test_metric | 累积 | labelA: foo | 12.8 |
10 | test_metric | 累积 | labelA: bar | 6.4 |
兼容的组件
otelcol.processor.interval
可以接受来自以下组件的参数:
otelcol.processor.interval
导出可以被以下组件消费:
注意
连接某些组件可能没有意义,或者组件可能需要进一步配置才能正常工作。有关更多详细信息,请参阅链接的文档。