菜单
文档breadcrumb arrow Grafana Alloybreadcrumb arrow 参考breadcrumb arrow 组件breadcrumb arrow otelcolbreadcrumb arrow otelcol.processor.interval
开源

实验性

otelcol.processor.interval

实验性:这是一个实验性组件。实验性组件可能会频繁出现重大变更,并且可能会被移除而没有等效的替代品。必须将 stability.level 标志设置为 experimental 才能使用此组件。

otelcol.processor.interval 聚合指标并定期将最新值转发到流水线中的下一个组件。该处理器支持聚合以下指标类型:

  • 单调递增的累积总和
  • 单调递增的累积直方图
  • 单调递增的累积指数直方图
  • 测量(Gauges)
  • 摘要(Summaries)

以下指标类型将不会被聚合,而是直接原样传递给流水线中的下一个组件:

  • 所有 Delta 指标
  • 非单调递增的总和

注意

在一定时间间隔内聚合数据本质上是一个有损过程。对于单调递增的累积总和、直方图和指数直方图,您会损失精度,但不会损失整体数据。对于非单调递增的总和、测量和摘要,您可能会丢失数据。例如,一个值可能增加然后减少到原始值,您可能会在聚合过程中丢失这个变化。在大多数情况下,这种数据丢失是可以接受的。然而,您可以更改配置,以便这些变化的值直接通过,而被聚合。

警告

导出后,任何内部状态都将被清除。如果没有新的指标进入,下一个间隔将不会导出任何内容。

注意

otelcol.processor.interval 是上游 OpenTelemetry Collector interval 处理器的包装。如有必要,错误报告或功能请求将被重定向到上游仓库。

用法

alloy
otelcol.processor.interval "LABEL" {
  output {
    metrics = [...]
  }
}

参数

otelcol.processor.interval 支持以下参数:

名称类型描述默认值必需
intervalduration处理器导出聚合指标的时间间隔。"60s"

otelcol.processor.interval 的定义中支持以下块:

层级描述必需
outputoutput配置接收到的遥测数据的发送目标。
passthroughpassthrough配置要直接传递而非聚合的指标类型。
debug_metricsdebug_metrics配置此组件生成的用于监控其状态的指标。

output 块

output 块配置一组组件以转发生成的遥测数据。

支持以下参数:

名称类型描述默认值必需
logslist(otelcol.Consumer)发送日志的消费者列表。[]
metricslist(otelcol.Consumer)发送指标的消费者列表。[]
traceslist(otelcol.Consumer)发送追踪的消费者列表。[]

您必须指定 output 块,但其所有参数都是可选的。默认情况下,遥测数据会被丢弃。相应地配置 metricslogstraces 参数以将遥测数据发送到其他组件。

passthrough 块

passthrough 块配置哪些指标类型应该直接通过而不是被聚合。

支持以下属性:

名称类型描述默认值必需
gaugebool确定测量指标是原样传递还是被聚合。false
summarybool确定摘要指标是原样传递还是被聚合。false

debug_metrics 块

debug_metrics 块配置此组件生成的用于监控其状态的指标。

支持以下参数:

名称类型描述默认值必需
disable_high_cardinality_metricsboolean是否禁用某些高基数指标。true

disable_high_cardinality_metrics 是 Grafana Alloy 中等效于 OpenTelemetry Collector 中 telemetry.disableHighCardinalityMetrics 功能门控的参数。它移除可能导致高基数指标的属性。例如,指标中关于 HTTP 和 gRPC 连接的 IP 地址和端口号等属性会被移除。

注意

如果配置了 disable_high_cardinality_metrics,则仅应用于 otelcol.exporter.*otelcol.receiver.* 组件。

导出的字段

以下字段被导出,可以被其他组件引用:

名称类型描述
inputotelcol.Consumer其他组件可用于向此组件发送遥测数据的值。

input 接受指标的 otelcol.Consumer 数据。

组件健康状态

otelcol.processor.interval 仅在配置无效时报告不健康。

调试信息

otelcol.processor.interval 不公开任何特定于组件的调试信息。

示例

此示例接收 OTLP 指标,聚合 30 秒,然后发送到下一个导出器。

alloy
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")
}
时间戳指标名称聚合时效性属性
0test_metric累积labelA: foo4.0
2test_metric累积labelA: bar3.1
4other_metricDeltafruitType: orange77.4
6test_metric累积labelA: foo8.2
8test_metric累积labelA: foo12.8
10test_metric累积labelA: bar6.4

由于是 Delta 指标,处理器会立即将以下指标传递给链中的下一个处理器。

时间戳指标名称聚合时效性属性
4other_metricDeltafruitType: orange77.4

在下一个 interval (默认 15 秒)时,处理器将以下指标传递给链中的下一个处理器。

时间戳指标名称聚合时效性属性
8test_metric累积labelA: foo12.8
10test_metric累积labelA: bar6.4

兼容的组件

otelcol.processor.interval 可以接受来自以下组件的参数:

otelcol.processor.interval 导出可以被以下组件消费:

注意

连接某些组件可能没有意义,或者组件可能需要进一步配置才能正常工作。有关更多详细信息,请参阅链接的文档。