告警¶
AI Studio 工作区告警由告警规则、通知对象和告警记录组成。规则观察数据载入和数据处理指标,通知对象决定消息送达方式,告警记录保留已经发生的触发事实。SDK 可以帮助应用定位相关任务,但当前不能管理这三类告警对象。
当前 SDK 边界¶
官方 Python SDK 与 Go SDK 当前没有公开以下方法或类型:
列出、创建、修改、启用、禁用或删除告警规则;
管理邮件、短信、电话或企业微信通知对象;
查询告警记录、修改已读状态或确认告警。
请在 AI Studio 的告警页面完成这些操作。不要通过 RawClient 的底层请求辅助函数调用控制台内部路径;未公开路径、字段和枚举可能随服务版本变化。
SDK 当前适合承担告警后的诊断步骤:
从通知或告警记录取得触发时间、规则 ID、表达式和关联任务信息。
根据任务 ID 查询数据载入任务,或根据工作流 ID 与源文件 ID 查询工作流作业。
将返回状态与作业日志、SQL 历史和计算资源状态对齐。
处理问题后在控制台复查告警,并按实际情况调整阈值、通知周期或通知对象。
告警记录的“已读”只表示有人查看,不表示异常已经恢复。
查询数据载入任务¶
get_task / GetTask 查询的是数据载入任务,不是通用的告警详情接口。任务 ID 通常来自载入或上传操作的响应;告警通知是否包含该 ID 取决于当前规则和消息格式。
Python¶
import os
from moi import RawClient
client = RawClient(
base_url=os.environ["MOI_BASE_URL"],
api_key=os.environ["MOI_API_KEY"],
)
task = client.get_task({"task_id": 123456})
print("status:", task.get("status"))
for result in task.get("load_results", []):
if result.get("reason"):
print("failure:", result["reason"])
Python SDK 将响应数据返回为字典。先判断字段是否存在;不要假定所有部署版本都返回完全相同的可选字段。
Go¶
package main
import (
"context"
"fmt"
"log"
"os"
sdk "github.com/matrixorigin/moi-go-sdk"
)
func main() {
client, err := sdk.NewRawClient(
os.Getenv("MOI_BASE_URL"),
os.Getenv("MOI_API_KEY"),
)
if err != nil {
log.Fatal(err)
}
task, err := client.GetTask(context.Background(), &sdk.TaskInfoRequest{
TaskID: sdk.TaskID(123456),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("task=%s status=%s\n", task.ID, task.Status)
for _, result := range task.LoadResults {
if result != nil && result.Reason != "" {
fmt.Printf("failure=%s\n", result.Reason)
}
}
}
TaskInfoResponse 还可包含开始、结束和更新时间、源文件以及载入结果。以实际返回值为准,不要仅凭客户端请求完成时间判断告警对应的服务端事件时间。
查询工作流作业¶
告警关联工作流和源文件时,可以使用高级客户端按这两个标识查找作业。
from moi import SDKClient
sdk = SDKClient(client)
job = sdk.get_workflow_job(
workflow_id="workflow-123",
source_file_id="file-456",
)
print(job.get("job_id"), job.get("status"))
如果作业可能尚未出现在列表中,Python SDK 还提供 wait_for_workflow_job();Go SDK 提供 GetWorkflowJob() 和 WaitForWorkflowJob()。轮询必须设置总超时,并在找到失败状态后停止。状态编码和字段以 SDK 公开类型及服务实际返回为准。
设计可处置的告警¶
在控制台创建规则前,先把告警与诊断信息对应起来:
配置 |
建议 |
|---|---|
规则 |
为数据载入和数据处理分别选择与业务风险匹配的模板和阈值 |
通知对象 |
按值班职责建立对象,避免把个人地址散落在多条规则中 |
级别 |
用于表达处置优先级,不要用更高级别替代合理阈值 |
通知周期 |
同时考虑异常持续时间和接收方可承受的通知频率 |
诊断标识 |
确保值班人员能从消息或控制台找到规则、时间、工作流、文件或任务 |
推荐先建立通知对象,再创建规则,最后用告警记录验证触发和送达。删除或禁用通知对象前,检查是否仍有规则引用它。
识别告警所属平台¶
本页只讨论 AI Studio 工作区中的数据载入和数据处理告警。以下体系相互独立,不共用规则、通知对象或记录:
告警来源 |
查阅 |
|---|---|
AI Studio 工作区 |
|
MatrixOne 数据库实例 |
|
余额与费用 |
收到通知后先确认平台、工作区和时间范围,再选择相应的日志与 SDK 标识。避免拿实例告警去查询工作区任务,或用工作区 API Key 处理其他平台的告警。