You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prometheus 3.4.1采集cAdvisor时label值长度超限问题求助

解决Prometheus 3.4.1采集cAdvisor时label_value_length_limit超出限制的问题

问题背景

  • 使用版本:Prometheus 3.4.1
  • 部署方式:Docker启动,启动命令如下:
docker run -d --name prometheus -p 9090:9090 --group-add 988 \
-v "/etc/$p_conf":"/etc/prometheus/$p_conf" \
-v "$pv":/prometheus -v /var/run/docker.sock:/var/run/docker.sock \
prom/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/prometheus \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.console.templates=/etc/prometheus/consoles \
--web.enable-lifecycle

docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  gcr.io/cadvisor/cadvisor:latest
  • Prometheus中cadvisor相关Job配置:
- job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']
  • 遇到的采集错误:

Error scraping target: label_value_length_limit exceeded (metric: container_fs_inodes_free, label name: device, value: "/var/lib/docker/overlay2/34...20", length: 203, limit: 200)

  • 尝试过的操作:
    • 认为metric_relabel_configs和relabel_configs无法解决该问题,需确认是否有误
    • 添加启动参数--storage.tsdb.label_value_length_limit=204,报错:

    unknown long flag '--storage.tsdb.label_value_length_limit'

    • 猜测该参数仅适用于2.x版本,询问3.4.1的对应参数及解决方法

解决方案

1. 参数变更说明

Prometheus 3.x已移除--storage.tsdb.label_value_length_limit启动参数,改为通过配置文件全局设置调整标签值长度限制。

2. 全局调整标签值长度限制

修改prometheus.yml的global段,添加标签值长度配置:

global:
  # 根据实际需求设置长度,示例设为250
  label_value_length_limit: 250

修改完成后,若已启用--web.enable-lifecycle参数,可通过curl -X POST http://<prometheus-ip>:9090/-/reload热加载配置;否则重启Prometheus容器即可。

3. 用relabel规则截断过长标签(替代方案)

你之前的判断有误,metric_relabel_configs可以直接截断过长的标签值,无需调整全局限制:
在cadvisor的job配置中添加规则:

- job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']
    metric_relabel_configs:
      - source_labels: [device]
        regex: '(.{1,200}).*'
        replacement: '$1'
        target_label: device

该规则会将device标签值截断为前200个字符,刚好符合默认限制。

4. 验证效果

修改后前往Prometheus Targets页面查看cadvisor采集状态,或查询container_fs_inodes_free指标,确认错误消失且标签值符合预期。


内容的提问来源于stack exchange,提问作者Putnik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 00:23:10