

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 由亚马逊 EKS 精心策划的亚马逊 SageMaker HyperPod 集群的可观察性
<a name="sagemaker-hyperpod-eks-cluster-observability"></a>

[要全面观察您的亚马逊 SageMaker HyperPod (SageMaker HyperPod) 集群资源和软件组件，请将集群与 Amazon Container [Insights、[适用于 Prometheus 的亚马逊托管服务和](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)亚马逊托管 Grafana CloudWatch 集](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html)成。](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)这些工具可让您清晰了解集群运行状况、性能指标和资源利用率。

通过与 Amazon Prometheus 托管服务的集成，可以导出与 HyperPod您的集群资源相关的指标，从而深入了解其性能、利用率和运行状况。与 Amazon Managed Grafana 集成后，可以通过各种 Grafana 控制面板实现这些指标的可视化，为监控和分析集群行为提供直观的界面。通过利用这些服务，您可以获得 HyperPod 集群的集中统一视图，从而便于对分布式训练工作负载进行主动监控、故障排除和优化。

**注意**  
虽然 CloudWatch适用于 Prometheus 的亚马逊托管服务和 Amazon Managed Grafana 侧重于运营指标（例如系统运行状况、培训作业绩效 SageMaker HyperPod ），但使用[报告补充](sagemaker-hyperpod-eks-operate-console-ui-governance.md)了任务治理，提供了财务和资源责任见解。这些报告跟踪：  
计算利用率 (GPU/CPU/Neuron Core hours) across namespaces/teams
已分配资源与已借入资源的成本归属
用于审计和优化的历史趋势（最长 180 天）
有关设置和生成使用情况报告的更多信息，请参阅[中的报告计算使用情况 HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html)。

**提示**  
要查找实际示例和解决方案，另请参阅 [Amazon EKS Support SageMaker HyperPod 研讨会中的](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e)[可观察性](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/06-observability)部分。

继续阅读以下主题以设置 SageMaker HyperPod 集群可观测性。

**Topics**
+ [对由 Amazon EKS 编排的 SageMaker HyperPod 集群上训练作业的可观察性进行建模](sagemaker-hyperpod-eks-cluster-observability-model.md)
+ [集群和任务可观测性](sagemaker-hyperpod-eks-cluster-observability-cluster.md)

# 对由 Amazon EKS 编排的 SageMaker HyperPod 集群上训练作业的可观察性进行建模
<a name="sagemaker-hyperpod-eks-cluster-observability-model"></a>

SageMaker HyperPod 使用 Amazon EKS 编排的集群可以与 Amazon Studi [MLflow o 上的应用程序](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html)集成。 SageMaker 集群管理员设置 MLflow 服务器并将其与 SageMaker HyperPod 集群连接。数据科学家可以深入了解模型。

**使用 AWS CLI 设置 MLflow 服务器**

集群管理员必须创建 MLflow 跟踪服务器。

1. 按照[使用 CL SageMaker I 创建 MLflow 跟踪服务器中的说明创建 A AWS I 跟踪服务器](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-cli.html#mlflow-create-tracking-server-cli-infra-setup)。

1. 确保[https://docs.aws.amazon.com/eks/latest/APIReference/API_auth_AssumeRoleForPodIdentity.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_auth_AssumeRoleForPodIdentity.html)权限存在于的 IAM 执行角色中 SageMaker HyperPod。

1. 如果 EKS 集群上尚未安装 `eks-pod-identity-agent` 插件，请在 EKS 集群上安装此插件。

   ```
   aws eks create-addon \
       --cluster-name <eks_cluster_name> \
       --addon-name eks-pod-identity-agent \
       --addon-version vx.y.z-eksbuild.1
   ```

1. 为新角色创建一个`trust-relationship.json`文件让 Pod 调用 MLflow APIs。

   ```
   cat >trust-relationship.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
               "Effect": "Allow",
               "Principal": {
                   "Service": "pods.eks.amazonaws.com"
   
               },
               "Action": [
                   "sts:AssumeRole",
                   "sts:TagSession"
               ]
           }
       ]
   }
   EOF
   ```

   运行以下代码创建角色并附加信任关系。

   ```
   aws iam create-role --role-name hyperpod-mlflow-role \
       --assume-role-policy-document file://trust-relationship.json \
       --description "allow pods to emit mlflow metrics and put data in s3"
   ```

1. 创建以下策略，授予 Pod 调用所有 `sagemaker-mlflow` 操作和将模型构件放入 S3 的权限。跟踪服务器中已存在 S3 权限，但是如果模型工件太大，则会直接从 MLflow 代码调用 s3 来上传工件。

   ```
   cat >hyperpod-mlflow-policy.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker-mlflow:AccessUI",
                   "sagemaker-mlflow:CreateExperiment",
                   "sagemaker-mlflow:SearchExperiments",
                   "sagemaker-mlflow:GetExperiment",
                   "sagemaker-mlflow:GetExperimentByName",
                   "sagemaker-mlflow:DeleteExperiment",
                   "sagemaker-mlflow:RestoreExperiment",
                   "sagemaker-mlflow:UpdateExperiment",
                   "sagemaker-mlflow:CreateRun",
                   "sagemaker-mlflow:DeleteRun",
                   "sagemaker-mlflow:RestoreRun",
                   "sagemaker-mlflow:GetRun",
                   "sagemaker-mlflow:LogMetric",
                   "sagemaker-mlflow:LogBatch",
                   "sagemaker-mlflow:LogModel",
                   "sagemaker-mlflow:LogInputs",
                   "sagemaker-mlflow:SetExperimentTag",
                   "sagemaker-mlflow:SetTag",
                   "sagemaker-mlflow:DeleteTag",
                   "sagemaker-mlflow:LogParam",
                   "sagemaker-mlflow:GetMetricHistory",
                   "sagemaker-mlflow:SearchRuns",
                   "sagemaker-mlflow:ListArtifacts",
                   "sagemaker-mlflow:UpdateRun",
                   "sagemaker-mlflow:CreateRegisteredModel",
                   "sagemaker-mlflow:GetRegisteredModel",
                   "sagemaker-mlflow:RenameRegisteredModel",
                   "sagemaker-mlflow:UpdateRegisteredModel",
                   "sagemaker-mlflow:DeleteRegisteredModel",
                   "sagemaker-mlflow:GetLatestModelVersions",
                   "sagemaker-mlflow:CreateModelVersion",
                   "sagemaker-mlflow:GetModelVersion",
                   "sagemaker-mlflow:UpdateModelVersion",
                   "sagemaker-mlflow:DeleteModelVersion",
                   "sagemaker-mlflow:SearchModelVersions",
                   "sagemaker-mlflow:GetDownloadURIForModelVersionArtifacts",
                   "sagemaker-mlflow:TransitionModelVersionStage",
                   "sagemaker-mlflow:SearchRegisteredModels",
                   "sagemaker-mlflow:SetRegisteredModelTag",
                   "sagemaker-mlflow:DeleteRegisteredModelTag",
                   "sagemaker-mlflow:DeleteModelVersionTag",
                   "sagemaker-mlflow:DeleteRegisteredModelAlias",
                   "sagemaker-mlflow:SetRegisteredModelAlias",
                   "sagemaker-mlflow:GetModelVersionByAlias"
               ],
               "Resource": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-tracking-server/<ml tracking server name>"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::<mlflow-s3-bucket_name>"
           }
       ]
   }
   EOF
   ```
**注意**  
 ARNs 它们是根据设置[ MLflow 基础架构](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-cli.html#mlflow-create-tracking-server-cli-infra-setup)的说明创建 MLflow 服务器期间在 MLflow 服务器上设置的 S3 存储桶和 S3 存储桶。

1. 使用上一步中保存的策略文档，将 `mlflow-metrics-emit-policy` 策略附加到 `hyperpod-mlflow-role`。

   ```
   aws iam put-role-policy \
     --role-name hyperpod-mlflow-role \
     --policy-name mlflow-metrics-emit-policy \
     --policy-document file://hyperpod-mlflow-policy.json
   ```

1. 为 Pod 创建一个 Kubernetes 服务账号来访问服务器。 MLflow 

   ```
   cat >mlflow-service-account.yaml <<EOF
   apiVersion: v1
   kind: ServiceAccount
   metadata:
     name: mlflow-service-account
     namespace: kubeflow
   EOF
   ```

   运行以下命令应用到 EKS 集群。

   ```
   kubectl apply -f mlflow-service-account.yaml
   ```

1. 创建容器组身份关联。

   ```
   aws eks create-pod-identity-association \
       --cluster-name EKS_CLUSTER_NAME \
       --role-arn arn:aws:iam::111122223333:role/hyperpod-mlflow-role \
       --namespace kubeflow \
       --service-account mlflow-service-account
   ```

**将训练作业中的指标收集到 MLflow服务器**

数据科学家需要设置训练脚本和 docker 镜像，以便向服务器发送指标。 MLflow 

1. 在训练脚本的开头添加以下几行。

   ```
   import mlflow
   
   # Set the Tracking Server URI using the ARN of the Tracking Server you created
   mlflow.set_tracking_uri(os.environ['MLFLOW_TRACKING_ARN'])
   # Enable autologging in MLflow
   mlflow.autolog()
   ```

1. 使用训练脚本构建 Docker 映像，并推送到 Amazon ECR。获取 ECR 容器的 ARN。有关构建和推送 Docker 映像的更多信息，请参阅[《ECR 用户指南》](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)中的*推送 Docker 映像*。
**提示**  
确保在 Docker 文件中添加 mlflow 和 sagemaker-mlflow 软件包的安装。要详细了解软件包的安装、要求和软件包的兼容版本，请参阅[安装 MLflow 和 SageMaker AI MLflow 插件](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-track-experiments.html#mlflow-track-experiments-install-plugin)。

1. 在训练作业 Pod 中添加服务账号使其能够访问 `hyperpod-mlflow-role`。这允许 Pod 调用 MLflow APIs。运行以下 SageMaker HyperPod CLI 作业提交模板。创建此文件，文件名为 `mlflow-test.yaml`。

   ```
   defaults:
    - override hydra/job_logging: stdout
   
   hydra:
    run:
     dir: .
    output_subdir: null
   
   training_cfg:
    entry_script: ./train.py
    script_args: []
    run:
     name: test-job-with-mlflow # Current run name
     nodes: 2 # Number of nodes to use for current training
     # ntasks_per_node: 1 # Number of devices to use per node
   cluster:
    cluster_type: k8s # currently k8s only
    instance_type: ml.c5.2xlarge
    cluster_config:
     # name of service account associated with the namespace
     service_account_name: mlflow-service-account
     # persistent volume, usually used to mount FSx
     persistent_volume_claims: null
     namespace: kubeflow
     # required node affinity to select nodes with SageMaker HyperPod
     # labels and passed health check if burn-in enabled
     label_selector:
         required:
             sagemaker.amazonaws.com/node-health-status:
                 - Schedulable
         preferred:
             sagemaker.amazonaws.com/deep-health-check-status:
                 - Passed
         weights:
             - 100
     pullPolicy: IfNotPresent # policy to pull container, can be Always, IfNotPresent and Never
     restartPolicy: OnFailure # restart policy
   
   base_results_dir: ./result # Location to store the results, checkpoints and logs.
   container: 111122223333.dkr.ecr.us-west-2.amazonaws.com/tag # container to use
   
   env_vars:
    NCCL_DEBUG: INFO # Logging level for NCCL. Set to "INFO" for debug information
    MLFLOW_TRACKING_ARN: arn:aws:sagemaker:us-west-2:11112223333:mlflow-tracking-server/tracking-server-name
   ```

1. 使用 YAML 文件启动作业，如下所示。

   ```
   hyperpod start-job --config-file /path/to/mlflow-test.yaml
   ```

1. 为 MLflow 跟踪服务器生成预签名 URL。您可以在浏览器上打开链接，开始跟踪您的训练作业。

   ```
   aws sagemaker create-presigned-mlflow-tracking-server-url \                          
       --tracking-server-name "tracking-server-name" \
       --session-expiration-duration-in-seconds 1800 \
       --expires-in-seconds 300 \
       --region region
   ```

# 集群和任务可观测性
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster"></a>

监控 SageMaker HyperPod 集群有两个选项：

** SageMaker HyperPod 可观测性插件** — SageMaker HyperPod 提供全面的 out-of-the-box仪表板，可让您深入了解基础模型 (FM) 开发任务和集群资源。此统一的可观测性解决方案会自动将关键指标发布到 Amazon Managed Service for Prometheus，并在 Amazon Managed Grafana 控制面板中展示这些指标。这些控制面板已专门针对基础模型开发进行优化，深度覆盖了硬件运行状况、资源利用率以及任务级性能。使用此插件，您可以整合来自 NVIDIA DCGM、实例级 Kubernetes 节点导出器、Elastic Fabric Adapter、集成文件系统、Kubernetes、K APIs ueue 和任务操作员的运行状况和性能数据。 SageMaker HyperPod 

**Amazon CloudWatch Ins** CloudWatch ights — Amazon Insights 收集计算资源的指标，例如 CPU、内存、磁盘和网络。Container Insights 还提供诊断信息（如容器重新启动失败），以帮助您查明问题并快速解决问题。您还可以对容器洞察收集的指标设置 CloudWatch 警报。

**Topics**
+ [通过亚马逊托管 Grafana 和适用于 Prometheus 的亚马逊托管服务实现亚马逊 SageMaker HyperPod 的可观察性](sagemaker-hyperpod-observability-addon.md)
+ [通过 Amazon 实现可观察性 CloudWatch](sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci.md)

# 通过亚马逊托管 Grafana 和适用于 Prometheus 的亚马逊托管服务实现亚马逊 SageMaker HyperPod 的可观察性
<a name="sagemaker-hyperpod-observability-addon"></a>

Amazon SageMaker HyperPod (SageMaker HyperPod) 提供了一个全面的 out-of-the-box控制面板，可让您深入了解基础模型 (FM) 开发任务和集群资源。此统一的可观测性解决方案会自动将关键指标发布到 Amazon Managed Service for Prometheus，并在 Amazon Managed Grafana 控制面板中展示这些指标。这些控制面板已专门针对基础模型开发进行优化，深度覆盖了硬件运行状况、资源利用率以及任务级性能。使用此插件，您可以整合来自 NVIDIA DCGM、实例级 Kubernetes 节点导出器、Elastic Fabric Adapter、集成文件系统、Kubernetes、K APIs ueue 和任务操作员的运行状况和性能数据。 SageMaker HyperPod 

## 受限实例组 (RIG) 支持
<a name="hyperpod-observability-addon-rig-support"></a>

可观察性插件还支持包含受限实例组的集群。在 RIG 集群中，插件会自动调整其部署策略，以符合受限节点的网络隔离和安全限制。 DaemonSet 组件（节点导出器、DCGM 导出器、EFA 导出器、神经元监视器和节点收集器）在标准节点和受限节点上运行。部署组件（中央收集器、Kube 状态指标和训练指标代理）采用边界感知逻辑进行调度，以尊重实例组之间的网络隔离。使用 Fluent Bit 收集容器日志在受限节点上不可用。

有关在具有受限实例组的集群上设置插件的信息，请参阅[设置可 SageMaker HyperPod 观测性附加组件](hyperpod-observability-addon-setup.md)。

**Topics**
+ [受限实例组 (RIG) 支持](#hyperpod-observability-addon-rig-support)
+ [设置可 SageMaker HyperPod 观测性附加组件](hyperpod-observability-addon-setup.md)
+ [Amazon SageMaker HyperPod 可观测性控制面板](hyperpod-observability-addon-viewing-dashboards.md)
+ [探索亚马逊托管 Grafana 中的 SageMaker HyperPod 集群指标](hyperpod-observability-addon-exploring-metrics.md)
+ [自定义 SageMaker HyperPod 集群指标、仪表板和警报](hyperpod-observability-addon-customizing.md)
+ [创建自定义 SageMaker HyperPod 集群指标](hyperpod-observability-addon-custom-metrics.md)
+ [SageMaker HyperPod 集群指标](hyperpod-observability-cluster-metrics.md)
+ [预配置的警报](hyperpod-observability-addon-alerts.md)
+ [对 Amazon SageMaker HyperPod 可观测性附加组件进行故障排除](hyperpod-observability-addon-troubleshooting.md)

# 设置可 SageMaker HyperPod 观测性附加组件
<a name="hyperpod-observability-addon-setup"></a>

以下列表描述了设置可观测性附加组件的先决条件。

要将您的 Amazon SageMaker HyperPod (SageMaker HyperPod) 集群的指标发送到适用于 Prometheus 的亚马逊托管服务工作空间，并可选择在 Amazon Managed Grafana 中查看这些指标，请先将以下托管策略和权限附加到您的控制台角色。
+ 要使用亚马逊托管 Grafana，请在亚马逊托管 Grafana 可用 AWS 区域 的地方 AWS IAM Identity Center 启用（IAM 身份中心）。有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的[开始使用 IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html)。有关提供了 Amazon Managed Grafana 的 AWS 区域 的列表，请参阅《Amazon Managed Grafana 用户指南》**中的[支持的区域](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html#AMG-supported-Regions)。
+ 在 IAM Identity Center 中创建至少一个用户。
+ 确保在 Amazon EKS 集群中安装 [Amazon EKS 容器组身份代理](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html#add-ons-pod-id)附加组件。Amazon EKS Pod Identity Agent 插件使可 SageMaker HyperPod 观察性插件能够获得与适用于 Prometheus 和日志的亚马逊托管服务进行交互的凭证。 CloudWatch 要检查 Amazon EKS 集群是否具有该附加组件，请转至 Amazon EKS 控制台，然后查看集群的**附加组件**选项卡。有关如何安装附加组件（如果未安装）的信息，请参阅《Amazon EKS 用户指南》**中的[创建附加组件（AWS 管理控制台）](https://docs.aws.amazon.com/eks/latest/userguide/creating-an-add-on.html#_create_add_on_console)。
**注意**  
标准实例组需要 Amazon EKS Pod 身份代理。对于受限实例组 (RIG)，由于网络隔离限制，Pod 身份代理不可用。集群的实例组执行 IAM 角色用于与适用于 Prometheus 的亚马逊托管服务进行交互。有关如何配置该角色的信息，请参阅[受限实例组的其他先决条件](#hyperpod-observability-addon-rig-prerequisites)。
+ 在安装可 SageMaker HyperPod 观察性插件之前，请确保您的 SageMaker HyperPod 集群中至少有一个节点。适用于此情况的最小 Amazon EC2 实例类型是 `4xlarge`。这个最小节点大小要求可确保该节点可以容纳可 SageMaker HyperPod 观察性插件创建的所有 Pod 以及集群上任何其他已经在运行的 Pod。
+ 将以下策略和权限添加到您的角色。
  + [AWS 托管策略： AmazonSageMakerHyperPodObservabilityAdminAccess](security-iam-awsmanpol-AmazonSageMakerHyperPodObservabilityAdminAccess.md)
  + [AWS 托管策略： AWSGrafanaWorkspacePermissionManagementV2](https://docs.aws.amazon.com/grafana/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSGrafanaWorkspacePermissionManagementV2)
  + [AWS 托管策略： AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)
  + 为 Amazon Managed Grafana 和 Amazon Elastic Kubernetes Service 附加组件访问权限设置所需的 IAM 角色的附加权限：

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "CreateRoleAccess",
                "Effect": "Allow",
                "Action": [
                    "iam:CreateRole",
                    "iam:CreatePolicy",
                    "iam:AttachRolePolicy",
                    "iam:ListRoles"
                ],
                "Resource": [
                    "arn:aws:iam::*:role/service-role/AmazonSageMakerHyperPodObservabilityGrafanaAccess*",
                    "arn:aws:iam::*:role/service-role/AmazonSageMakerHyperPodObservabilityAddonAccess*",
                    "arn:aws:iam::*:policy/service-role/HyperPodObservabilityAddonPolicy*",
                    "arn:aws:iam::*:policy/service-role/HyperPodObservabilityGrafanaPolicy*"
                ]
            }
        ]
    }
    ```

------
  + 管理 Amazon Managed Grafana 的 IAM Identity Center 用户所需的其他权限：

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "SSOAccess",
                "Effect": "Allow",
                "Action": [
                    "sso:ListProfileAssociations",
                    "sso-directory:SearchUsers",
                    "sso-directory:SearchGroups",
                    "sso:AssociateProfile",
                    "sso:DisassociateProfile"
                ],
                "Resource": [
                    "*"
                ]
            }
        ]
    }
    ```

------

## 受限实例组的其他先决条件
<a name="hyperpod-observability-addon-rig-prerequisites"></a>

如果您的集群包含受限实例组，则实例组执行角色必须有权向适用于 Prometheus 的亚马逊托管服务写入指标。当您使用 **Quick setup** 创建启用了可观察性的集群时，这些权限会自动添加到执行角色中。

如果您使用**自定义设置**或向现有 RIG 集群添加可观察性，请确保每个受限实例组的执行角色具有以下权限：

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "PrometheusAccess",
            "Effect": "Allow",
            "Action": "aps:RemoteWrite",
            "Resource": "arn:aws:aps:us-east-1:account_id:workspace/workspace-ID"
        }
    ]
}
```

将*us-east-1**account\$1id*、和*workspace-ID*替换为您的 AWS 区域账户 ID 和 Prometheus 工作空间 ID 的亚马逊托管服务。

确保您满足上述先决条件后，便可安装可观测性附加组件。

**快速安装可观测性附加组件**

1. 打开 Amazon A SageMaker I 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 转到集群的详细信息页面。

1. 在 “**控制面板**” 选项卡上，找到名为 “**HyperPod 监控和可观察性**” 的插件，然后选择 “**快速安装**”。

**自定义安装可观测性附加组件**

1. 转到集群的详细信息页面。

1. 在 “**控制面板**” 选项卡上，找到名为 “**HyperPod 监控和可观察性**” 的插件，然后选择 “**自定义安装**”。

1. 选择要查看的指标类别。有关这些指标类别的更多信息，请参阅 [SageMaker HyperPod 集群指标](hyperpod-observability-cluster-metrics.md)。

1. 指定是否要启用 Amazon CloudWatch 日志。

1. 指定是否希望该服务创建新的 Amazon Managed Service for Prometheus 工作区。

1. 要能够在 Amazon Managed Grafana 控制面板中查看指标，请选中标有**使用 Amazon Managed Grafana 工作区**的框。可以指定您自己的工作区，也可以让服务为您创建新工作区。
**注意**  
Amazon Managed Grafana 并不适用于所有可用的亚马逊 Prometheus 托管服务。 AWS 区域 不过，您可以在任何 AWS 区域 设置一个 Grafana 工作区，然后将其配置为从位于其他 AWS 区域的 Prometheus 工作区中获取指标数据。有关信息，请参阅[使用 AWS 数据来源配置添加 Amazon Managed Service for Prometheus 作为数据来源](https://docs.aws.amazon.com/grafana/latest/userguide/AMP-adding-AWS-config.html)和[连接到 Amazon Managed Service for Prometheus 和开源 Prometheus 数据来源](https://docs.aws.amazon.com/grafana/latest/userguide/prometheus-data-source.html)。

# Amazon SageMaker HyperPod 可观测性控制面板
<a name="hyperpod-observability-addon-viewing-dashboards"></a>

本主题介绍如何查看 Amazon SageMaker HyperPod (SageMaker HyperPod) 集群的指标控制面板以及如何向控制面板添加新用户。还介绍了不同类型的控制面板。

## 访问控制面板
<a name="hyperpod-observability-addon-accessing-dashboards"></a>

要在 Amazon Managed Grafana 中查看 SageMaker HyperPod 集群的指标，请执行以下步骤：

1. 打开 Amazon A SageMaker I 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 转到集群的详细信息页面。

1. 在 “**控制面板**” 选项卡上，找到 “**HyperPod 可观察性**” 部分，然后选择 “在 Gra **fana 中打开仪表板**”。

## 向 Amazon Managed Grafana 工作区添加新用户
<a name="hyperpod-observability-addon-adding-users"></a>

有关如何向 Amazon Managed Grafana 工作区添加用户的信息，请参阅《Amazon Managed Grafana 用户指南》**中的[将 AWS IAM Identity Center 与 Amazon Managed Grafana 工作区配合使用](https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG-SSO.html)。

## 可观测性控制面板
<a name="hyperpod-observability-addon-dashboards.title"></a>

 SageMaker HyperPod 可观测性插件在您的默认 Amazon Managed Grafana 工作区中提供了六个相互关联的控制面板。每个控制面板均为各种用户（例如数据科学家、机器学习工程师和管理员）提供有关集群中的各类资源与任务的深度洞察。

### 任务控制面板
<a name="hyperpod-observability-addon-task-dashboard"></a>

任务仪表板提供对 SageMaker HyperPod 任务资源利用率指标的全面监控和可视化。主面板会显示一个详细表格，该表格按父任务对资源使用情况进行分组，并展示各个容器组（pod）的 CPU、GPU 及内存利用率。交互式时间序列图表会跟踪所选容器组（pod）的 CPU 使用情况、系统内存消耗、GPU 利用率以及 GPU 内存使用情况，使您能够随时间变化监控性能趋势。该控制面板具备强大的筛选能力，可通过集群名称、命名空间、任务类型及特定容器组（pod）等变量进行筛选，以便用户深入了解特定的工作负载。此监控解决方案对于优化资源分配和保持机器学习工作负载的性能至关重要 SageMaker HyperPod。

### 训练控制面板
<a name="hyperpod-observability-addon-training-dashboard"></a>

训练控制面板可全面监控训练作业运行状况、可靠性和故障管理指标。该控制面板包含关键性能指标，其中包括任务创建数量、成功率和运行时间百分比，并详细跟踪自动重启事件与手动重启事件。它通过饼图和热图提供故障模式的详细可视化内容，这些图表会按类型和修复延迟细分事件，以便您能够识别反复出现的问题并提高任务可靠性。该界面包含对系统恢复时间、故障检测延迟等关键指标的实时监控，使其成为维护训练工作负载的高可用性的必备工具。此外，该控制面板的 24 小时衔接窗口能为分析训练作业性能的趋势与模式提供历史背景信息，帮助团队在潜在问题影响生产工作负载前主动应对这些问题。

### 推理控制面板
<a name="hyperpod-observability-addon-inference-dashboard"></a>

推理控制面板可跨多个维度全面监控模型部署性能和运行状况指标。它提供了活跃部署的详细概览，可实时监控请求速率、成功百分比以及延迟指标，助您跟踪模型服务性能并识别潜在瓶颈。该控制面板包含适用于语言模型的通用推理指标和令牌特定的指标（例如，到第一个令牌的时间（TTFT）和令牌吞吐量）的专用面板，这使其在监控大语言模型部署方面特别有用。此外，它还通过容器组（pod）和节点分配跟踪来提供基础设施见解，并提供详细错误分析功能，以帮助维护推理工作负载的高可用性和性能。

### 集群控制面板
<a name="hyperpod-observability-addon-cluster-dashboard"></a>

集群控制面板提供集群运行状况和性能的全面视图，可实时查看您的 Amazon SageMaker HyperPod (SageMaker HyperPod) 环境中的计算、内存、网络和存储资源。通过一个直观界面，您可一目了然地查看关键指标（包括实例总数、GPU 利用率、内存使用情况和网络性能），该界面每隔几秒自动更新一次数据。该控制面板分为多个逻辑部分，首先是高级集群概述部分，此部分显示运行状况良好的实例百分比和资源总数等关键指标，随后是有关 GPU 性能、内存利用率、网络统计数据和存储指标的详细部分。每个部分均包含交互式图表和面板，可让您深入了解特定指标，包括可自定义的时间范围和按集群名称、实例或 GPU ID 筛选选项。

### 文件系统控制面板
<a name="hyperpod-observability-addon-filesystem-dashboard"></a>

文件系统控制面板可让您全面了解文件系统（Amazon for Lustre） FSx 的性能和运行状况指标。仪表板跨多个可视化显示关键存储指标，包括可用容量、重复数据删除节省量、 CPU/memory 利用率、磁盘 IOPS、吞吐量和客户端连接。它使您可以监控系统级性能指标（如 CPU 和内存使用情况）以及特定于存储的指标（例如 read/write 操作和磁盘利用率模式）。该界面集成了警报监控功能和详细的时间序列图表，可用于跟踪一段时间内的性能趋势，这对于主动维护和容量规划很有用。此外，通过其全面的指标覆盖范围，该仪表板可帮助识别潜在的瓶颈，优化存储性能，并确保 SageMaker HyperPod 工作负载的文件系统运行可靠。

### GPU 分区信息中心
<a name="hyperpod-observability-addon-gpu-partition-dashboard"></a>

要在使用多实例 GPU (MIG) 配置时监控特定于 GPU 分区的指标，您需要安装或升级到最新版本的 Observability 插件。 SageMaker HyperPod 此插件提供全面的监控功能，包括特定于 MiG 的指标，例如分区计数、内存使用情况和每个 GPU 分区的计算利用率。

如果您已经安装了 SageMaker HyperPod Observability 但需要 MIG 指标支持，只需将插件更新到最新版本即可。此过程不会造成中断，并且会保留您现有的监视配置。

SageMaker HyperPod 自动公开特定于 MiG 的指标，包括：
+ `nvidia_mig_instance_count`: 每个配置文件的 MIG 实例数
+ `nvidia_mig_memory_usage`: 每个 MIG 实例的内存利用率
+ `nvidia_mig_compute_utilization`: 计算每个 MIG 实例的利用率

### 集群日志控制面板
<a name="hyperpod-observability-addon-cluster-logs-dashboard"></a>

集群日志仪表板提供集 SageMaker HyperPod 群 CloudWatch 日志的集中视图。控制面板查询`/aws/sagemaker/Clusters/{cluster-name}/{cluster-id}`日志组，并显示具有按实例 ID、日志流名称、日志级别（错误、警告、信息、调试）和自由文本搜索进行筛选的日志事件。仪表板包括一个显示一段时间内日志事件分布的事件时间表、一个总事件计数器、一个用于筛选结果的搜索事件时间轴以及一个包含完整日志消息、时间戳和日志流元数据的详细日志面板。此仪表板 CloudWatch用作其数据源，可用于调试集群问题、监控实例运行状况事件和调查训练作业失败。

# 探索亚马逊托管 Grafana 中的 SageMaker HyperPod 集群指标
<a name="hyperpod-observability-addon-exploring-metrics"></a>

将 Amazon Managed Grafana 连接到 Amazon Managed Service for Prometheus 工作区后，您可以使用 Grafana 的查询编辑器和可视化工具来浏览指标数据。Amazon Managed Grafana 提供了多种与 Prometheus 数据进行交互的方式，包括用于构建 PromQL 表达式的综合性查询编辑器、用于发现可用指标和标签的指标浏览器，以及用于创建动态控制面板的模板化功能。您可以执行范围查询以可视化时段内的时间序列数据，或执行即时查询以检索最新的值，并且可以选择以时间序列图、表格或热图形式呈现结果。有关配置查询设置、使用指标浏览器和利用模板化功能的详细信息，请参阅[使用 Prometheus 数据来源](https://docs.aws.amazon.com/grafana/latest/userguide/using-prometheus-datasource.html)。

# 自定义 SageMaker HyperPod 集群指标、仪表板和警报
<a name="hyperpod-observability-addon-customizing"></a>

借助 Amazon Managed Grafana，您可以创建综合性控制面板，以通过包含与数据来源相关的查询的面板来可视化数据。您可以从头开始构建控制面板、导入现有控制面板或导出创建的控制面板以进行共享和备份。Grafana 控制面板通过变量实现动态功能，这些变量可替换查询中的硬编码值，从而让您的可视化内容更具灵活性和交互性。您还可以使用注释、可复用库面板、版本历史记录管理和自定义链接等功能来增强控制面板，从而构建完整的监控与可观测性解决方案。有关创建、导入、配置和管理仪表板的 step-by-step指南，请参阅[构建仪表板](https://docs.aws.amazon.com/grafana/latest/userguide/v10-dash-building-dashboards.html)。

# 创建自定义 SageMaker HyperPod 集群指标
<a name="hyperpod-observability-addon-custom-metrics"></a>

Amazon SageMaker HyperPod (SageMaker HyperPod) 可观察性附加组件提供了数百个运行状况、性能和效率指标 out-of-the-box。除上述指标外，您可能还需要监控一些默认指标未涵盖的、特定于应用程序或业务需求的自定义指标，例如模型特定的性能指标、数据处理统计数据或应用程序特定的测量值。为了满足这一需求，你可以 OpenTelemetry 通过将 Python 代码片段集成到应用程序中来实现自定义指标收集。

要创建自定义指标，请先运行以下 shell 命令来安装检测 Python 应用程序以实现可观察性所需的核心 OpenTelemetry 组件。通过此安装，在 SageMaker HyperPod 集群上运行的 Python 应用程序可以发出自定义遥测数据。这些数据由收集 OpenTelemetry 器收集并转发到可观测性基础架构。

```
pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-grpc
```

以下示例脚本配置了一个 OpenTelemetry 指标管道，该管道会自动使用 pod 和节点信息标记指标，确保集群内的归因正确，并每秒将这些指标发送到 SageMaker HyperPod内置的可观测性堆栈。该脚本建立与 SageMaker HyperPod 指标收集器的连接，设置适当的资源属性以进行识别，并提供仪表接口，通过该接口您可以创建各种类型的指标（计数器、仪表或直方图）来跟踪应用程序性能的任何方面。自定义指标与系统指标一起与 SageMaker HyperPod 监控仪表板集成。这种集成支持通过单一界面实现全面的可观测性，在该界面中，您可以创建自定义警报、可视化内容和报告，从而监控工作负载的完整性能概况。

```
import os
from opentelemetry import metrics
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import OTLPMetricExporter
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.sdk.resources import Resource

# Get hostname/pod name
hostname = os.uname()[1]
node_name = os.getenv('NODE_NAME', 'unknown')

collector_endpoint = "hyperpod-otel-collector.hyperpod-observability:4317"

# Configure the OTLP exporter
exporter = OTLPMetricExporter(
    endpoint=collector_endpoint,
    insecure=True,
    timeout=5000  # 5 seconds timeout
)

reader = PeriodicExportingMetricReader(
    exporter,
    export_interval_millis=1000
)

resource = Resource.create({
    "service.name": "metric-test",
    "pod.name": hostname,
    "node.name": node_name
})

meter_provider = MeterProvider(
    metric_readers=[reader],
    resource=resource
)
metrics.set_meter_provider(meter_provider)

# Create a meter
meter = metrics.get_meter("test-meter")

# Create a counter
counter = meter.create_counter(
    name="test.counter",
    description="A test counter"
)

counter.add(1, {"pod": hostname, "node": node_name})
```

# SageMaker HyperPod 集群指标
<a name="hyperpod-observability-cluster-metrics"></a>

亚马逊 SageMaker HyperPod (SageMaker HyperPod) 向您的 Prometheus 亚马逊托管服务工作区发布了 9 个不同类别的各种指标。并非所有指标在默认情况下都是启用的，也并非所有指标都会显示在 Amazon Managed Grafana 工作区中。下表会显示在安装可观测性附加组件时默认启用的指标、包含可额外启用以获取更精细集群信息的指标的类别，以及这些指标在 Amazon Managed Grafana 工作区中的显示位置。


| 指标类别 | 是否默认启用？ | 是否有其他可用的高级指标？ | 在哪个 Grafana 控制面板可用？ | 
| --- | --- | --- | --- | 
| 训练指标 | 支持 | 是 | 训练 | 
| 推理指标 | 是 | 否 | 推理 | 
| 任务治理指标 | 否 | 是 | 无。查询 Amazon Managed Service for Prometheus 工作区以构建自己的控制面板。 | 
| 扩展指标 | 否 | 是 | 无。查询 Amazon Managed Service for Prometheus 工作区以构建自己的控制面板。 | 
| 集群指标 | 支持 | 是 | Cluster | 
| 实例指标 | 支持 | 是 | Cluster | 
| 加速计算指标 | 支持 | 是 | 任务，集群 | 
| 网络指标 | 否 | 是 | Cluster | 
| 文件系统 | 是 | 否 | 文件系统 | 

下表描述了可用于监控您的 SageMaker HyperPod 集群的指标，按类别排列。

## 受限实例组的指标可用性
<a name="hyperpod-observability-rig-metrics-availability"></a>

当您的集群包含受限实例组时，大多数指标类别都可以在受限节点上使用，但有以下例外情况和注意事项。您还可以根据自己选择的任何指标设置提醒。


| 指标类别 | 在 RIG 节点上可用吗？ | 注意 | 
| --- | --- | --- | 
| 训练指标 | 是 | Kubeflow 和 Kubernetes 容器指标已收集。高级训练 KPI 指标（来自训练指标代理）无法从 RIG 节点获得。 | 
| 推理指标 | 否 | 受限实例组不支持推理工作负载。 | 
| 任务治理指标 | 否 | Kueue 指标仅从标准节点（如果有）收集。 | 
| 扩展指标 | 否 | 仅从标准节点收集 KEDA 指标（如果有）。 | 
| 集群指标 | 是 | Kube 状态指标和 API 服务器指标可用。Kube State Metrics 优先安排在标准节点上，但可以在仅限 RIG 的集群中的受限节点上运行。 | 
| 实例指标 | 是 | Node Exporter 和 cAdvisor 指标是在包括受限节点在内的所有节点上收集的。 | 
| 加速计算指标 | 是 | DCGM 导出器在启用 GPU 的受限节点上运行。启用高级模式后，Neuron Monitor 将在启用 Neuron 的受限节点上运行。 | 
| 网络指标 | 是 | 启用高级模式后，EFA 导出器将在启用 EFA 的受限节点上运行。 | 
| 文件系统指标 | 是 | FSx for Lustre 集群利用率指标支持受限实例组。 | 

**注意**  
使用 Fluent Bit 的容器日志收集未部署在受限节点上。来自受限节点的集群日志可通过 SageMaker HyperPod 平台获取，与可观察性插件无关。您可以在 “集群日志” 仪表板中查看这些日志。

## 训练指标
<a name="hyperpod-observability-training-metrics"></a>

使用这些指标来跟踪在 SageMaker HyperPod 集群上执行的训练任务的性能。


| 指标名称或类型 | 说明 | 是否默认启用？ | 指标来源 | 
| --- | --- | --- | --- | 
| Kubeflow 指标 | [https://github.com/kubeflow/教练](https://github.com/kubeflow/trainer) | 是 | Kubeflow | 
| Kubernetes 容器组（pod）指标 | [https://github.com/kubernetes/kube-state-metrics](https://github.com/kubernetes/kube-state-metrics) | 是 | Kubernetes | 
| training\$1uptime\$1percentage | 总窗口时长中训练时长所占的百分比 | 否 | SageMaker HyperPod 培训操作员 | 
| training\$1manual\$1recovery\$1count | 已对作业执行的手动重启总次数 | 否 | SageMaker HyperPod 培训操作员 | 
| training\$1manual\$1downtime\$1ms | 因手动干预导致作业中断的总时长（以毫秒为单位） | 否 | SageMaker HyperPod 培训操作员 | 
| training\$1auto\$1recovery\$1count | 自动恢复总次数 | 否 | SageMaker HyperPod 培训操作员 | 
| training\$1auto\$1recovery\$1downtime | 故障恢复期间基础设施的总开销时长（以毫秒为单位） | 否 | SageMaker HyperPod 培训操作员 | 
| training\$1fault\$1count | 训练期间遇到的故障总数 | 否 | SageMaker HyperPod 培训操作员 | 
| training\$1fault\$1type\$1count | 按类型划分的故障分布 | 否 | SageMaker HyperPod 培训操作员 | 
| training\$1fault\$1recovery\$1time\$1ms | 每种类型的故障的恢复时间（以毫秒为单位） | 否 | SageMaker HyperPod 培训操作员 | 
| training\$1time\$1ms | 实际训练所花费的总时长（以毫秒为单位） | 否 | SageMaker HyperPod 培训操作员 | 

## 推理指标
<a name="hyperpod-observability-inference-metrics"></a>

使用这些指标来跟踪集 SageMaker HyperPod 群上推理任务的性能。


| 指标名称或类型 | 说明 | 是否默认启用？ | 指标来源 | 
| --- | --- | --- | --- | 
| model\$1invocations\$1total | 模型的调用请求总数 | 是 | SageMaker HyperPod 推理运算符 | 
| model\$1errors\$1total | 模型调用期间的错误总数 | 是 | SageMaker HyperPod 推理运算符 | 
| model\$1concurrent\$1requests | 活跃的并发模型请求数 | 是 | SageMaker HyperPod 推理运算符 | 
| model\$1latency\$1milliseconds | 模型调用延迟（以毫秒为单位） | 是 | SageMaker HyperPod 推理运算符 | 
| model\$1ttfb\$1milliseconds | 模型首字节时间延迟（以毫秒为单位） | 是 | SageMaker HyperPod 推理运算符 | 
| TGI | 这些指标可用于监控 TGI 的性能、自动扩缩部署并帮助识别瓶颈。有关指标的详细列表，请参阅 [https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README .md。](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) | 是 | 模型容器 | 
| LMI | 这些指标可用于监控 LMI 的性能并帮助识别瓶颈。有关指标的详细列表，请参阅 [https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README .md。](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) | 是 | 模型容器 | 

## 任务治理指标
<a name="hyperpod-observability-task-governance-metrics"></a>

使用这些指标来监控 SageMaker HyperPod 集群上的任务管理和资源分配。


| 指标名称或类型 | 说明 | 是否默认启用？ | 指标来源 | 
| --- | --- | --- | --- | 
| Kueue | 见 [https://kueue.sigs.k8s。 io/docs/reference/metrics](https://kueue.sigs.k8s.io/docs/reference/metrics/)/。 | 否 | Kueue | 

## 扩展指标
<a name="hyperpod-observability-scaling-metrics"></a>

使用这些指标来监控集群上的自动缩放行为和性能。 SageMaker HyperPod 


| 指标名称或类型 | 说明 | 是否默认启用？ | 指标来源 | 
| --- | --- | --- | --- | 
| KEDA 操作符指标 | 见 [https://keda。 sh/docs/2.17/integrations/prometheus/\$1operator](https://keda.sh/docs/2.17/integrations/prometheus/#operator)。 | 否 | Kubernetes 事件驱动型自动扩缩器（KEDA） | 
| KEDA Webhook 指标 | 见 [https://keda。 sh/docs/2.17/integrations/prometheus/\$1admission-webhooks](https://keda.sh/docs/2.17/integrations/prometheus/#admission-webhooks)。 | 否 | Kubernetes 事件驱动型自动扩缩器（KEDA） | 
| KEDA 指标服务器指标 | 见 [https://keda。 sh/docs/2.17/integrations/prometheus/\$1metrics-服务器。](https://keda.sh/docs/2.17/integrations/prometheus/#metrics-server) | 否 | Kubernetes 事件驱动型自动扩缩器（KEDA） | 

## 集群指标
<a name="hyperpod-observability-cluster-health-metrics"></a>

使用这些指标可监控集群的整体运行状况和资源分配。


| 指标名称或类型 | 说明 | 是否默认启用？ | 指标来源 | 
| --- | --- | --- | --- | 
| 集群运行状况 | Kubernetes API 服务器指标。见 [https://kubernetes。 io/docs/reference/instrumentation/metrics](https://kubernetes.io/docs/reference/instrumentation/metrics/)/。 | 是 | Kubernetes | 
| Kubestate | 参见 [https://github.com/kubernetes/kube-state-metrics/tree/main/docs\$1default-resources](https://github.com/kubernetes/kube-state-metrics/tree/main/docs#default-resources)。 | 有限 | Kubernetes | 
| KubeState 高级 | 参见 [https://github.com/kubernetes/kube-state-metrics/tree/main/docs\$1optional-resources](https://github.com/kubernetes/kube-state-metrics/tree/main/docs#optional-resources)。 | 否 | Kubernetes | 

## 实例指标
<a name="hyperpod-observability-instance-metrics"></a>

使用这些指标可监控单个实例的性能和运行状况。


| 指标名称或类型 | 说明 | 是否默认启用？ | 指标来源 | 
| --- | --- | --- | --- | 
| 节点指标 | 看见 [https://github.com/prometheus/node\$1exporter？ tab = readme-ov-file \$1 enabled-by-default](https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default)。 | 是 | Kubernetes | 
| 容器指标 | Cadvisor 公开的容器指标。见 [https://github.com/google/cadvisor](https://github.com/google/cadvisor)。 | 是 | Kubernetes | 

## 加速计算指标
<a name="hyperpod-observability-accelerated-compute-metrics"></a>

使用这些指标可监控集群中单个加速计算设备的性能、运行状况和利用率。

**注意**  
在集群上启用使用 MIG（多实例 GPU）的 GPU 分区时，DCGM 指标会自动提供分区级别的粒度，用于监控单个 MIG 实例。每个 MIG 分区都作为单独的 GPU 设备公开，具有自己的温度、功耗、内存利用率和计算活动指标。这使您可以独立跟踪每个 GPU 分区的资源使用情况和运行状况，从而可以精确监控在部分 GPU 资源上运行的工作负载。有关配置 GPU 分区的更多信息，请参阅[在亚马逊中使用 GPU 分区 SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)。


| 指标名称或类型 | 说明 | 是否默认启用？ | 指标来源 | 
| --- | --- | --- | --- | 
| NVIDIA GPU | DCGM 指标。见 [https://github.com/NVIDIA/dcgm-exporter/blob/main/etc/dcp-metrics-included.csv](https://github.com/NVIDIA/dcgm-exporter/blob/main/etc/dcp-metrics-included.csv)。 | 有限 |  NVIDIA Data Center GPU Manager（DCGM）  | 
|  NVIDIA GPU（高级）  | 以下 CSV 文件中注释掉的 DCGM 指标：[https://github.com/NVIDIA/dcgm--metrics-included.csv exporter/blob/main/etc/dcp](https://github.com/NVIDIA/dcgm-exporter/blob/main/etc/dcp-metrics-included.csv) | 否 |  NVIDIA Data Center GPU Manager（DCGM）  | 
| AWS Trainium | Neuron 指标。参见 [https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide .html\$1。neuron-monitor-nc-counters](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide.html#neuron-monitor-nc-counters) | 否 | AWS 神经元监视器 | 

## 网络指标
<a name="hyperpod-observability-network-metrics"></a>

使用这些指标可监控集群中 Elastic Fabric Adapter（EFA）的性能和运行状况。


| 指标名称或类型 | 说明 | 是否默认启用？ | 指标来源 | 
| --- | --- | --- | --- | 
| EFA | 参见 [https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation\$1and\$1observability/3.efa-node-exporter/README.md.](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md) | 否 | Elastic Fabric Adapter | 

## 文件系统指标
<a name="hyperpod-observability-file-system-metrics"></a>


| 指标名称或类型 | 说明 | 是否默认启用？ | 指标来源 | 
| --- | --- | --- | --- | 
| 文件系统 | 来自亚马逊 FSx 的 Amazon for Lustre 指标： CloudWatch[使用亚马逊进行监控 CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html)。 | 是 | 亚马逊 f FSx or Lustre | 

# 预配置的警报
<a name="hyperpod-observability-addon-alerts"></a>

Amazon SageMaker HyperPod (SageMaker HyperPod) 可观察性插件启用集群和工作负载的默认警报，以便在系统检测到集群性能不佳的常见早期指标时通知您。这些警报是在 Amazon Managed Grafana 内置警报系统中定义的。有关如何修改这些预配置的警报或创建新警报的信息，请参阅《Amazon Managed Grafana 用户指南》**中的 [Grafana 版本 10 中的警报](https://docs.aws.amazon.com/grafana/latest/userguide/v10-alerts.html)。以下 YAML 显示了默认警报。

```
groups:
- name: sagemaker_hyperpod_alerts
  rules:
  # GPU_TEMP_ABOVE_80C
  - alert: GPUHighTemperature
    expr: DCGM_FI_DEV_GPU_TEMP > 80
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "GPU Temperature Above 80C"
      description: "GPU {{ $labels.gpu }} temperature is {{ $value }}°C."

  # GPU_TEMP_ABOVE_85C  
  - alert: GPUCriticalTemperature  
    expr: DCGM_FI_DEV_GPU_TEMP > 85
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "GPU Temperature Above 85C"
      description: "GPU {{ $labels.gpu }} temperature is {{ $value }}°C."

  # GPU_MEMORY_ERROR
  # Any ECC double-bit errors indicate serious memory issues requiring immediate attention
  - alert: GPUMemoryErrorDetected
    expr: DCGM_FI_DEV_ECC_DBE_VOL_TOTAL > 0 or DCGM_FI_DEV_ECC_DBE_AGG_TOTAL > DCGM_FI_DEV_ECC_DBE_AGG_TOTAL offset 5m
    labels:
      severity: critical
    annotations:
      summary: "GPU ECC Double-Bit Error Detected"
      description: "GPU {{ $labels.gpu }} has detected ECC double-bit errors."

  # GPU_POWER_WARNING
  # Sustained power limit violations can impact performance and stability
  - alert: GPUPowerViolation
    expr: DCGM_FI_DEV_POWER_VIOLATION > 100
    for: 5m
    labels:
      severity: warning  
    annotations:
      summary: "GPU Power Violation"
      description: "GPU {{ $labels.gpu }} has been operating at power limit for extended period."

  # GPU_NVLINK_ERROR
  # NVLink errors above threshold indicate interconnect stability issues
  - alert: NVLinkErrorsDetected
    expr: DCGM_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL > 0 or DCGM_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL > 10
    labels:
      severity: warning
    annotations:
      summary: "NVLink Errors Detected" 
      description: "GPU {{ $labels.gpu }} has detected NVLink errors."

  # GPU_THERMAL_VIOLATION  
  # Immediate alert on thermal violations to prevent hardware damage
  - alert: GPUThermalViolation
    expr: increase(DCGM_FI_DEV_THERMAL_VIOLATION[5m]) > 0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "GPU Thermal Violation Detected"
      description: "GPU {{ $labels.gpu }} has thermal violations on node {{ $labels.Hostname }}"

  # GPU_XID_ERROR
  # XID errors indicate driver or hardware level GPU issues requiring investigation
  - alert: GPUXidError
    expr: DCGM_FI_DEV_XID_ERRORS > 0
    for: 0m
    labels:
      severity: critical
    annotations:
      summary: "GPU XID Error Detected"
      description: "GPU {{ $labels.gpu }} experienced XID error {{ $value }} on node {{ $labels.Hostname }}"

  # MIG_CONFIG_FAILURE
  # MIG configuration failures indicate issues with GPU partitioning setup
  - alert: MIGConfigFailure
    expr: kubelet_node_name{nvidia_com_mig_config_state="failed"} > 0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "MIG Configuration Failed"
      description: "MIG configuration failed on node {{ $labels.instance }}"

  # DISK_SPACE_WARNING
  # 90% threshold ensures time to respond before complete disk exhaustion
  - alert: NodeDiskSpaceWarning
    expr: (node_filesystem_size_bytes - node_filesystem_free_bytes) / node_filesystem_size_bytes * 100 > 90
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "High Disk Usage"
      description: "Node {{ $labels.instance }} disk usage is above 90%"

  # FSX_STORAGE_WARNING
  # 80% FSx utilization allows buffer for burst workloads
  - alert: FsxLustreStorageWarning
    expr: fsx_lustre_storage_used_bytes / fsx_lustre_storage_capacity_bytes * 100 > 80
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "High FSx Lustre Usage"
      description: "FSx Lustre storage usage is above 80% on file system {{ $labels.filesystem_id }}"
```

# 对 Amazon SageMaker HyperPod 可观测性附加组件进行故障排除
<a name="hyperpod-observability-addon-troubleshooting"></a>

使用以下指南来解决 Amazon SageMaker HyperPod (SageMaker HyperPod) 可观察性附加组件的常见问题。

## 解决 Amazon Managed Grafana 中的指标缺失问题
<a name="troubleshooting-missing-metrics"></a>

如果 Amazon Managed Grafana 控制面板中未显示指标，请执行以下步骤来识别和解决问题。

### 验证 Amazon Managed Service for Prometheus 与 Amazon Managed Grafana 的连接
<a name="verify-amp-grafana-connection"></a>

1. 登录 Amazon Managed Grafana 控制台。

1. 在左侧窗格中，选择**所有工作区**。

1. 在**工作区**表中，选择您的工作区。

1. 在工作区的详细信息页面中，选择**数据来源**选项卡。

1. 确认 Amazon Managed Service for Prometheus 数据来源存在。

1. 检查连接设置：
   + 确认端点 URL 正确。
   + 确认已正确配置 IAM 身份验证。
   + 选择 **Test connection (测试连接)**。确认状态为**数据来源正在运行**。

### 确认 Amazon EKS 加载项状态
<a name="verify-eks-addon-status"></a>

1. 在 [https://console.aws.amazon.com/eks/home\$1/](https://console.aws.amazon.com/eks/home#/clusters) clusters 中打开 Amazon EKS 控制台。

1. 选择您的集群。

1. 选择**附加组件**选项卡。

1. 确认已列出 SageMaker HyperPod 可观测性插件且其状态是否为 **AC** TIVE。

1. 如果状态不是 **ACTIVE**，请参阅[附加组件安装失败故障排除](#troubleshooting-addon-installation-failures)。

### 确认容器组身份关联
<a name="verify-pod-identity-association"></a>

1. 在 [https://console.aws.amazon.com/eks/home\$1/](https://console.aws.amazon.com/eks/home#/clusters) clusters 中打开 Amazon EKS 控制台。

1. 选择您的集群。

1. 在集群详细信息页面上，选择**访问**选项卡。

1. 在**容器组身份关联**表中，选择具有以下属性值的关联：
   + **命名空间**：`hyperpod-observability`
   + **服务账户**：`hyperpod-observability-operator-otel-collector`
   + **附加组件**：`amazon-sagemaker-hyperpod-observability`

1. 确保附加到此关联的 IAM 角色具有以下权限。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PrometheusAccess",
               "Effect": "Allow",
               "Action": "aps:RemoteWrite",
               "Resource": "arn:aws:aps:us-east-1:111122223333:workspace/workspace-ID"
           },
           {
               "Sid": "CloudwatchLogsAccess",
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams",
                   "logs:PutLogEvents",
                   "logs:GetLogEvents",
                   "logs:FilterLogEvents",
                   "logs:GetLogRecord",
                   "logs:StartQuery",
                   "logs:StopQuery",
                   "logs:GetQueryResults"
               ],
               "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/Clusters/*",
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/Clusters/*:log-stream:*"
               ]
           }
       ]
   }
   ```

------

1. 确保附加到此关联的 IAM 角色具有以下信任策略。确认源 ARN 和源账户正确。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
               "Effect": "Allow",
               "Principal": {
                   "Service": "pods.eks.amazonaws.com"
               },
               "Action": [
                   "sts:AssumeRole",
                   "sts:TagSession"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:cluster/cluster-name",
                       "aws:SourceAccount": "111122223333"
                   }
               }
           }
       ]
   }
   ```

------

### 查看 Amazon Managed Service for Prometheus 限制
<a name="check-amp-throttling"></a>

1. 登录 AWS 管理控制台 并打开 Service Quotas 控制台，网址为[https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/)。

1. 在**托管配额**框中，搜索并选择 Amazon Managed Service for Prometheus。

1. 选择**每个工作区的活动序列**配额。

1. 在**资源级限额**选项卡中，选择 Amazon Managed Service for Prometheus 工作区。

1. 确保利用率低于您的当前配额。

1. 如果您已达到配额限制，请通过选择工作区左侧的单选按钮来选择该工作区，然后选择**请求在资源级别增加**。

### 验证是否已启用 KV 缓存和智能路由
<a name="verify-caching-routing"></a>

如果`KVCache Metrics`仪表板缺失，则该功能未启用或未在中提及端口`modelMetrics`。有关如何启用此功能的更多信息，请参阅中的步骤 1 和步骤 3 [配置 KV 缓存和智能路由以提高性能](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route)。

如果`Intelligent Router Metrics`仪表板缺失，请启用该功能以显示它们。有关如何启用此功能的更多信息，请参阅[配置 KV 缓存和智能路由以提高性能](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route)。

## 附加组件安装失败故障排除
<a name="troubleshooting-addon-installation-failures"></a>

如果无法安装可观测性附加组件，请执行以下步骤来诊断并解决问题。

### 查看运行状况探针状态
<a name="check-health-probe-status"></a>

1. 在 [https://console.aws.amazon.com/eks/home\$1/](https://console.aws.amazon.com/eks/home#/clusters) clusters 中打开 Amazon EKS 控制台。

1. 选择您的集群。

1. 选择**附加组件**选项卡。

1. 选择出现故障的附加组件。

1. 查看**运行状况问题**部分。

1. 如果运行状况问题与凭证或容器组身份有关，请参阅[确认容器组身份关联](#verify-pod-identity-association)。此外，还需确保容器组身份代理附加组件正在集群中运行。

1. 查看管理器日志中的错误。有关说明，请参阅[查看管理器日志](#review-manager-logs)。

1. 请联系 S AWS upport 并提供问题详情。

### 查看管理器日志
<a name="review-manager-logs"></a>

1. 获取附加组件管理器容器组（pod）：

   ```
   kubectl logs -n hyperpod-observability -l control-plane=hyperpod-observability-controller-manager
   ```

1. 对于紧急问题，请联系 支持。

## 查看所有可观测性容器组（pod）
<a name="review-all-observability-pods"></a>

 SageMaker HyperPod 可观测性插件创建的所有 pod 都在`hyperpod-observability`命名空间中。要获取这些容器组（pod）的状态，请运行以下命令。

```
kubectl get pods -n hyperpod-observability
```

查找状态为 `pending` 或 `crashloopbackoff` 的容器组（pod）。运行以下命令可获取这些待处理或出现故障的容器组（pod）的日志。

```
kubectl logs -n hyperpod-observability pod-name
```

如果您在日志中未找到错误，请运行以下命令来描述容器组（pod）并查找错误。

```
kubectl describe -n hyperpod-observability pod pod-name
```

要获取更多上下文，请运行以下两条命令来描述这些容器组（pod）的部署和 DaemonSet。

```
kubectl describe -n hyperpod-observability deployment deployment-name
```

```
kubectl describe -n hyperpod-observability daemonset daemonset-name
```

## 对处于 pending 状态的容器组（pod）进行故障排除
<a name="pods-stuck-in-pending"></a>

如果您看到有处于 `pending` 状态的 pod，请确保该节点足够大，可以容纳所有 Pod。要确认这一点，请执行以下步骤。

1. 在 [https://console.aws.amazon.com/eks/home\$1/](https://console.aws.amazon.com/eks/home#/clusters) clusters 中打开 Amazon EKS 控制台。

1. 选择您的集群。

1. 选择集群的**计算**选项卡。

1. 选择具有最小实例类型的节点。

1. 在容量分配部分，查找可用的容器组（pod）。

1. 如果没有可用的容器组（pod），则需要更大的实例类型。

对于紧急问题，请联系 AWS 支持。

## 对受限实例组的可观察性进行故障排除
<a name="troubleshooting-rig-observability"></a>

使用以下指南来解决具有受限实例组的集群所特有的问题。

### 可观察性 pod 无法在受限节点上启动
<a name="troubleshooting-rig-pods-not-starting"></a>

如果可观察性 Pod 未在受限节点上启动，请检查 pod 状态和事件：

```
kubectl get pods -n hyperpod-observability -o wide
kubectl describe pod pod-name -n hyperpod-observability
```

常见原因包括：
+ **图像拉取失败：**如果可观察性容器镜像尚未列入受限节点的许可名单，Pod 事件可能会显示图像拉取错误。确保您运行的是最新版本的可观测性插件。如果升级后问题仍然存在，请与联系 支持。
+ **污点容忍度：验证** Pod 规格是否包含受限节点所需的容忍度。启用 RIG 支持后，从版本开始的插件`v1.0.5-eksbuild.1`会自动添加此容忍度。如果您使用的是旧版本，请升级到最新版本。

### 查看受限节点上的 Pod 的日志
<a name="troubleshooting-rig-viewing-logs"></a>

该`kubectl logs`命令不适用于在受限节点上运行的 Pod。这是预期的限制，因为日志流所需的通信路径在受限节点上不可用。

要查看来自受限节点的日志，请使用 Amazon Managed Grafana 中的**集群日志**控制面板，它可以 CloudWatch 直接查询日志。您可以按实例 ID、日志流、日志级别和自由文本搜索进行筛选，以查找相关的日志条目。

### 同时包含标准节点和受限节点的集群中的 DNS 解析失败
<a name="troubleshooting-rig-dns-resolution"></a>

在混合集群（同时包含标准实例组和受限实例组的集群）中，标准节点上的 Pod 在尝试访问 AWS 服务终端节点（例如适用于 Prometheus 的 Amazon 托管服务或）时可能会遇到 DNS 解析超时。 CloudWatch

**原因：**该`kube-dns`服务有来自标准 CoreDNS 容器和 RIG CoreDNS 容器的端点。由于网络隔离，标准节点 pod 无法到达 RIG CoreDNS 端点。当从标准节点 pod 向 R `kube-proxy` IG CoreDNS 终端节点对 DNS 请求进行负载平衡时，请求会超时。

**解决方案：**在`kube-dns`服务`internalTrafficPolicy: Local`上进行设置，以便 pod 只能到达其本地节点上的 CoreDNS：

```
kubectl patch svc kube-dns -n kube-system -p '{"spec":{"internalTrafficPolicy":"Local"}}'
```

应用此补丁后，重启受影响的可观察性 pod：

```
kubectl delete pods -n hyperpod-observability -l app.kubernetes.io/name=hyperpod-node-collector
```

### 来自受限节点的指标未到达适用于 Prometheus 的亚马逊 Prometheus 托管服务
<a name="troubleshooting-rig-metrics-not-reaching-amp"></a>

如果受限节点的指标未出现在您的 Amazon Prometheus 托管服务 Prometheus 工作区中：

1. **验证执行角色权限。**确保受限实例组的执行角色拥有`aps:RemoteWrite`访问您的 Prometheus 工作空间的权限。有关更多信息，请参阅 [受限实例组的其他先决条件](hyperpod-observability-addon-setup.md#hyperpod-observability-addon-rig-prerequisites)。

1. **检查节点收集器 Pod 的状态。**运行以下命令并验证节点收集器 Pod 是否在受限节点上运行：

   ```
   kubectl get pods -n hyperpod-observability | grep node-collector
   ```

1. **检查中央收集器部署。**在节点受限的集群中，该插件在每个网络边界部署一个中央收集器。确认每个边界都有一个中央收集器：

   ```
   kubectl get deployments -n hyperpod-observability | grep central-collector
   ```

1. **检查 pod 事件是否有错误。**在收集器窗格`kubectl describe`上使用以查找错误事件：

   ```
   kubectl describe pod collector-pod-name -n hyperpod-observability
   ```

如果在验证上述内容后问题仍然存在，请与联系 支持。

### Pod 身份验证不适用于受限实例组节点
<a name="troubleshooting-rig-pod-identity"></a>

[确认容器组身份关联](#verify-pod-identity-association)故障排除步骤仅适用于标准节点。在受限节点上，插件使用集群实例组执行角色代替 Amazon EKS Pod 身份进行身份 AWS 验证。如果受限节点中缺少指标，请验证执行角色权限而不是 Pod 身份关联。

### Fluent Bit 无法在受限节点上运行
<a name="troubleshooting-rig-fluent-bit"></a>

这是预料之中的行为。故意不将 Fluent Bit 部署在受限节点上。来自受限节点的日志 CloudWatch通过 SageMaker HyperPod 平台发布到，与可观察性插件无关。使用 Amazon Managed Grafana 中的**集群日志控制面板查看**这些日志。

# 通过 Amazon 实现可观察性 CloudWatch
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci"></a>

使用 [Amazon CloudWatch Container Insigh](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) ts 收集、汇总和汇总来自与集群关联的 EKS 集群上的容器化应用程序和微服务的指标和日志。 HyperPod 

Amazon CloudWatch Insights 收集计算资源的指标，例如 CPU、内存、磁盘和网络。Container Insights 还提供诊断信息（如容器重新启动失败），以帮助您查明问题并快速解决问题。您还可以对容器洞察收集的指标设置 CloudWatch 警报。

要查找指标的完整列表，请参阅[《Amazon EKS 用户指南》](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html)中的 *Amazon EKS and Kubernetes Container Insights 指标*。

## 安装 CloudWatch 容器见解
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-setup"></a>

集群管理员用户必须按照[安装 CloudWatch 代理中的说明设置 CloudWatch Container Insights，使用 Amazon O CloudWatch bservability EKS 插件或《*CloudWatch 用户指南》*中的 Helm 图表](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html)。有关 Amazon EKS 附加组件的更多信息，另请参阅亚马逊 EKS *用户指南中的安装亚马逊 O CloudWatch bservability EKS* [附加组件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html)。

安装完成后，验证 O CloudWatch bservability 插件在 EKS 集群插件选项卡中是否可见。控制面版加载可能需要几分钟时间。

**注意**  
SageMaker HyperPod 需要 CloudWatch Insight v2.0.1-eksbuild.1 或更高版本。

![\[CloudWatch Observability service card showing status, version, and IAM role information.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/hyperpod-eks-CIaddon.png)


# 访问 CloudWatch 容器见解控制面板
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-access-dashboard"></a>

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 选择 **Insights**，然后选择 **Container Insights**。

1. 选择与您正在使用的集群一起设置的 EKS HyperPod 集群。

1. 查看 Pod/Cluster 关卡指标。

![\[Performance monitoring dashboard for EKS 集群 showing node status, resource utilization, and pod metrics.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/hyperpod-eks-CIdashboard.png)


## 访问 CloudWatch 容器见解日志
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-access-log"></a>

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 选择 **Logs**（日志），然后选择 **Log groups**（日志组）。

将 HyperPod 集群与 Amazon Conta CloudWatch iner Insights 集成后，您可以按以下格式访问相关的日志组：`/aws/containerinsights /<eks-cluster-name>/*`。在此日志组中，您可以查找和浏览各种类型的日志，例如性能日志、主机日志、应用程序日志和数据面板日志。