AI开发平台MODELARTS-查看训练作业监控指标:自定义监控指标上报到AOM

时间:2025-03-04 20:53:08

自定义监控指标上报到AOM

除了ModelArts控制台可以直接查看的训练作业相关指标外,还支持自定义监控指标上报到AOM控制台查看。配置步骤如下。

  1. 准备训练代码,在训练代码中增加指标监控的代码。具体代码示例如下。准备训练代码的其它要求请参见准备模型训练代码

    代码中倒数第2行的region = "cn-southwest-2"参数值请替换成实际region值,region取值可以参考终端节点

    代码中增加监控指标数据,具体参数解释参考AOM文档

    # coding: utf-8
    import os
    
    from huaweicloudsdkaom.v2 import *
    from huaweicloudsdkaom.v2.region.aom_region import AomRegion
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkcore.exceptions import exceptions
    from moxing.framework import cloud_utils
    
    
    def report2Aom(request,region):
        auth = cloud_utils.get_auth() #AK、SK和临时TOKEN值,系统会自动获取无需在代码中填写。
    
        ak = auth.AK
        sk = auth.SK
        securityToken = auth.TOKEN
    
        projectId = os.environ.get("MA_ IAM _PROJECT_ID")
        credentials = BasicCredentials(ak, sk, projectId).with_security_token(securityToken)
        client = AomClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(AomRegion.value_of(region)) \
            .build()
        try:
            response = client.add_metric_data(request)
            print(response)
        except Exception as e:
            print(e)
    if __name__ == "__main__":
    
        request = AddMetricDataRequest()
        listValuesBody = [
            #下面填上对应的指标名称、类型、单位、数值,比如step_time、loss值等
            ValueData(
                metric_name="step_time", #监控指标名称,例如step_time
                type="float",  #指标的数据类型,取值范围只能是"int"或"float"。
                unit="ms",     #数据的单位。长度不超过32个字符,此处举例为ms
                value=135.572  #指标数据的值。取值范围有效的数值类型。最小值0
            ),
            ValueData(
                metric_name="loss",
                type="float",
                value=0.6932
            )
        ]
        listDimensionsMetric = [
            #下面填上想查看的指标维度,比如线程、host等等
            Dimension2(
                name="cluster_name",#此处仅为举例示意,请替换为实际需要查看的指标维度
                value="fab2c5cf438b4f0c851fdcdf"# 此处仅为举例示意,请替换为实际参数值
            ),
            Dimension2(
                name="user_name",
                value="modelarts_02" # 此处仅为举例示意,请替换为实际参数值
            ),
            Dimension2(
                name="user_id",
                value="04f258c8fb00d42a1f6xxx" # 此处仅为举例示意,请替换为实际参数值
            )
        ]
        metricBody = MetricItemInfo(
            dimensions=listDimensionsMetric,
            namespace="NOPAAS.ESC"  #保持默认值即可,无需修改
        )
        listBodybody = [
            MetricDataItem(
                collect_time=int(round(time.time()*1000)),  #监控指标数据收集时间,为最新的时间戳,ms为单位
                metric=metricBody,
                values=listValuesBody
            )
        ]
        request.body = listBodybody
        region = "cn-southwest-2"  #请根据实际region替换
        response = report2Aom(request,region)
    

  2. 在训练代码中加入命令,用于加载对应的依赖包。如果使用的是 自定义镜像 ,也可以在制作镜像时安装以下依赖,具体参见开发用于自定义镜像训练的代码
    pip install huaweicloudsdkaom
    pip install huaweicloudsdkcore
  3. 创建训练作业并运行,具体参考创建生产训练作业(默认页面)章节。
  4. 登录AOM控制台,在“指标浏览”页面,通过指定“指标”查看上报的指标数据。
    图1 AOM上查看指标数据
  5. 参考告警上报配置方法章节设置AOM告警和通知机制。
support.huaweicloud.com/usermanual-standard-modelarts/develop-modelarts-1424.html