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

如何监控Azure Databricks中的一组作业集群运行状态?

监控Azure Databricks作业集群的可视化方案

下面是几个实现作业集群状态可视化(红绿标识)的可行方案,基于Azure生态和Databricks API落地:

方案一:Azure Monitor工作簿 + Azure Functions定时拉取API

  • 核心逻辑:定时调用Databricks集群API获取状态,存入Azure Log Analytics,再用工作簿构建可视化面板
  • 具体步骤:
    1. 创建Azure Function,设置定时触发器(比如每5分钟执行一次)
    2. 在Function中调用Databricks的GET /api/2.0/clusters/list API,通过cluster_source字段过滤出作业集群(值为JOB)
    3. 提取集群名称、ID、状态(state字段,可选值:RUNNING/TERMINATED/ERROR等),将这些数据写入Log Analytics工作区的自定义表(比如DatabricksClusterStatus)
    4. 打开Azure Monitor工作簿,添加状态卡片组件,通过Kusto查询从自定义表拉取数据,设置条件格式:状态为RUNNING时显示绿色,其他状态显示红色
  • 示例代码片段(Python Function):
    import requests
    import os
    from datetime import datetime
    
    def main(mytimer) -> None:
        # Databricks API配置
        databricks_token = os.getenv("DATABRICKS_TOKEN")
        databricks_workspace_url = os.getenv("DATABRICKS_WORKSPACE_URL")
        headers = {"Authorization": f"Bearer {databricks_token}"}
        
        # 调用集群列表API
        response = requests.get(f"{databricks_workspace_url}/api/2.0/clusters/list", headers=headers)
        clusters = response.json().get("clusters", [])
        
        # 过滤作业集群并整理数据
        job_clusters = [
            {
                "ClusterName": cluster["cluster_name"],
                "ClusterId": cluster["cluster_id"],
                "State": cluster["state"],
                "Timestamp": datetime.utcnow().isoformat()
            }
            for cluster in clusters if cluster.get("cluster_source") == "JOB"
        ]
        
        # 将数据写入Log Analytics(需提前配置Log Analytics连接器)
        # 此处省略写入逻辑,可参考Azure Monitor SDK文档实现
    

方案二:Power BI可视化 + Databricks API数据源

  • 核心逻辑:直接在Power BI中对接Databricks API,定时刷新数据后构建状态面板
  • 具体步骤:
    1. 在Power BI Desktop中新建Web数据源,输入Databricks集群API的URL,并添加请求头Authorization: Bearer <你的Databricks令牌>
    2. 加载数据后,通过Power Query过滤出作业集群,保留名称、状态字段
    3. 添加卡片视觉对象,设置条件格式:将状态字段的RUNNING映射为绿色背景,其他状态映射为红色背景
    4. 将发布的Power BI报表嵌入Azure门户(通过Azure Dashboard的Power BI Tile),或直接共享给团队成员查看

方案三:Azure Logic Apps + Azure Dashboard自定义Tile

  • 核心逻辑:用Logic Apps定时拉取集群状态,存入Azure Storage Table,再通过Dashboard的自定义查询展示状态
  • 具体步骤:
    1. 创建Azure Logic App,添加定时触发器(比如每10分钟执行一次)
    2. 添加HTTP动作,调用Databricks集群列表API,过滤作业集群
    3. 添加Azure Table Storage动作,将集群名称、状态写入存储表
    4. 在Azure Dashboard中添加自定义查询Tile,连接到Storage Table,编写查询获取最新状态,设置条件格式实现红绿标识

注意:作业集群默认是临时模式(作业运行时启动,结束后终止),如果你的NRT接口依赖长期运行的集群,需将集群配置为永久运行模式,否则监控状态会随作业启停变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:55:19