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

otelcol.processor.memory_limiter

otelcol.processor.memory_limiter 通过定期检查内存使用情况来防止遥测管道出现内存不足的情况。如果使用量超过定义的限制,则丢弃数据并触发垃圾回收来减少它。

memory_limiter 组件使用软限制和硬限制,其中硬限制始终等于或大于软限制。当内存使用量超过软限制时,处理器组件会丢弃数据并返回错误给管道中的前一个组件。当使用量超过硬限制时,处理器会强制进行垃圾回收,以尝试释放内存。当使用量低于软限制时,不会丢弃数据,也不会执行强制垃圾回收。

注意otelcol.processor.memory_limiter 是上游 OpenTelemetry Collector memorylimiter 处理器的一个包装器。如有必要,错误报告或功能请求将被重定向到上游存储库。

可以通过提供不同的标签来指定多个 otelcol.processor.memory_limiter 组件。

用法

alloy
otelcol.processor.memory_limiter "LABEL" {
  check_interval = "1s"

  limit = "50MiB" // alternatively, set `limit_percentage` and `spike_limit_percentage`

  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}

参数

otelcol.processor.memory_limiter 支持以下参数

名称类型描述默认值必需
check_intervalduration检查内存使用频率。yes
limitstring进程堆分配的最大内存量。"0MiB"no
spike_limitstring内存使用测量之间的最大峰值。进程堆分配的总可用内存中20%。no
limit_percentage整型进程堆目标分配的最大内存量。0no
spike_limit_percentage整型内存使用测量之间的最大峰值。0no

必须定义limitlimit_percentagespike_limit_percentage这对参数,但不能同时定义两者。

配置选项limitlimit_percentage定义了硬限制。然后,软限制被计算为硬限制减去spike_limitspike_limit_percentage值。建议的峰值限制值约为相应硬限制的20%。

建议的check_interval值为1秒。如果组件的流量本质上是波动的,建议降低间隔或增加峰值限制以避免超过硬限制。

limitspike_limit值必须大于1 MiB。

以下块在otelcol.processor.memory_limiter定义内受支持:

层次结构描述必需
输出输出配置接收到的遥测数据的发送位置。yes
调试度量调试度量配置组件生成的度量以监控其状态。no

输出块

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

以下参数受支持:

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

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

调试度量块

debug_metrics块配置组件生成的度量以监控其状态。

以下参数受支持:

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

disable_high_cardinality_metrics是Grafana Alloy在OpenTelemetry Collector中telemetry.disableHighCardinalityMetrics功能门路的等价物。它删除可能导致高基数度量的属性。例如,从关于HTTP和gRPC连接的度量中删除具有IP地址和端口号的属性。

注意

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

level是OpenTelemetry Collector中telemetry.metrics.level功能门路的Alloy等价物。可能的值是"none""basic""normal""detailed"

导出字段

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

名称类型描述
输入otelcol.Consumer其他组件可以使用该值发送遥测数据。

input接受任何遥测信号(度量、日志或跟踪)的otelcol.Consumer数据。

组件健康

只有当给定无效配置时,otelcol.processor.memory_limiter才会报告为不健康。

调试信息

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

兼容组件

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

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

注意

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