菜单
文档面包屑箭头 Grafana Alloy面包屑箭头 参考面包屑箭头 组件面包屑箭头 otelcol面包屑箭头 otelcol.processor.memory_limiter
开源

otelcol.processor.memory_limiter

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

`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检查内存使用情况的频率。
limitstring进程堆目标分配的最大内存量。"0MiB"
spike_limitstring内存使用量测量之间预期的最大峰值。`limit` 的 20%
limit_percentageint进程堆目标分配的可用内存总量的最大百分比。0
spike_limit_percentageint内存使用量测量之间预期的最大峰值。0

参数必须定义 `limit` 或 `limit_percentage, spike_limit_percentage` 对,但不能同时定义两者。

配置选项 `limit` 和 `limit_percentage` 定义了硬限制。软限制则分别通过硬限制减去 `spike_limit` 或 `spike_limit_percentage` 的值计算得出。建议的峰值限制值约为相应硬限制的 20%。

推荐的 `check_interval` 值为 1 秒。如果组件的流量具有突发性,建议减小间隔或增加峰值限制,以避免超出硬限制。

`limit` 和 `spike_limit` 的值必须大于 1 MiB。

`otelcol.processor.memory_limiter` 定义中支持以下块

层级描述必需
outputoutput配置接收到的遥测数据发送到何处。
debug_metricsdebug_metrics配置此组件生成用于监控其状态的指标。

output 块

`output` 块配置一组组件用于转发结果遥测数据。

支持以下参数

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

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

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.memory_limiter` 才会报告为不健康。

调试信息

`otelcol.processor.memory_limiter` 不暴露任何组件特定的调试信息。

兼容组件

`otelcol.processor.memory_limiter` 可以接受来自以下组件的参数

`otelcol.processor.memory_limiter` 导出的数据可被以下组件消费

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。请参考链接的文档了解更多详细信息。