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