otelcol.processor.memory_limiter
otelcol.processor.memory_limiter
通过定期检查内存使用情况来防止遥测管道出现内存不足情况。如果使用量超过定义的限制,则删除数据并触发垃圾收集以减少其。
memory_limiter
组件同时使用软限和硬限,其中硬限制总是等于或大于软限制。当内存使用量超过软限制时,处理器组件将删除数据并向管道中的先前组件返回错误。当使用量超过硬限制时,处理器将强制进行垃圾收集以尝试释放内存。当使用量低于软限制时,不会删除数据,也不会执行强制垃圾收集。
注意:
otelcol.processor.memory_limiter
是 upstream OpenTelemetry Collectormemorylimiter
处理器的包装器。如需必要的错误报告或功能请求,将重定向到 upstream 存储库。
可以通过给它们不同的标签来指定多个otelcol.processor.memory_limiter
组件。
使用方法
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_interval | duration | 检查内存使用频率。 | 是 | |
limit | 字符串 | 目标进程堆要分配的最大内存量。 | "0MiB" | 否 |
spike_limit | 字符串 | 在内存使用量测量值之间预期出现的最大峰值。 | 限制的20% | 否 |
limit_percentage | 整数 | 目标进程堆要分配的最大总可用内存量。 | 0 | 否 |
spike_limit_percentage | 整数 | 在内存使用量测量值之间预期出现的最大峰值。 | 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
的定义中受支持
层次结构 | 块 | 描述 | 必需 |
---|---|---|---|
输出 | 输出 | 配置接收到的遥测数据发送到何处。 | 是 |
debug_metrics | debug_metrics | 配置该组件生成的用于监视其状态的指标。 | 否 |
输出块
output
块配置了一组组件,将这些结果遥测数据转发到。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
logs | list(otelcol.Consumer) | 要发送日志的消费者列表。 | [] | 否 |
metrics | list(otelcol.Consumer) | 要发送指标的消费者列表。 | [] | 否 |
traces | list(otelcol.Consumer) | 要发送跟踪的消费者列表。 | [] | 否 |
您必须指定 output
块,但所有参数都是可选的。默认情况下,遥测数据将被丢弃。根据需要配置 metrics
、logs
和 traces
参数以将遥测数据发送到其他组件。
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
的导出可以被以下组件消费
注意
连接某些组件可能不合理,或者组件可能需要进一步的配置才能正确连接。有关详细信息,请参阅链接文档。