0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Databricks(Spark)のmetricsをPrometheusで取得する

Posted at

Databricks(Spark)のMetricsをPrometheusで取得

だいぶ前の話になりますが、spark3.0系から、Prometheus経由でのMetrics取得が可能になっています。

Databricksの場合に、どう取得するかがいまいちわからなかったので、チラ裏的な形で情報を残しておきます。

動作検証は下記で実施しています。

  • DBR11.3 Standard
  • All purpose Cluster

Job Clusterの場合、取得するMetricsのURLが変動するため、取得するには少し考慮が必要かと思います(検証未実施

設定項目

  • spark config
  • init script
  • Prometheusからmetricsを取得するためのconfig

Spark Config

Spark Configについては、DatabrikcsのCluster作成画面からいつも通り設定してください。
namespaceは任意のname spaceです。

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

init script

こちらも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 scriptを再度読み込むために、clusterを再起動したらnotebook上で
下記コマンドでMetricksが取得できるかを確認します。

%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

設定がうまく読み込めていればこんな形でmetricsが取得できていることが書くのにできるかと思います。

Screenshot_2023-03-18_at_11_37_46.jpg
Screenshot_2023-03-18_at_11_37_54.jpg

Prometheus側の設定

prometheus.yamlのscrapeの箇所に下記の設定を追加します。
prometheus側からは、パーソナルtokenを使ってhttp経由での取得になるので、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のUIから見てみると、各種Metricsが取得できていることが確認できるので
grafanaなどで可視化するといい感じにできると思います。

Screenshot 2023-03-16 at 21.15.20.jpg

以上で簡単ではありますがDatabricksでのPrometheusを使ったmetrics取得方法でした。
いい感じのDashboardがまだ見つからないので、どなたかいい感じのあれば是非教えていただきたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?