Driverless AI Health API

以下各节介绍 Driverless AI Health API。

概述

Driverless AI Health API 是一款公开的 API,展示基本的系统指标和统计数据。其主要目的是为监控资源和自动调整 Driverless AI multinode 聚类提供信息。API 以 JSON 格式输出一系列指标,以供 KEDAK8S Autoscaler 等工具使用。

请注意

  • Health API 仅适用于 多节点单节点 模式。更多信息,请参阅 worker_mode config.toml 选项。

  • 出于安全目的,可通过将 enable_health_api config.toml 选项设置为 false 来禁用 Health API 端点。默认启用此设置。

  • Health API 旨在提供用户针对 Multinode Driverless AI 编写其自动调整逻辑所需的信息。它还可与 Enterprise Puddle 等服务配合使用,从而跳过验证步骤,直接检索所需的信息。

使用 DAI Health API

要检索 Driverless AI 的运行状况,创建 GET 请求:

GET http://{driverless-ai-instance-address}/apis/health/v1

将返回以下 JSON 响应:

{
  "api_version": "1.0",
  "server_version": "1.10",
  "timestamp": "ISO 8601 Datetime",
  "last_system_interaction": "ISO 8601 Datetime",
  "is_idle": true,

  "resources": {
    "cpu_cores": 150,
    "gpus": 12,
    "nodes": 5,
  },

  "tasks": {
    "running": 45,
    "scheduled": 123,
  },

  "utilization": {
    "cpu": 0.12,
    "gpu": 0.45,
    "memory": 0.56,
  },
}

属性定义

以下是相关 JSON 属性定义列表。

  • Api_version (字符串):API 版本

  • Scoring-standalone-python Server_version (字符串):Driverless AI 服务器版本

  • Timestamp (字符串):当前服务器时间,使用 ISO8601 格式

  • Last_system_interaction (字符串):与 Driverless AI 服务器上一次交互的时间戳,ISO8601 格式。以下被视为系统交互:

  1. 客户端传入的 RPC 请求

  2. 用户登录/登出

  3. 来自正在运行或已完成的实验的系统事件,如 _sync_ 消息

  4. 数据集上传初始化

  5. 自定义插件上传

  • Is_idle (布尔值):没有正在运行或计划的任务时,系统被视为空闲

  • Resources.nodes (整型):Driverless AI 聚类中的节点数

  • Resources.gpus (整型):Driverless AI 聚类中的 GPU 总数

  • Resources.cpu_cores (整型):Driverless AI 聚类中的 CPU 内核总数

  • Tasks.running (整型):系统中正在运行的作业总数

  • Tasks.scheduled (整型):计划队列中正在等待执行的作业总数

  • Utilization.cpu (浮点型 [0, 1]):所有节点的合计 CPU 利用率百分比

  • Utilization.gpu (浮点型 [0, 1]):所有节点的合计 GPU 利用率百分比

  • Utilization.memory (浮点型 [0, 1]):所有节点的合计内存利用率百分比