使用Prometheus获取Databricks(Spark)的度量指标

用Prometheus监控Databricks(Spark)的指标获取

虽然是很久之前的事情了,从spark3.0系列开始,可以通过Prometheus来获取指标数据。

 

因为不太了解在Databricks的情况下该如何获取信息,所以我将以类似闲聊的方式留下这些信息。

我们在以下地方进行动作验证。

    • DBR11.3 Standard

 

    All purpose Cluster
对于Job Cluster的情况,由于获取的指数URL会发生变化,所以在获取之前需要进行一些考虑(尚未验证)。

设定项目

    • spark config

 

    • init script

 

    Prometheusからmetricsを取得するためのconfig

Spark配置

请通过Databricks集群创建页面设置Spark Config,namespace是任意的命名空间。

spark.ui.prometheus.enabled true
spark.metrics.namespace suda-spark

初始化脚本

请在DBFS上放置此处的init script。将其复制并粘贴到notebook中执行,然后将结果输出到DBFS上。您还可以在Cluster的界面上设置init script。

%scala
dbutils.fs.put("dbfs:/Users/hogehoge/prom_init_scripts",
"""
|#!/bin/bash
|cat <<EOF > /databricks/spark/conf/metrics.properties
|*.sink.prometheusServlet.class=org.apache.spark.metrics.sink.PrometheusServlet
|*.sink.prometheusServlet.path=/metrics/prometheus
|master.sink.prometheusServlet.path=/metrics/master/prometheus
|applications.sink.prometheusServlet.path=/metrics/applications/prometheus
|EOF
""".stripMargin, true)

重启Cluster并进行安装后的确认。

为了重新加载init脚本,在重新启动集群后,我们将在notebook上使用以下命令来确认是否可以获取到Metrics。

%sh
curl -L -H "Authorization: Bearer パーソナルtoken" -X GET https://WORKSPACEのURL/driver-proxy-api/o/0/ClusterのID/40001/metrics/prometheus

%sh
curl -L -H "Authorization: Bearer パーソナルtoken" -X GET https://${WORKSPACE}/driver-proxy-api/o/0/ClusterのID/40001/metrics/executors/prometheus

如果设置成功加载,我认为可以以这种形式获取到指标并写入。

Screenshot_2023-03-18_at_11_37_54.jpg

普罗米修斯的配置设置

我們將在 prometheus.yaml 的 scrape 部分添加以下設定。由於從 prometheus 端進行的採集是通過HTTP並使用個人 token 進行的,因此請使用 bearer_token 進行指定。

- job_name: "databricks"
    metrics_path: "/driver-proxy-api/o/0/0313-015028-llm0hx61/40001/metrics/prometheus"
    scheme: "http"
    bearer_token: "パーソナルToken"
    static_configs:
      - targets: ["WORKSPACEのFQDN"]

  - job_name: "databricks-exec"
    metrics_path: "/driver-proxy-api/o/0/0313-015028-llm0hx61/40001/metrics/executors/prometheus"
    scheme: "http"
    bearer_token: "パーソナルToken"
    static_configs:
      - targets: ["WORKSPACEのFQDN"]

只需一个选项,将以下内容用中文重新表述:
从Prometheus的用户界面上看,可以确认可以获得各种指标数据,因此我认为可以使用Grafana等工具进行可视化展示,效果会很好。

Screenshot 2023-03-16 at 21.15.20.jpg

我在Databricks上使用Prometheus获取指标的方法非常简单。由于我还没有找到满意的仪表板,如果有人知道好看的仪表板,请务必告诉我。

bannerAds