告警

AI Studio 工作区告警由告警规则、通知对象和告警记录组成。规则观察数据载入和数据处理指标,通知对象决定消息送达方式,告警记录保留已经发生的触发事实。SDK 可以帮助应用定位相关任务,但当前不能管理这三类告警对象。

当前 SDK 边界

官方 Python SDKGo SDK 当前没有公开以下方法或类型:

  • 列出、创建、修改、启用、禁用或删除告警规则;

  • 管理邮件、短信、电话或企业微信通知对象;

  • 查询告警记录、修改已读状态或确认告警。

请在 AI Studio 的告警页面完成这些操作。不要通过 RawClient 的底层请求辅助函数调用控制台内部路径;未公开路径、字段和枚举可能随服务版本变化。

SDK 当前适合承担告警后的诊断步骤:

  1. 从通知或告警记录取得触发时间、规则 ID、表达式和关联任务信息。

  2. 根据任务 ID 查询数据载入任务,或根据工作流 ID 与源文件 ID 查询工作流作业。

  3. 将返回状态与作业日志、SQL 历史和计算资源状态对齐。

  4. 处理问题后在控制台复查告警,并按实际情况调整阈值、通知周期或通知对象。

告警记录的“已读”只表示有人查看,不表示异常已经恢复。

查询数据载入任务

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 工作区

AI Studio · 告警

MatrixOne 数据库实例

MatrixOne · 告警

余额与费用

账户设置

收到通知后先确认平台、工作区和时间范围,再选择相应的日志与 SDK 标识。避免拿实例告警去查询工作区任务,或用工作区 API Key 处理其他平台的告警。