菜单
文档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是 upstream OpenTelemetry Collector memorylimiter处理器的包装器。如需必要的错误报告或功能请求,将重定向到 upstream 存储库。

可以通过给它们不同的标签来指定多个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检查内存使用频率。
limit字符串目标进程堆要分配的最大内存量。"0MiB"
spike_limit字符串在内存使用量测量值之间预期出现的最大峰值。限制的20%
limit_percentage整数目标进程堆要分配的最大总可用内存量。0
spike_limit_percentage整数在内存使用量测量值之间预期出现的最大峰值。0

必须定义参数中的limitlimit_percentage, spike_limit_percentage对,但不能同时使用两个。

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

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

limitspike_limit 的值必须大于 1 MiB。

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

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

输出块

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

支持以下参数

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

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

debug_metrics 块

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

支持以下参数

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

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其他组件可以使用此值发送遥测数据。

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

组件健康

otelcol.processor.memory_limiter 仅在给定无效配置时报告为不健康。

调试信息

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

兼容组件

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

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

注意

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