菜单
文档breadcrumb arrow Grafana Alloybreadcrumb arrow 参考breadcrumb arrow 组件breadcrumb arrow otelcolbreadcrumb arrow otelcol处理器间隔
开源

实验性

otelcol.processor.interval

实验性:这是一个实验性组件。实验性组件可能经常发生重大更改,并且可能会被移除而没有任何等效的替代品。要使用此组件,必须将stability.level标志设置为实验性

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

  • 单调递增,累积总和
  • 单调递增,累积直方图
  • 单调递增,累积指数直方图
  • 仪表盘
  • 摘要

以下指标类型将不会进行聚合,而是将原始数据不变地传递给管道中的下一个组件

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

注意

在时间间隔内聚合数据是一个固有的有损过程。对于单调递增的累积总和、直方图和指数直方图,您会失去精度,但您不会失去整体数据。在聚合非单调递增的总和、仪表盘和摘要时,您可能会丢失数据。例如,一个值可以增加到原始值,然后再减少到原始值,您可能会在聚合中丢失这种变化。在大多数情况下,这种类型的数据丢失是可以接受的。但是,您可以更改配置,使这些更改后的值通过并进行聚合。

警告

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

注意

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

用法

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

参数

otelcol.processor.interval支持以下参数

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

以下块支持在otelcol.processor.interval定义内部

层次结构描述必需
输出输出配置发送接收到的遥测数据的地点。
透传透传配置要透传而不是聚合的指标类型。
debug_metricsdebug_metrics配置此组件生成的用于监控其状态的指标。

输出块

output块配置了一组组件,以将结果遥测数据转发到。

以下参数被支持

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

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

透传块

passthrough块配置了哪些指标类型应透传而不是聚合。

以下属性被支持

名称类型描述默认值必需
仪表布尔型确定是否以原样透传仪表指标或聚合。false
摘要布尔型确定是否以原样透传摘要指标或聚合。false

debug_metrics块

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

以下参数被支持

名称类型描述默认值必需
disable_high_cardinality_metrics布尔型是否禁用某些高基数指标。true
级别字符串控制包装收集器发出的指标的详细程度。"详细"

disable_high_cardinality_metrics是Grafana Alloy中与OpenTelemetry Collector中的telemetry.disableHighCardinalityMetrics功能门相当的。它移除了可能导致高基数指标的属性。例如,从关于HTTP和gRPC连接的指标中移除了具有IP地址和端口号的属性。

注意

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

level是Alloy在OpenTelemetry Collector中与telemetry.metrics.level功能门相当的属性。可能的值有"none""basic""normal""detailed"

导出字段

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

名称类型描述
输入otelcol.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_metric增量fruitType: orange77.4
6test_metric累积labelA: foo8.2
8test_metric累积labelA: foo12.8
10test_metric累积labelA: bar6.4

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

时间戳指标名称聚合时间范围属性
4other_metric增量fruitType: orange77.4

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

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

兼容组件

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

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

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。请参阅相关文档以获取更多详细信息。