4

我正在 Kubernetes 上运行 Spark 3.0 应用程序(Spark Structured Streaming),并且正在尝试使用新的本机 Prometheus 度量接收器。我能够使其工作并获得此处描述的所有指标。

但是,我真正需要的指标是在启用以下配置时提供的指标:spark.sql.streaming.metricsEnabled,正如Spark Summit 演示文稿中所建议的那样。现在,即使将该配置设置为“true”,我也看不到/metrics/executors/prometheus广告中的任何流媒体指标。需要注意的一件事是,我可以在 下看到它们metrics/json,因此,我们知道配置已正确应用。

为什么不将流式指标发送到 Prometheus 接收器?我需要添加一些额外的配置吗?还不支持吗?

4

1 回答 1

2

经过相当多的调查,我能够使它工作。简而言之,Spark 作业 k8s 定义文件需要多出一行,告诉 spark 在哪里可以找到metrics.propreties配置文件。

确保在 Spark 作业 k8s 定义文件下添加以下行sparkConf,并将其调整为您的实际路径。文件的路径metrics.properties应该在你的 Dockerfile 中设置。

sparkConf:    
    "spark.metrics.conf": "/etc/metrics/conf/metrics.properties"

sparkConf作为参考,这是我的 , 公制相关配置的其余部分。

sparkConf:
    "spark.metrics.conf": "/etc/metrics/conf/metrics.properties"  
    "spark.ui.prometheus.enabled": "true"
    "spark.kubernetes.driver.annotation.prometheus.io/scrape": "true"
    "spark.kubernetes.driver.annotation.prometheus.io/path": "/metrics/executors/prometheus/"
    "spark.kubernetes.driver.annotation.prometheus.io/port": "4040"
    "spark.sql.streaming.metricsEnabled": "true"
    "spark.metrics.appStatusSource.enabled": "true"
    "spark.kubernetes.driver.service.annotation.prometheus.io/scrape": "true"
    "spark.kubernetes.driver.service.annotation.prometheus.io/path": "/metrics/prometheus/"
    "spark.kubernetes.driver.service.annotation.prometheus.io/port": "4040"
于 2021-06-22T14:44:37.850 回答