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

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

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

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

limitspike_limit 值必须大于 1 MiB。

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

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

output 块

output 块配置一组组件,以将生成的遥测数据转发到这些组件。

支持以下参数

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

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

debug_metrics 块

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

支持以下参数

名称类型描述默认值必需
disable_high_cardinality_metricsboolean是否禁用某些高基数指标。true
levelstring控制包装的收集器发出的指标的详细程度。"detailed"

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"

导出的字段

以下字段已导出,可供其他组件引用

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

input 接受任何遥测信号(指标、日志或追踪)的 otelcol.Consumer 数据。

组件健康状况

仅当 otelcol.processor.memory_limiter 配置无效时,才报告为不健康。

调试信息

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

兼容组件

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

otelcol.processor.memory_limiter 具有可以被以下组件使用的导出项

注意

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