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

Azure Databricks 13.3版本后如何记录集群使用指标(不含DataDog、Grafana)

Azure Databricks 13.3+ 集群资源指标记录方案(排除第三方监控工具)

1. Azure Monitor原生集成(官方首选)

  • 操作步骤:打开目标集群的配置页面,切换到「监控」标签,勾选「发送指标到Azure Monitor」即可启用
  • 覆盖指标:CPU使用率、内存使用率(JVM/OS双维度)、网络吞吐、磁盘IO、作业/任务执行时长、集群并行度等核心指标
  • 自定义分析:通过Azure Monitor的日志分析功能,使用DatabricksClusterMetrics表写Kusto查询,比如查看1小时内的CPU趋势:
    DatabricksClusterMetrics
    | where ClusterName == "your-cluster-name"
    | where TimeGenerated >= ago(1h)
    | summarize avg(CpuUsagePercent) by bin(TimeGenerated, 5m)
    
  • 附加能力:直接在Azure Monitor里搭建仪表盘、配置阈值告警,全程无需第三方工具

2. Databricks REST API 拉取指标

  • 核心端点:用/api/2.0/clusters/list获取集群ID,/api/2.0/clusters/metrics拉取实时指标,/api/2.0/insights/metrics/clusters获取历史指标
  • 示例Python脚本(用官方SDK):
    from databricks.sdk import WorkspaceClient
    import time
    
    # 初始化客户端
    w = WorkspaceClient(host="https://<your-workspace-url>.azuredatabricks.net", token="<your-pat-token>")
    target_cluster_id = "<your-cluster-id>"
    
    # 循环拉取实时指标(每分钟一次)
    while True:
        metrics = w.clusters.get_metrics(cluster_id=target_cluster_id)
        print(f"当前CPU使用率: {metrics.metrics.get('cpu_usage_percent', 0)}%")
        print(f"当前内存使用率: {metrics.metrics.get('memory_usage_percent', 0)}%")
        print(f"网络写入速率: {metrics.metrics.get('network_bytes_written', 0)/1024/1024:.2f} MB/s")
        time.sleep(60)
    
  • 扩展:拉取的指标可以写入Azure Blob/ADLS Gen2,后续用Spark或Synapse做批量分析

3. 集群节点本地脚本采集(细粒度自定义指标)

  • 适用场景:需要OS层面的进程级指标(如单个进程CPU占用、磁盘IOPS)
  • 实现方式:
    • 在集群初始化脚本中部署采集工具(比如sysstat、vmstat)
    • 后台运行采集任务,将数据写入DBFS或Azure存储
    • 定期用Spark作业读取并聚合数据
  • 初始化脚本示例片段:
    # 安装sysstat工具集
    apt-get update && apt-get install -y sysstat
    # 后台启动磁盘IO采集,每60秒记录一次,输出到DBFS
    nohup iostat -x 60 >> /dbfs/cluster-metrics/disk-io-log-$(date +%Y%m%d).log &
    

4. Databricks系统表查询(内置元数据)

  • 可用系统表:system.compute.cluster_metrics(集群级指标)、system.compute.node_metrics(节点级指标)
  • 示例Spark SQL查询:
    SELECT 
      cluster_name,
      timestamp,
      cpu_usage_percent,
      memory_usage_percent,
      network_bytes_read / 1024 / 1024 as network_read_mb,
      network_bytes_written / 1024 / 1024 as network_write_mb
    FROM system.compute.cluster_metrics
    WHERE cluster_name = "your-cluster-name"
      AND timestamp >= current_timestamp() - INTERVAL 2 HOUR
    ORDER BY timestamp DESC
    
  • 优势:无需额外配置,直接在Databricks工作区内查询,指标默认保留30天

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:27:15