

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 推論管道日誌和指標
<a name="inference-pipeline-logs-metrics"></a>

為了維護 Amazon SageMaker AI 資源的可靠性、可用性和效能，監控很重要。若要監控推論管道效能並排除故障，請使用 Amazon CloudWatch 日誌和錯誤訊息。如需 SageMaker AI 提供之監控工具的相關資訊，請參閱[監控 Amazon SageMaker AI 中的 AWS 資源](monitoring-overview.md)。

## 使用指標來監控多容器模型
<a name="inference-pipeline-metrics"></a>

若要監控推論管道中的多容器模型，請使用 Amazon CloudWatch。CloudWatch 可收集原始資料，將這些資料轉換為可讀取且幾近即時的指標。SageMaker AI 訓練任務和端點會在 `AWS/SageMaker` 命名空間中寫入 CloudWatch 指標和日誌。

下表列出以下各項的指標和維度：
+ 端點調用
+ 訓練任務、批次轉換任務和端點執行個體

*維度*是可唯一識別指標的名稱/值組。您可以對指標指派最多 10 個維度。如需有關使用 CloudWatch 進行監控的詳細資訊，請參閱[Amazon CloudWatch 中的 Amazon SageMaker AI 指標](monitoring-cloudwatch.md)。

**端點調用指標**

`AWS/SageMaker` 命名空間包含從呼叫到 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html) 的下列要求指標。

指標每隔 1 分鐘回報一次。


| 指標 | 說明 | 
| --- | --- | 
| Invocation4XXErrors | 模型傳回 `4xx` HTTP 回應代碼以回應的 `InvokeEndpoint` 請求數量。對於每個 `4xx` 回應，SageMaker AI 會傳送 `1`。<br />單位：無<br />有效的統計資訊：`Average`、`Sum` | 
| Invocation5XXErrors | 模型傳回 `5xx` HTTP 回應代碼以回應的 `InvokeEndpoint` 請求數量。對於每個 `5xx` 回應，SageMaker AI 會傳送 `1`。<br />單位：無<br />有效的統計資訊：`Average`、`Sum` | 
| Invocations | 傳送到模型端點的 `number of InvokeEndpoint` 請求。<br />若要取得傳送至模型端點的請求總數，請使用 `Sum` 統計。<br />單位：無<br />有效的統計資訊：`Sum`、`Sample Count` | 
| InvocationsPerInstance | 傳送到模型的端點調用數量，由 `InstanceCount` 在每個 `ProductionVariant` 中進行標準化。SageMaker AI 將 1/`numberOfInstances` 做為各個請求的值傳送，而 `numberOfInstances` 為請求時間端點後的 ProductionVariant 使用中執行個體數量。<br />單位：無<br />有效的統計資訊：`Sum` | 
| ModelLatency | 一或多個模型做出回應所花的時間。這包括傳送請求、從模型容器擷取回應及在容器中完成推論所花的時間。ModelLatency 是推論管道中所有容器花費的總時間。單位：微秒<br />有效的統計資訊：`Average`、`Sum`、`Min`、`Max`、樣本計數 | 
| OverheadLatency | 在回應用戶端請求而花費的時間中，SageMaker AI 為了處理額外負荷而另外花費的時間。`OverheadLatency` 的計算是從 SageMaker AI 收到請求，直到回應傳回給用戶端的時間再減去 `ModelLatency`。額外負荷延遲可能隨著請求和回應承載大小、請求頻率，以及請求的身分驗證或授權等因素而不同。<br />單位：微秒<br />有效的統計資訊：`Average`、`Sum`、`Min`、`Max`、`Sample Count` | 
| ContainerLatency | 從 SageMaker AI 的觀點來看，推論管道容器做出回應所花的時間。ContainerLatency 包含傳送請求、從模型的容器擷取回應，以及在容器中完成推論所花的時間。單位：微秒<br />有效的統計資訊：`Average`、`Sum`、`Min`、`Max`、`Sample Count` | 

**端點調用指標的維度**


| 維度 | 說明 | 
| --- | --- | 
| EndpointName, VariantName, ContainerName | 針對指定端點上的 `ProductionVariant`，以及指定的變體，篩選端點調用指標。 | 

對於推論管道端點，CloudWatch 會將您帳戶中每個容器延遲指標列為 **SageMaker AI** 命名空間中的**端點容器指標**和**端點變體指標**，如下所示。只有推論管道才會顯示 `ContainerLatency` 指標。

![適用於推論管道的 CloudWatch 儀表板。](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/pipeline-endpoint-metrics.png)


對於每個端點和每個容器，延遲指標會顯示容器、端點，變體及指標的名稱。

![端點的延遲指標。](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/pipeline-endpoint-metrics-details.png)


**訓練任務、批次轉換任務及端點執行個體指標**

命名空間 `/aws/sagemaker/TrainingJobs`、`/aws/sagemaker/TransformJobs` 和 `/aws/sagemaker/Endpoints` 包含以下關於訓練任務和端點執行個體的指標。

指標每隔 1 分鐘回報一次。


| 指標 | 說明 | 
| --- | --- | 
| CPUUtilization | 執行個體上執行的容器所使用的 CPU 單位百分比。值的範圍從 0% 到 100%，並乘以 CPU 的數量。例如，如果有四個 CPU，`CPUUtilization` 的範圍可能從 0% 到 400%。<br />若為訓練任務，`CPUUtilization` 是執行個體上執行的演算法容器的 CPU 使用率。<br />若為批次轉換任務，`CPUUtilization` 是執行個體上執行的轉換容器的 CPU 使用率。<br />若為多容器模型，`CPUUtilization` 是執行個體上執行的所有容器的 CPU 使用率總和。<br />若為端點變體，`CPUUtilization` 是執行個體上執行的所有容器的 CPU 使用率總和。<br />單位：百分比 | 
| MemoryUtilization | 執行個體上執行的容器所使用的記憶體百分比。這個值的範圍從 0% 到 100%。<br />若為訓練任務，`MemoryUtilization` 是執行個體上執行的演算法容器所使用的記憶體。<br />若為批次轉換任務，`MemoryUtilization` 是執行個體上執行的轉換容器所使用的記憶體。若為多容器模型，MemoryUtilization 是執行個體上執行的所有容器所使用的記憶體總和。<br />若為端點變體，`MemoryUtilization` 是執行個體上執行的所有容器所使用的記憶體總和。<br />單位：百分比 | 
| GPUUtilization | 執行個體上執行的容器所使用的 GPU 單位百分比。`GPUUtilization` 的範圍從 0% 到 100%，並乘以 GPU 的數量。例如，如果有四個 GPU，`GPUUtilization` 的範圍可能從 0% 到 400%。<br />若為訓練任務，`GPUUtilization` 是執行個體上執行的演算法容器所使用的 GPU。<br />若為批次轉換任務，`GPUUtilization` 是執行個體上執行的轉換容器所使用的 GPU。<br />若為多容器模型，`GPUUtilization` 是執行個體上執行的所有容器所使用的 GPU 總和。<br />若為端點變體，`GPUUtilization` 是執行個體上執行的所有容器所使用的 GPU 總和。<br />單位：百分比 | 
| GPUMemoryUtilization | 執行個體上執行的容器所使用的 GPU 記憶體百分比。GPUMemoryUtilization 範圍從 0% 到 100%，並乘以 GPU 的數量。例如，如果有四個 GPU，`GPUMemoryUtilization` 的範圍可能從 0% 到 400%。<br />若為訓練任務，`GPUMemoryUtilization` 是執行個體上執行的演算法容器所使用的 GPU 記憶體。<br />若為批次轉換任務，`GPUMemoryUtilization` 是執行個體上執行的轉換容器所使用的 GPU 記憶體。<br />若為多容器模型，`GPUMemoryUtilization` 是執行個體上執行的所有容器所使用的 GPU 總和。<br />若為端點變體，`GPUMemoryUtilization` 是執行個體上執行的所有容器所使用的 GPU 記憶體總和。<br />單位：百分比 | 
| DiskUtilization | 執行個體上執行的容器所使用的磁碟空間百分比。DiskUtilization 的範圍從 0% 到 100%。批次轉換任務不支援這個指標。<br />若為訓練任務，`DiskUtilization` 是執行個體上執行的演算法容器所使用的磁碟空間。<br />若為端點變體，`DiskUtilization` 是執行個體上執行的所有已提供容器所使用的磁碟空間總和。<br />單位：百分比 | 

**Dimensions for Training Job, Batch Transform Job, and Endpoint Instance Metrics (訓練任務、批次轉換任務與端點執行個體指標的維度)**


| 維度 | 說明 | 
| --- | --- | 
| Host | 若為訓練任務，`Host` 的格式為 `[training-job-name]/algo-[instance-number-in-cluster]`。使用此維度來篩選所指定訓練任務和執行個體的執行個體指標。此維度格式只會在 `/aws/sagemaker/TrainingJobs` 命名空間中顯示。<br />若為批次轉換任務，`Host` 的格式為 `[transform-job-name]/[instance-id]`。使用此維度來篩選指定批次轉換任務和執行個體的執行個體指標。此維度格式只會在 `/aws/sagemaker/TransformJobs` 命名空間中顯示。<br />若為端點，`Host` 的格式為 `[endpoint-name]/[ production-variant-name ]/[instance-id]`。使用此維度來篩選指定端點、變體和執行個體的執行個體指標。此維度格式只會在 `/aws/sagemaker/Endpoints` 命名空間中顯示。 | 

為了協助您對訓練任務、端點與筆記本執行個體生命週期組態除錯，只要是演算法容器、模型容器或筆記本執行個體生命週期組態傳送給 `stdout` 或 `stderr` 的任何內容，SageMaker AI 也會傳送給 Amazon CloudWatch Logs。您可以使用此資訊來除錯和分析進度。

## 使用日誌來監控推論管道
<a name="inference-pipeline-logs"></a>

下表列出 SageMaker AI 傳送到 Amazon CloudWatch 的日誌群組和日誌串流 

*日誌串流*是一系列共用相同來源的日誌事件。每個單獨日誌串流是由 CloudWatch 中的單獨日誌來源所組成。*日誌群組*是共用相同保留、監控和存取控制設定的日誌串流群組。

**日誌**



- **`/aws/sagemaker/TrainingJobs`**
  - `[training-job-name]/algo-[instance-number-in-cluster]-[epoch_timestamp]`

- **`/aws/sagemaker/Endpoints/[EndpointName]`**
  - `[production-variant-name]/[instance-id]`
  - `[production-variant-name]/[instance-id]`
  - `[production-variant-name]/[instance-id]/[container-name provided in the SageMaker AI model] (For Inference Pipelines)` 針對推論管道日誌，如果您不提供容器名稱，CloudWatch 會依模型中提供提供容器的順序，依序使用 \*\*container-1、container-2\*\*，以此類推。

- **`/aws/sagemaker/NotebookInstances`**
  - `[notebook-instance-name]/[LifecycleConfigHook]`

- **`/aws/sagemaker/TransformJobs`**
  - `[transform-job-name]/[instance-id]-[epoch_timestamp]`
  - `[transform-job-name]/[instance-id]-[epoch_timestamp]/data-log`
  - `[transform-job-name]/[instance-id]-[epoch_timestamp]/[container-name provided in the SageMaker AI model] (For Inference Pipelines)` 針對推論管道日誌，如果您不提供容器名稱，CloudWatch 會依模型中提供提供容器的順序，依序使用 \*\*container-1、container-2\*\*，以此類推。



**注意**  
您建立具有生命週期組態的筆記本執行個體時，SageMaker AI 會建立 `/aws/sagemaker/NotebookInstances` 日誌群組。如需詳細資訊，請參閱[使用 LCC 指令碼自訂 SageMaker 筆記本執行個體](notebook-lifecycle-config.md)。

如需關於 SageMaker AI 記錄格式的詳細資訊，請參閱[Amazon SageMaker AI 的 CloudWatch Logs](logging-cloudwatch.md)。