Alaya NeW Cloud

查询任务日志

按时间区间、Pod、关键字等条件查询某个分布式训练任务的容器日志,常用于排查训练异常、跟踪运行进度。可先调用查询日志 Pod 名称列表拿到候选 podName,再用本接口拉取对应 Pod 的日志行;若需整段下载请改用下载任务日志

GEThttps://api.alayanew.com/v1/training/instance/{id}/logs

鉴权(Authorizations)

AuthorizationString必填

用户可通过已获取的 Open API Key 做验证。例如:Bearer [YOUR_API_KEY]

Path Parameters

idString必填

训练任务 ID(来自任务列表id)。例如:1234567890

Query Parameters

namespaceString必填

日志所在的命名空间,必填。例如:default

podNameString

Pod(节点)名称,可选。不传则查询任务下全部 Pod。取值可由查询日志 Pod 名称列表获取。例如:tn-exqr5k7lvj7k-master-0

containerNameString

容器名称,可选。同一 Pod 内有多个容器时用于精确定位。例如:tn-exqr5k7lvj7k-master-0

startTimeInteger

查询起始时间,纳秒时间戳(int64)。例如:1762837000000000000

endTimeInteger

查询结束时间,纳秒时间戳(int64),需大于 startTime。例如:1762837999000000000

limitInteger

返回日志条数上限。例如:500

filterString

按日志内容过滤(包含匹配),仅返回包含该子串的行。例如:ERROR

directionString

日志排序方向:forward 从旧到新、backward 从新到旧。例如:forward

Response

statusInteger

业务状态码,200 表示成功。

messageString

接口响应信息。例如:"OK"

dataArray

日志行列表,每个元素为一条日志记录。

显示 properties
timestampString

日志产生时间,纳秒时间戳(字符串形式)。例如:"1762837199838553596"

logString

日志正文内容。例如:"[INFO] Line 000100 - training step done"

podNameString

产生该行日志的 Pod 名称。例如:"tn-exqr5k7lvj7k-master-0"

curl -X 'GET' \
  'https://api.alayanew.com/v1/training/instance/1234567890/logs?namespace=default&podName=tn-exqr5k7lvj7k-master-0&startTime=1762837000000000000&endTime=1762837999000000000&limit=500&filter=ERROR&direction=forward' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer [YOUR_API_KEY]'
import requests

task_id = "1234567890"
url = f"https://api.alayanew.com/v1/training/instance/{task_id}/logs"
params = {
    "namespace": "default",
    "podName": "tn-exqr5k7lvj7k-master-0",
    "startTime": 1762837000000000000,
    "endTime": 1762837999000000000,
    "limit": 500,
    "filter": "ERROR",
    "direction": "forward"
}
headers = {
    "accept": "application/json",
    "Authorization": "Bearer [YOUR_API_KEY]"
}

response = requests.get(url, params=params, headers=headers)
print(response.json())
const taskId = '1234567890';
const params = new URLSearchParams({
  namespace: 'default',
  podName: 'tn-exqr5k7lvj7k-master-0',
  startTime: '1762837000000000000',
  endTime: '1762837999000000000',
  limit: '500',
  filter: 'ERROR',
  direction: 'forward'
});

fetch(`https://api.alayanew.com/v1/training/instance/${taskId}/logs?${params}`, {
  method: 'GET',
  headers: {
    'accept': 'application/json',
    'Authorization': 'Bearer [YOUR_API_KEY]'
  }
})
  .then(res => res.json())
  .then(console.log)
  .catch(console.error);
{
  "status": 200,
  "message": "OK",
  "data": [
    {
      "timestamp": "1762837199838553596",
      "log": "[INFO] Line 000100 - training step done",
      "podName": "tn-exqr5k7lvj7k-master-0"
    }
  ]
}
{
  "status": 403,
  "message": "Forbidden",
  "data": {}
}
{
  "status": 500,
  "message": "Internal Server Error",
  "data": {}
}

Last updated on