Exemple d'application App Mesh pour les clusters Amazon ECS - Amazon CloudWatch

Exemple d'application App Mesh pour les clusters Amazon ECS

Pour collecter des métriques à partir d'un exemple d'application Prometheus pour Amazon ECS, vous devez exécuter Container Insights dans le cluster. Pour plus d'informations sur l'installation de Container Insights, consultez Configuration de Container Insights sur Amazon ECS.

Tout d'abord, suivez cette démonstration pour déployer l'exemple d'application de couleur dans votre cluster Amazon ECS. Une fois que vous avez terminé, les métriques App Mesh Prometheus seront exposées sur le port 9901.

Ensuite, procédez comme suit pour installer l'agent CloudWatch avec la surveillance Prometheus sur le même cluster Amazon ECS sur lequel vous avez installé l'application de couleur. Les étapes décrites dans cette section installent l'agent CloudWatch en mode réseau pont.

Les variables d'environnement ENVIRONMENT_NAME,AWS_PROFILE, et AWS_DEFAULT_REGION que vous définissez dans la démonstration seront également utilisées dans les étapes suivantes.

Pour installer l'agent CloudWatch avec surveillance Prometheus pour les tests
  1. Téléchargez le modèle CloudFormation en saisissant la commande suivante.

    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. Définissez le mode réseau en saisissant les commandes suivantes.

    export ECS_CLUSTER_NAME=${ENVIRONMENT_NAME} export ECS_NETWORK_MODE=bridge
  3. Créez la pile CloudFormation en saisissant les commandes suivantes.

    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. (En option) Une fois la pile CloudFormation créée, un message CREATE_COMPLETE s'affiche. Si vous souhaitez vérifier l'état avant d'afficher ce message, saisissez la commande suivante.

    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}

Dépannage

Les étapes de la démonstration utilisent jq pour analyser le résultat de sortie de la AWS CLI. Pour plus d'informations sur l'installation de jq, consultez jq. Utilisez la commande suivante pour définir le format de sortie par défaut de votre AWS CLI sur JSON afin que jq puisse l'analyser correctement.

$ aws configure

Lorsque la réponse arrive à Default output format, saisissez json.

Désinstallation de l'agent CloudWatch avec la surveillance Prometheus

Une fois que vous avez terminé le test, saisissez la commande suivante pour désinstaller l'agent CloudWatch en supprimant la pile CloudFormation.

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