Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Publication de métriques personnalisées Amazon CloudWatch pour un environnement
Vous pouvez publier les données recueillies par la création de rapports d'intégrité améliorée AWS Elastic Beanstalk sur Amazon CloudWatch en tant que métriques personnalisées. La publication de métriques dans CloudWatch vous permet de surveiller les changements de performances des applications sur la durée et d'identifier les éventuels problèmes en suivant l'évolution de la latence des demandes et de l'utilisation des ressources en fonction de la charge.
En publiant des métriques dans CloudWatch, vous les rendez également disponibles pour une utilisation avec les graphiques de surveillance et les alarmes. Une métrique gratuite, EnvironmentHealth, est activée automatiquement lorsque vous utilisez la création de rapports améliorés sur l'état. Les métriques personnalisées autres que EnvironmentHealth impliquent des frais CloudWatch
Pour publier des métriques personnalisées CloudWatch pour un environnement, vous devez commencer par activer les rapports améliorés sur l'état dans l'environnement. Pour obtenir des instructions, consultez Activation des rapports améliorés sur l'état Elastic Beanstalk.
Rubriques
- Métriques de création de rapports d'intégrité améliorés
- Configuration des métriques CloudWatch à l'aide de la console Elastic Beanstalk
- Configuration des métriques personnalisées CloudWatch à l'aide de l'interface de ligne de commande EB
- Fourniture des documents de configuration des métriques personnalisées
Métriques de création de rapports d'intégrité améliorés
Lorsque vous activez les rapports améliorés sur l'état dans votre environnement, le système de génération de rapports améliorés sur l'état publie automatiquement une métrique personnalisée CloudWatch, EnvironmentHealth. Pour publier des métriques supplémentaires dans CloudWatch, configurez votre environnement avec ces métriques à l'aide de la console Elastic Beanstalk, de l'interface de ligne de commande EB ou du fichier .ebextensions.
Vous pouvez publier les métriques d'état améliorées suivantes à partir de votre environnement dans CloudWatch.
Métriques disponibles (toutes les plateformes)
EnvironmentHealth
-
Environnement uniquement. Il s'agit de la seule métrique CloudWatch publiée par le système de génération de rapports améliorés sur l'état, sauf si vous configurez des métriques supplémentaires. L'état de l'environnement est représentée par un des sept statuts. Dans la console CloudWatch, ces statuts sont mappés aux valeurs suivantes :
-
0 – OK
-
1 – Info
-
5 – Inconnu
-
10 – Pas de données
-
15 – Avertissement
-
20 – Dégradé
-
25 – Grave
-
InstancesSevere
InstancesDegraded
InstancesWarning
InstancesInfo
InstancesOk
InstancesPending
InstancesUnknown
InstancesNoData
-
Environnement uniquement. Ces métriques indiquent le nombre d'instances dans les environnement avec chaque état de santé.
InstancesNoData
indique le nombre d'instances pour lesquelles aucune donnée ne sera reçue. ApplicationRequestsTotal
ApplicationRequests5xx
ApplicationRequests4xx
ApplicationRequests3xx
ApplicationRequests2xx
-
Instance et environnement. Indique le nombre total de requêtes terminées par l'instance ou l'environnement et le nombre de requêtes ayant abouti avec chaque catégorie de code d'état.
ApplicationLatencyP10
ApplicationLatencyP50
ApplicationLatencyP75
ApplicationLatencyP85
ApplicationLatencyP90
ApplicationLatencyP95
ApplicationLatencyP99
ApplicationLatencyP99.9
-
Instance et environnement. Indique la quantité moyenne de temps, en secondes, nécessaire pour terminer le pourcentage x le plus rapide de requêtes.
InstanceHealth
-
Instance uniquement. Indique l'état d'intégrité actuel de l'instance. L'état d'instance est représentée par un statut (sur sept statuts au total). Dans la console CloudWatch, ces statuts sont mappés aux valeurs suivantes :
-
0 – OK
-
1 – Info
-
5 – Inconnu
-
10 – Pas de données
-
15 – Avertissement
-
20 – Dégradé
-
25 – Grave
-
Métriques disponibles (Linux)
CPUIrq
CPUIdle
CPUUser
CPUSystem
CPUSoftirq
CPUIowait
CPUNice
-
Instance uniquement. Indique le pourcentage de temps que l'UC a passé dans chaque état au cours de la dernière minute.
LoadAverage1min
-
Instance uniquement. La charge d'UC moyenne de l'instance au cours de la dernière minute.
RootFilesystemUtil
-
Instance uniquement. Indique le pourcentage d'espace disque en cours d'utilisation.
Métriques disponibles (Windows)
CPUIdle
CPUUser
CPUPriveleged
-
Instance uniquement. Indique le pourcentage de temps que l'UC a passé dans chaque état au cours de la dernière minute.
Configuration des métriques CloudWatch à l'aide de la console Elastic Beanstalk
Vous pouvez utiliser la console Elastic Beanstalk pour configurer votre environnement afin de publier des métriques d'état améliorées dans CloudWatch et les rendre disponibles pour une utilisation avec des graphiques de surveillance et des alarmes.
Pour configurer des métriques personnalisées CloudWatch dans la console Elastic Beanstalk
Ouvrez la console Elastic Beanstalk
et, dans la liste Regions (Régions), sélectionnez votre Région AWS. -
Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.
Note
Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.
Dans le panneau de navigation, choisissez Configuration.
-
Dans la catégorie de configuration Monitoring (Surveillance), choisissez Edit (Modifier).
-
Sous Health reporting (Rapport sur l'état de santé), sélectionnez les métriques d'instance et d'environnement que vous souhaitez publier dans CloudWatch. Pour sélectionner plusieurs métriques, appuyez sur la touche Ctrl tout en choisissant.
-
Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.
L'activation des métriques personnalisées CloudWatch les ajoute à la liste des métriques disponibles sur la page Monitoring (Surveillance).
Configuration des métriques personnalisées CloudWatch à l'aide de l'interface de ligne de commande EB
Vous pouvez utiliser l'interface de ligne de commande EB pour configurer des métriques personnalisées en enregistrant la configuration de votre environnement en local, en ajoutant une entrée qui définit les métriques à publier, puis en chargeant la configuration dans Elastic Beanstalk. Vous pouvez appliquer la configuration enregistrée à un environnement pendant ou après la création.
Pour configurer des métriques personnalisées CloudWatch avec l'interface de ligne de commande EB et les configurations enregistrées
-
Initialisez votre dossier de projet avec eb init.
-
Créez un environnement en exécutant la commande eb create.
-
Enregistrez un modèle de configuration localement en exécutant la commande eb config save. L'exemple suivant utilise l'option
--cfg
pour spécifier le nom de la configuration.$
eb config save --cfg
Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml01-base-state
-
Ouvrez le fichier de configuration enregistrée dans un éditeur de texte.
-
Sous
OptionSettings
>aws:elasticbeanstalk:healthreporting:system:
, ajoutez une cléConfigDocument
pour activer chacune des métriques CloudWatch de votre choix. Par exemple, leConfigDocument
suivant publie des métriquesApplicationRequests5xx
etApplicationRequests4xx
au niveau de l'environnement et des métriquesApplicationRequestsTotal
au niveau de l'instance.OptionSettings: ... aws:elasticbeanstalk:healthreporting:system:
ConfigDocument: CloudWatchMetrics: Environment: ApplicationRequests5xx: 60 ApplicationRequests4xx: 60 Instance: ApplicationRequestsTotal: 60 Version: 1
SystemType: enhanced ...Dans l'exemple, 60 indique le nombre de secondes entre les mesures. C'est la seule valeur actuellement prise en charge.
Note
Vous pouvez combiner
CloudWatchMetrics
etRules
dans le même paramètre d'optionConfigDocument
. Le paramètreRules
est décrit dans Configuration de règles d'intégrité améliorée pour un environnement.Si vous avez précédemment utilisé
Rules
pour configurer les règles d'intégrité améliorée, le fichier de configuration que vous récupérez à l'aide de la commande eb config save possède déjà une cléConfigDocument
avec une sectionRules
. Ne la supprimez pas : ajoutez une sectionCloudWatchMetrics
dans la même valeur d'optionConfigDocument
. -
Enregistrez le fichier de configuration et fermez l'éditeur de texte. Dans cet exemple, le fichier de configuration mis à jour est enregistré avec un nom qui est différent (
02-cloudwatch-enabled.cfg.yml
) de celui du fichier de configuration téléchargé. Cela crée une configuration enregistrée distincte lorsque le fichier est téléchargé. Vous pouvez utiliser le même nom que le fichier téléchargé pour remplacer la configuration existante sans en créer une. -
Utilisez la commande eb config put pour charger le fichier de configuration mis à jour dans Elastic Beanstalk.
$
eb config put
02-cloudwatch-enabled
Lorsque vous utilisez les commandes eb config
get
etput
avec des configurations enregistrées, n'incluez pas l'extension de fichier. -
Appliquez la configuration enregistrée à votre environnement en cours d'exécution.
$
eb config --cfg
02-cloudwatch-enabled
L'option
--cfg
spécifie un fichier de configuration nommé qui est appliqué à l'environnement. Vous pouvez enregistrer le fichier de configuration en local ou dans Elastic Beanstalk. Si un fichier de configuration avec le nom spécifié existe dans les deux emplacements, l'interface de ligne de commande EB utilise le fichier local.
Fourniture des documents de configuration des métriques personnalisées
Le document de configuration pour les métriques personnalisées Amazon CloudWatch est un document JSON qui répertorie les métriques à publier aux niveaux de l'instance et de l'environnement. L'exemple suivant illustre un document de configuration qui active toutes les métriques personnalisées disponibles.
{
"CloudWatchMetrics": {
"Environment": {
"ApplicationLatencyP99.9": 60,
"InstancesSevere": 60,
"ApplicationLatencyP90": 60,
"ApplicationLatencyP99": 60,
"ApplicationLatencyP95": 60,
"InstancesUnknown": 60,
"ApplicationLatencyP85": 60,
"InstancesInfo": 60,
"ApplicationRequests2xx": 60,
"InstancesDegraded": 60,
"InstancesWarning": 60,
"ApplicationLatencyP50": 60,
"ApplicationRequestsTotal": 60,
"InstancesNoData": 60,
"InstancesPending": 60,
"ApplicationLatencyP10": 60,
"ApplicationRequests5xx": 60,
"ApplicationLatencyP75": 60,
"InstancesOk": 60,
"ApplicationRequests3xx": 60,
"ApplicationRequests4xx": 60
},
"Instance": {
"ApplicationLatencyP99.9": 60,
"ApplicationLatencyP90": 60,
"ApplicationLatencyP99": 60,
"ApplicationLatencyP95": 60,
"ApplicationLatencyP85": 60,
"CPUUser": 60,
"ApplicationRequests2xx": 60,
"CPUIdle": 60,
"ApplicationLatencyP50": 60,
"ApplicationRequestsTotal": 60,
"RootFilesystemUtil": 60,
"LoadAverage1min": 60,
"CPUIrq": 60,
"CPUNice": 60,
"CPUIowait": 60,
"ApplicationLatencyP10": 60,
"LoadAverage5min": 60,
"ApplicationRequests5xx": 60,
"ApplicationLatencyP75": 60,
"CPUSystem": 60,
"ApplicationRequests3xx": 60,
"ApplicationRequests4xx": 60,
"InstanceHealth": 60,
"CPUSoftirq": 60
}
},
"Version": 1
}
Pour la AWS CLI, vous transmettez le document sous forme de valeur pour la clé Value
dans un argument de paramètres d'option, qui est lui-même un objet JSON. Dans ce cas, vous devez utiliser des guillemets d'échappement dans le document intégré.
$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[
{
"Namespace": "aws:elasticbeanstalk:healthreporting:system",
"OptionName": "ConfigDocument",
"Value": "{\"CloudWatchMetrics\": {\"Environment\": {\"ApplicationLatencyP99.9\": 60,\"InstancesSevere\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"InstancesUnknown\": 60,\"ApplicationLatencyP85\": 60,\"InstancesInfo\": 60,\"ApplicationRequests2xx\": 60,\"InstancesDegraded\": 60,\"InstancesWarning\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"InstancesNoData\": 60,\"InstancesPending\": 60,\"ApplicationLatencyP10\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"InstancesOk\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60},\"Instance\": {\"ApplicationLatencyP99.9\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"ApplicationLatencyP85\": 60,\"CPUUser\": 60,\"ApplicationRequests2xx\": 60,\"CPUIdle\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"RootFilesystemUtil\": 60,\"LoadAverage1min\": 60,\"CPUIrq\": 60,\"CPUNice\": 60,\"CPUIowait\": 60,\"ApplicationLatencyP10\": 60,\"LoadAverage5min\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"CPUSystem\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60,\"InstanceHealth\": 60,\"CPUSoftirq\": 60}},\"Version\": 1}"
}
]'
Pour un fichier de configuration .ebextensions
au format YAML, vous pouvez fournir le document JSON en l'état.
option_settings:
- namespace: aws:elasticbeanstalk:healthreporting:system
option_name: ConfigDocument
value: {
"CloudWatchMetrics": {
"Environment": {
"ApplicationLatencyP99.9": 60,
"InstancesSevere": 60,
"ApplicationLatencyP90": 60,
"ApplicationLatencyP99": 60,
"ApplicationLatencyP95": 60,
"InstancesUnknown": 60,
"ApplicationLatencyP85": 60,
"InstancesInfo": 60,
"ApplicationRequests2xx": 60,
"InstancesDegraded": 60,
"InstancesWarning": 60,
"ApplicationLatencyP50": 60,
"ApplicationRequestsTotal": 60,
"InstancesNoData": 60,
"InstancesPending": 60,
"ApplicationLatencyP10": 60,
"ApplicationRequests5xx": 60,
"ApplicationLatencyP75": 60,
"InstancesOk": 60,
"ApplicationRequests3xx": 60,
"ApplicationRequests4xx": 60
},
"Instance": {
"ApplicationLatencyP99.9": 60,
"ApplicationLatencyP90": 60,
"ApplicationLatencyP99": 60,
"ApplicationLatencyP95": 60,
"ApplicationLatencyP85": 60,
"CPUUser": 60,
"ApplicationRequests2xx": 60,
"CPUIdle": 60,
"ApplicationLatencyP50": 60,
"ApplicationRequestsTotal": 60,
"RootFilesystemUtil": 60,
"LoadAverage1min": 60,
"CPUIrq": 60,
"CPUNice": 60,
"CPUIowait": 60,
"ApplicationLatencyP10": 60,
"LoadAverage5min": 60,
"ApplicationRequests5xx": 60,
"ApplicationLatencyP75": 60,
"CPUSystem": 60,
"ApplicationRequests3xx": 60,
"ApplicationRequests4xx": 60,
"InstanceHealth": 60,
"CPUSoftirq": 60
}
},
"Version": 1
}