

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

# 適用於 Amazon ECS 叢集的範例 App Mesh 工作負載
<a name="ContainerInsights-Prometheus-Sample-Workloads-ECS-appmesh"></a>

若要從 Amazon ECS 的範例 Prometheus 工作負載收集指標，您必須在叢集中執行 Container Insights。如需安裝 Container Insights 的相關資訊，請參閱 [在 Amazon ECS 上設定 Container Insights](deploy-container-insights-ECS.md)。

首先，按照這個[演練](https://github.com/aws/aws-app-mesh-examples/tree/main/examples/apps/colorapp#app-mesh-walkthrough-deploy-the-color-app-on-ecs)在 Amazon ECS 叢集上部署範例色彩應用程式。完成後，您將在連接埠 9901 上公開 App Mesh Prometheus 指標。

接下來，請依照下列步驟，在安裝彩色應用程式的相同 Amazon ECS 叢集上安裝具有 Prometheus 監控的 CloudWatch 代理程式。本節中的步驟會以橋接網路模式安裝 CloudWatch 代理程式。

下列步驟也將使用您在演練中設定的環境變數 `ENVIRONMENT_NAME`、`AWS_PROFILE` 以及 `AWS_DEFAULT_REGION`。

**若要安裝具有 Prometheus 監控的 CloudWatch 代理程式以進行測試**

1. 輸入下列命令來下載 CloudFormation 範本。

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml
   ```

1. 輸入下列命令，設定網路模式。

   ```
   export ECS_CLUSTER_NAME=${ENVIRONMENT_NAME}
   export ECS_NETWORK_MODE=bridge
   ```

1. 輸入下列命令來建立 CloudFormation 堆疊。

   ```
   aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
       --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                    ParameterKey=CreateIAMRoles,ParameterValue=True \
                    ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \
                    ParameterKey=TaskRoleName,ParameterValue=CWAgent-Prometheus-TaskRole-${ECS_CLUSTER_NAME} \
                    ParameterKey=ExecutionRoleName,ParameterValue=CWAgent-Prometheus-ExecutionRole-${ECS_CLUSTER_NAME} \
       --capabilities CAPABILITY_NAMED_IAM \
       --region ${AWS_DEFAULT_REGION} \
       --profile ${AWS_PROFILE}
   ```

1. （選用） 建立 CloudFormation 堆疊時，您會看到`CREATE_COMPLETE`訊息。如果您要在看到訊息之前檢查狀態，請輸入下列命令。

   ```
   aws cloudformation describe-stacks \
   --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
   --query 'Stacks[0].StackStatus' \
   --region ${AWS_DEFAULT_REGION} \
   --profile ${AWS_PROFILE}
   ```

**疑難排解**

演練中的步驟會使用 jq 來剖析 AWS CLI的輸出結果。如需安裝 jq 的詳細資訊，請參閱 [jq](https://stedolan.github.io/jq/)。使用下列命令，將您 AWS CLI 的預設輸出格式設定為 JSON，以便 jq 可以正確進行剖析。

```
$ aws configure
```

當回應變為 `Default output format` 時，輸入 **json**。

## 解除安裝具有 Prometheus 監控的 CloudWatch 代理程式
<a name="ContainerInsights-Prometheus-Sample-Workloads-ECS-appmesh-uninstall"></a>

當您完成測試時，請輸入下列命令，透過刪除 CloudFormation 堆疊來解除安裝 CloudWatch 代理程式。

```
aws cloudformation delete-stack \
--stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
--region ${AWS_DEFAULT_REGION} \
--profile ${AWS_PROFILE}
```