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

如何通过Cluster API或其他方法获取Azure Databricks Notebook集群的实时非活动时长?

获取Azure Databricks集群实时非活动时长的可行方案

嘿,刚接触Databricks就琢磨这么细节的点,必须给你点个赞!要获取集群的实时非活动时长(当前时间与最后一次运行命令的时间差),确实可以通过Cluster API或者其他方式实现,我给你拆解下具体方案:

1. 核心方案:使用Cluster API的Get Cluster接口

这是最直接的官方方法,毕竟自动终止功能本身就是依赖这个接口返回的字段来判断的。

步骤说明:

  • 调用/api/2.0/clusters/get接口,传入目标集群的cluster_id,就能获取集群的详细信息,其中包含last_activity_time字段——这个字段记录了集群最后一次有活动的UTC毫秒时间戳(比如1699999999000)。
  • 拿当前的UTC毫秒时间戳减去last_activity_time,再转换成分钟/小时,就是你要的非活动时长。

示例代码(用curl调用):

curl -X GET "https://<你的Databricks实例域名>/api/2.0/clusters/get?cluster_id=<目标集群ID>" \
  -H "Authorization: Bearer <你的个人访问令牌>"

返回的JSON结构里会有类似这样的字段:

{
  "cluster_id": "xxxxxx-xxxxxx-xxxxxx",
  "last_activity_time": 1699999999000,
  ...
}

你可以用Python快速计算差值:

import time

# 从API获取的last_activity_time(毫秒)
last_activity_ms = 1699999999000
current_ms = int(time.time() * 1000)
inactive_minutes = (current_ms - last_activity_ms) // (1000 * 60)

print(f"集群已非活动时长:{inactive_minutes} 分钟")

2. 其他补充方式

如果需要在Notebook内部快速查看,也可以通过Databricks CLI来调用相同的API,或者用dbutils结合一些技巧,但本质上还是依赖last_activity_time字段:

  • 安装Databricks CLI后,执行命令:databricks clusters get --cluster-id <集群ID>,输出里直接找last_activity_time。
  • 如果你在Notebook中运行,可以用%sh魔法命令调用curl,或者用Python的requests库直接发起请求(需要配置令牌)。

注意事项:

  • 权限要求:调用API的账号需要拥有集群的Cluster View权限,否则会返回权限错误。
  • 时区问题:last_activity_time是UTC时间,计算时要确保当前时间也是UTC,避免时区差导致的误差。
  • 实时性:API返回的last_activity_time是Databricks后台最新记录的时间,一般延迟很低,足够满足实时监控的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:44:06