Amazon ECS 集群的示例 App Mesh 工作负载 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon ECS 集群的示例 App Mesh 工作负载

要从 Amazon ECS 的示例 Prometheus 工作负载收集指标,您必须在集群中运行 Container Insights。有关安装 Container Insights 的信息,请参阅 在 Amazon ECS 上设置 Container Insights

首先,按照本演练在 Amazon ECS 集群上部署示例颜色应用程序。完成后,您将在端口 9901 上公开 App Mesh Prometheus 指标。

接下来,按照以下步骤在安装颜色应用程序的同一 Amazon ECS 集群上,安装带有 Prometheus 监控功能的 CloudWatch 代理。本节中的步骤以桥式网络模式安装 CloudWatch 代理。

您在演练中设置的环境变量 ENVIRONMENT_NAMEAWS_PROFILEAWS_DEFAULT_REGION也将在以下步骤中使用。

安装带有 Prometheus 监控功能的 CloudWatch 代理以进行测试
  1. 通过输入以下命令,下载 Amazon 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
  2. 通过输入以下命令,设置网络模式。

    export ECS_CLUSTER_NAME=${ENVIRONMENT_NAME} export ECS_NETWORK_MODE=bridge
  3. 输入以下命令以创建 Amazon 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}
  4. (可选)创建 Amazon 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 来分析 Amazon CLI 的输出结果。有关安装 jq 代理的更多信息,请参阅 jq。使用以下命令将 Amazon CLI 的默认输出格式设置为 JSON,以便 jq 可以对其进行正确分析。

$ aws configure

当响应变为 Default output format 时,输入 json

使用 Prometheus 监控功能卸载 CloudWatch 代理

完成测试后,输入以下命令以通过 Amazon 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}