下载任务日志
将某个分布式训练任务的容器日志按指定时间区间、Pod、关键字等条件导出为文件,用于离线归档或问题复盘。查询条件与查询任务日志一致,区别在于本接口返回的是整段日志内容(Base64 编码的字节流),而非逐行的结构化数据。
GET
https://api.alayanew.com/v1/training/instance/{id}/logs/download鉴权(Authorizations)
bearerAuthAuthorizationString必填用户可通过已获取的 Open API Key 做验证。例如:Bearer [YOUR_API_KEY]。
Path Parameters
idString必填训练任务 ID(来自任务列表的 id)。例如:1234567890。
Query Parameters
namespaceString必填日志所在的命名空间,必填。例如:default。
podNameStringPod(节点)名称,可选。不传则导出任务下全部 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
application/json · 200statusInteger业务状态码,200 表示成功。
messageString接口响应信息。例如:"OK"。
dataString日志文件内容,Base64 编码的字节流(byte)。客户端解码后即得到完整的日志文本,可直接落盘保存。例如:"W0lORk9dIExpbmUgMDAwMTAwIC0gdHJhaW5pbmcgc3RlcCBkb25lCg=="。
curl -X 'GET' \
'https://api.alayanew.com/v1/training/instance/1234567890/logs/download?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 base64
import requests
task_id = "1234567890"
url = f"https://api.alayanew.com/v1/training/instance/{task_id}/logs/download"
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)
result = response.json()
# data 为 Base64 字节流,解码后写入文件
with open("training.log", "wb") as f:
f.write(base64.b64decode(result["data"]))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/download?${params}`, {
method: 'GET',
headers: {
'accept': 'application/json',
'Authorization': 'Bearer [YOUR_API_KEY]'
}
})
.then(res => res.json())
.then(result => {
// data 为 Base64 字节流,解码得到日志文本
const text = atob(result.data);
console.log(text);
})
.catch(console.error);{
"status": 200,
"message": "OK",
"data": "W0lORk9dIExpbmUgMDAwMTAwIC0gdHJhaW5pbmcgc3RlcCBkb25lCg=="
}{
"status": 403,
"message": "Forbidden",
"data": {}
}{
"status": 500,
"message": "Internal Server Error",
"data": {}
}最后更新于
