Amazon SageMaker AI エンドポイントに関する Amazon CloudWatch メトリクスが欠けているため、トラブルシューティングしたいです。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
CloudWatch メトリクスの名前空間とディメンションを確認する
正しい CloudWatch 名前空間をチェックしていることを確認します。
- AWS/SageMaker 名前空間に InvokeEndpoint に対する API コールのモデルロードメトリクスが含まれている。
- aws/sagemaker/Endpoints 名前空間に InvokeEndpoint に対する API コールのインスタンスメトリクスが含まれている。
- aws/sagemaker/InferenceComponents 名前空間に、推論コンポーネントをホストするエンドポイントの InvokeEndpoint に対する API コールのメトリクスが含まれている。
詳細については、「Amazon CloudWatch で Amazon SageMaker AI を監視するためのメトリクス」を参照してください。
なお、SageMaker AI のエンドポイントメトリクスは、EndpointName と VariantName です。
IAM アクセス許可を確認します。
CloudWatch にメトリクスを公開してロググループを管理するには、エンドポイントに関連付けられた AWS Identity and Access Management (IAM) ロールに必要な IAM アクセス許可を付与する必要があります。
アクセス許可の例
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricData",
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}]
}
エンドポイントを作成または更新してから、20 分経過後に CloudWatch メトリクスを確認する
エンドポイントを作成または更新した後、CloudWatch メトリクスが利用可能になるまでに最大 20 分かかる場合があります。メトリクスを確認する前に、20 分以上待機してください。
SageMaker AI の CloudWatch Logs を確認する
SageMaker AI のログを参照し、メトリクスが CloudWatch に発行されない原因と考えられる問題を特定します。SageMaker のログにアクセスするには、CloudWatch コンソールを使用します。または、次の get-log-events コマンドを実行します。
aws logs get-log-events --log-group-name example-sagemaker-log-group-name
注: example-sagemaker-log-group-name は、お使いの SageMaker AI ロググループ名に置き換えます。
メトリクスの保持期間を確認する
CloudWatch はメトリクスデータを 15 か月間保持します。
SageMaker AI エンドポイントの過去の CloudWatch メトリクスを表示するには、次の手順を実行します。
- CloudWatch コンソールを開きます。
- ナビゲーションペインで [メトリクス] を選択した後、[すべてのメトリクス] を選択します。
- 表示するメトリクスを選択します。
- 指定した期間のメトリクスに関する過去データのグラフを表示するために、時間範囲を設定します。
詳細については、「CloudWatch でログを記録する」を参照してください。
エンドポイントの呼び出しアクティビティを確認する
CloudWatch は、エンドポイントのトラフィックが安定している時期にメトリクスを生成します。SageMaker AI エンドポイントにトラフィックまたは呼び出しアクティビティがあるかどうかを確認します。
エンドポイントの呼び出し履歴を確認するには、次の手順を実行します。
- SageMaker AI コンソールを開きます。
- ナビゲーションペインで [推論] を選択した後、[エンドポイント] を選択します。
- 該当するエンドポイントを選択します。
- [監視] タブを選択した後、[呼び出し履歴の表示] を選択します。
または、次の sagemaker-runtime コマンドを実行してエンドポイントの呼び出し履歴を取得します。
aws sagemaker-runtime get-invocation-history --endpoint-name example-endpoint-name [--max-results example-number] [--starting-time example-timestamp]
注: 実際のものでそれぞれ、example-endpoint-name をエンドポイント名に、example-number を表示させる結果の最大数に、example-timestamp を開始時間に置き換えます。