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

Spark3.1.2迁移后spark_streaming_* Prometheus指标丢失问题咨询

问题根因

Spark 3.x 并未移除传统Spark Streaming的spark_streaming_*系列指标,该问题的核心是Spark 3.x调整了Streaming模块的JMX MBean命名规则,而Spark Operator默认使用的jmx exporter抓取规则仅适配Spark 2.x的命名规则,导致Streaming相关指标没有被正确导出。

你提到/metrics/json接口可以查询到目标指标,也佐证了指标本身存在,仅导出链路出现了配置遗漏。


解决方案

你需要自定义jmx exporter的规则配置,补充适配Spark 3.x Streaming MBean的匹配规则,操作步骤如下:

  • 准备自定义jmx exporter规则文件prometheus-exporter-config.yaml,在原有规则基础上新增以下片段:
rules:
# 适配Spark 3.x Streaming 指标
- pattern: "metrics<name=spark.streaming.(.*)><>Value"
  name: "spark_streaming_$1"
  type: GAUGE
- pattern: "metrics<name=spark.streaming.(.*)><>Count"
  name: "spark_streaming_$1_total"
  type: COUNTER
  • 将上述配置文件创建为Kubernetes ConfigMap,挂载到Spark Driver和Executor的/prometheus/config路径下
  • 修改Spark应用的Helm chart monitoring配置,指定加载自定义规则文件:
monitoring:
    exposeDriverMetrics: true
    exposeExecutorMetrics: true
    prometheus:
      jmxExporterJar: "/prometheus/jmx_prometheus_javaagent-0.11.0.jar"
      port: 8888
      # 新增自定义配置文件路径
      configuration:
        includeConfigMap: "你的configmap名称"
        configMapKey: "prometheus-exporter-config.yaml"

验证方式

应用配置重新提交任务后,直接访问http://<spark-driver>:8888/metrics,即可看到正常导出的spark_streaming_*系列指标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:00:00