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

如何通过Prometheus采集sock-shop应用的指标数据?

问题分析与解决方案

配置错误点

  1. 错误覆盖默认Scrape配置
    kube-prometheus-stack中,serverFiles.scrape_configs会完全替换Prometheus默认的所有采集配置,你当前的写法会丢失默认的Kubernetes组件、Prometheus自身等采集任务(虽你提到自采集正常,可能是Helm默认配置有兜底,但这种写法风险极高)。正确做法是用additionalScrapeConfigs追加自定义采集任务,而非替换默认配置。

  2. Prometheus自采集Job配置混淆
    你将job_name: prometheus的target指向了sock-shop的ELB地址,违背了该Job采集Prometheus自身指标的用途,属于配置错位。

  3. front-end Job的冗余与错误配置

  • 同时混用kubernetes_sd_configs(K8S服务发现)和static_configs(静态目标),且static_configs填写的是Prometheus自身的ELB地址,完全无关。
  • metrics_path配置为metrics,但实际指标路径是/metrics,缺少开头斜杠会导致Prometheus请求错误路径。
  • 若通过ELB采集sock-shop指标,kubernetes_sd_configs和对应relabel规则完全多余,反而干扰采集流程。

正确配置方案

方式1:通过ELB采集sock-shop指标(推荐,你已确认ELB的/metrics可访问)

修改values.yaml,删除原有serverFiles块,改用additionalScrapeConfigs追加自定义采集任务:

global:
  scrape_interval: 5s
  evaluation_interval: 5s
# 保留其他默认配置,仅添加以下内容
additionalScrapeConfigs:
  - job_name: "sock-shop-elb"
    scrape_interval: 5s
    metrics_path: "/metrics"
    static_configs:
      - targets: ['a2417470ff04a4e7f9cdc10555366465-686477968.us-east-1.elb.amazonaws.com']

方式2:通过K8S内部服务采集(无需依赖外部ELB)

若sock-shop在集群内有暴露指标的Service(比如端口9102),可使用K8S服务发现自动采集:

global:
  scrape_interval: 5s
  evaluation_interval: 5s
additionalScrapeConfigs:
  - job_name: "sock-shop-internal"
    scrape_interval: 5s
    metrics_path: "/metrics"
    kubernetes_sd_configs:
      - role: pod
        namespaces:
          names: [sock-shop]
    relabel_configs:
      - source_labels: [__meta_kubernetes_pod_container_port_number]
        action: keep
        regex: '9102'
      # 可选:添加标签方便区分指标来源
      - action: labelmap
        regex: __meta_kubernetes_pod_label_(.+)

验证步骤

  1. 执行Helm升级使配置生效:
helm upgrade prometheus prometheus-community/kube-prometheus-stack -f values.yaml -n default
  1. 访问Prometheus UI(通过自身ELB或集群内端口),进入Status > Configuration,确认新增的sock-shop-elb或sock-shop-internal Job已存在。
  2. 进入Status > Targets,查看该Job状态是否为UP:
    • 若显示DOWN,查看右侧错误信息(如连接超时、404等)针对性排查。
    • 可进入Prometheus Pod内部执行curl <sock-shop-ELB地址>/metrics,验证连通性与指标返回情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:44:56