如何访问 databricks 中的 spark executor、worker 和 master 级别指标?

How to access spark executor, worker and master level metrics in databricks?

我的问题是针对数据块的。我正在尝试通过以下 spark 配置通过 databricks 中的石墨接收器访问 spark 指标,我希望在创建集群时传递配置。

spark.metrics.conf.*.sink.graphite.class org.apache.spark.metrics.sink.GraphiteSink
spark.metrics.conf.*.sink.graphite.host myhost
spark.metrics.conf.*.sink.graphite.port 2003
spark.metrics.conf.*.sink.graphite.period 10
spark.metrics.conf.*.sink.graphite.unit seconds
spark.metrics.conf.*.source.jvm.class org.apache.spark.metrics.source.JvmSource

但是,上述配置仅获取驱动程序级别的指标。 我在一些帖子中读到要获得执行者级别的指标,必须传递以下参数

spark-submit <other parameters> --files metrics.properties 
--conf spark.metrics.conf=metrics.properties

我的问题是如何在创建集群时在 databricks 中传递 --files 参数(因为我没有执行 spark-submit)或者是否有任何其他方法来获取执行程序、工作程序和主程序级别指标 ?

集群Json

{
    "num_workers": 0,
    "cluster_name": "mycluster",
    "spark_version": "5.5.x-scala2.11",
    "spark_conf": {
        "spark.metrics.conf.*.sink.graphite.unit": "seconds",
        "spark.metrics.conf.*.sink.graphite.class": "org.apache.spark.metrics.sink.GraphiteSink",
        "spark.metrics.conf.*.sink.graphite.period": "10",
        "spark.databricks.delta.preview.enabled": "true",
        "spark.metrics.conf.*.source.jvm.class": "org.apache.spark.metrics.source.JvmSource",
        "spark.metrics.conf.*.sink.graphite.host": "myhost",
        "spark.metrics.conf.*.sink.graphite.port": "2003"
    },
    "aws_attributes": {
        "first_on_demand": 0,
        "availability": "ON_DEMAND",
        "zone_id": "us-west-2c",
        "spot_bid_price_percent": 100,
        "ebs_volume_count": 0
    },
    "node_type_id": "dev-tier-node",
    "driver_node_type_id": "dev-tier-node",
    "ssh_public_keys": [],
    "custom_tags": {},
    "spark_env_vars": {
        "PYSPARK_PYTHON": "/databricks/python3/bin/python3"
    },
    "autotermination_minutes": 120,
    "enable_elastic_disk": false,
    "cluster_source": "UI",
    "init_scripts": [],
    "cluster_id": "0604-114345-oboe241"
}

The --jars, --py-files, --files arguments support DBFS paths.

您可以如下所示在 spark 提交中指定指标文件的路径。

--files=dbfs/yourPath/metrics.properties --conf spark.metrics.conf=./metrics.properties

参考: Azure Databricks Jobs API - SparkSubmitTask

article 给出了一个示例,说明如何使用 Spark 可配置指标系统监控 Apache Spark 组件。具体来说,它展示了如何设置新源和启用接收器。