

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.

# Métriques collectées par la vigie applicative
<a name="AppSignals-MetricsCollected"></a>

La vigie applicative collecte à la fois les [métriques d’application standard](#AppSignals-StandardMetrics) et les [métriques d’exécution](#AppSignals-StandardMetrics) des applications pour lesquelles vous l’activez.

Les métriques d’application standard concernent les aspects les plus critiques des performances, de la latence et de la disponibilité des services.

Les métriques d’exécution suivent les métriques d’application au fil du temps, notamment l’utilisation de la mémoire, l’utilisation du processeur et la récupération de mémoire. La vigie applicative affiche les métriques d’exécution dans le contexte des services pour lesquels vous avez activé la vigie applicative. En cas de problème opérationnel, l’observation des métriques d’exécution peut être utile pour vous aider à trouver une cause racine du problème. Par exemple, vous pouvez voir si les pics de latence de votre service sont liés à des pics dans une métrique d’exécution. 

**Topics**
+ [Métriques d’application standard collectées](#AppSignals-StandardMetrics)
+ [Métriques d’exécution](#AppSignals-RuntimeMetrics)
+ [Désactivation de la collecte des métriques d’exécution](#AppSignals-RuntimeMetrics-Disable)

## Métriques d’application standard collectées
<a name="AppSignals-StandardMetrics"></a>

Application Signals collecte des *métriques d’application standard* à partir des services qu’il découvre. Ces indicateurs concernent les aspects les plus critiques des performances d’un service : latence, défaillances et erreurs. Ils peuvent vous aider à identifier les problèmes, à surveiller les tendances en matière de performances et à optimiser les ressources afin d’améliorer l’expérience utilisateur globale.

Le tableau suivant répertorie les métriques collectées par Application Signals. Ces métriques sont envoyées CloudWatch dans l'espace de `ApplicationSignals` noms.


| Métrique | Description | 
| --- | --- | 
|  `Latency`  |  Le délai avant le début du transfert de données ne commence qu’une fois la demande effectuée. Unités : millisecondes | 
|  `Fault`  |  Nombre d'erreurs HTTP 5XX côté serveur et d'erreurs d'état du OpenTelemetry span.  Unités : aucune | 
|  `Error`  |  Nombre d’erreurs HTTP 4XX côté client. Ces erreurs sont considérées comme des erreurs de requête qui ne sont pas dues à des problèmes de service. Par conséquent, la métrique `Availability` affichée sur les tableaux de bord d’Application Signals ne considère pas ces erreurs comme des défauts de service.  Unités : aucune | 

La métrique `Availability` affichée sur les tableaux de bord de la vigie applicative est calculée comme suit : **(1 - `Faults`/Total)\$1100**. Le nombre total de réponses comprend toutes les réponses et est dérivé de `SampleCount(Latency)`. Les réponses réussies sont toutes les réponses sans erreur `5XX`. Les réponses `4XX` sont considérées comme réussies lorsqu’Application Signals évalue `Availability`. 

### Dimensions collectées et combinaisons de dimensions
<a name="AppSignals-StandardMetrics-Dimensions"></a>

Les dimensions suivantes sont définies pour chacune des métriques d’application standard. Pour plus d’informations sur les dimensions, veuillez consulter la rubrique [Dimensions](cloudwatch_concepts.md#Dimension).

Différentes dimensions sont collectées pour les *métriques de service* et les *métriques de dépendance*. Dans les services découverts par Application Signals, lorsque le microservice A appelle le microservice B, le microservice B répond à la requête. Dans ce cas, le microservice A émet des métriques de dépendance et le microservice B émet des métriques de service. Lorsqu’un client appelle le microservice A, le microservice A répond à la requête et émet des métriques de service.

**Dimension pour les métriques de service**

Les dimensions suivantes sont collectées pour les métriques de service.


| Dimension | Description | 
| --- | --- | 
|  `Service`  |  Le nom du service . La valeur maximale est 255 caractères.  | 
|  `Operation`  |  Nom de l’opération API ou d’une autre activité. La valeur maximale est de 1 024 caractères. Vous ne pouvez définir des objectifs de niveau de service sur les opérations que si le nom de l’opération comporte 194 caractères ou moins.  | 
| `Environment` | Le nom de l’environnement dans lequel les services sont exécutés. Si les services ne sont pas exécutés sur Amazon EKS, vous pouvez spécifier une valeur personnalisée facultative pour `deployment.environment` dans le paramètre `OTEL_ATTRIBUTE_RESOURCES`. La valeur maximale est de 259 caractères. | 

Lorsque vous consultez ces mesures dans la CloudWatch console, vous pouvez les afficher à l'aide des combinaisons de dimensions suivantes :
+ `[Environment, Service, Operation, [Latency, Error, Fault]]`
+ `[Environment, Service, [Latency, Error, Fault]]`

**Dimensions pour les métriques de dépendance**

Les dimensions suivantes sont collectées pour les métriques de dépendance :


| Dimension | Description | 
| --- | --- | 
|  `Service`  |  Le nom du service . La valeur maximale est 255 caractères.  | 
|  `Operation`  |  Le nom de l’opération API ou d’une autre opération. La valeur maximale est de 1024 caractères.  | 
|  `RemoteService`  |  Le nom du service distant invoqué. La valeur maximale est 255 caractères.  | 
|  `RemoteOperation`  |  Le nom de l’opération API invoquée. La valeur maximale est de 1024 caractères.  | 
|  `Environment`  | Le nom de l’environnement dans lequel les services sont exécutés. Si les services ne sont pas exécutés sur Amazon EKS, vous pouvez spécifier une valeur personnalisée facultative pour `deployment.environment` dans le paramètre `OTEL_ATTRIBUTE_RESOURCES`. La valeur maximale est de 259 caractères. | 
|  `RemoteEnvironment`  |  Le nom de l’environnement dans lequel les services de dépendance sont exécutés. Le paramètre `RemoteEnvironment` est généré automatiquement lorsqu’un service appelle une dépendance et qu’ils sont tous deux exécutés dans le même cluster. Sinon, `RemoteEnvironment` n’est ni généré ni signalé dans les métriques de dépendance du service. Actuellement disponible uniquement sur les plateformes Amazon EKS et K8S. La valeur maximale est de 259 caractères.  | 
|  `RemoteResourceIdentifier`  |  Le nom de la ressource invoquée par un appel distant. Le `RemoteResourceIdentifier` paramètre est automatiquement généré si le service appelle un AWS service distant. Sinon, `RemoteResourceIdentifier` n’est ni généré ni signalé dans les métriques de dépendance du service. La valeur maximale est de 1024 caractères.  | 
|  `RemoteResourceType`  |  Le type de ressource invoquée par un appel distant. Requis uniquement si `RemoteResourceIdentifier` est défini. La valeur maximale est de 1024 caractères.  | 

Lorsque vous consultez ces mesures dans la CloudWatch console, vous pouvez les afficher à l'aide des combinaisons de dimensions suivantes :

**Exécution sur des clusters Amazon EKS**
+ `[Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]`
+ `[Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]`
+ `[Environment, Service, Operation, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]`
+ `[Environment, Service, Operation, RemoteService, RemoteOperation, [Latency, Error, Fault]]`
+ `[Environment, Service, RemoteService, RemoteEnvironment, [Latency, Error, Fault]]`
+ `[Environment, Service, RemoteService, [Latency, Error, Fault]]`
+ `[Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]`
+ `[Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]`
+ `[Environment, Service, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]`
+ `[Environment, Service, RemoteService, RemoteOperation, [Latency, Error, Fault]]`
+ `[RemoteService [Latency, Error, Fault]]` 
+ `[RemoteService, RemoteResourceIdentifier, RemoteResourceType [Latency, Error, Fault]]`

## Métriques d’exécution
<a name="AppSignals-RuntimeMetrics"></a>

Application Signals utilise le OpenTelemetry SDK AWS Distro for pour collecter automatiquement des métriques OpenTelemetry compatibles à partir de vos applications Java et Python. Pour que les métriques d’exécution soient collectées, vous devez remplir les conditions préalables suivantes :
+ Votre CloudWatch agent doit être une version `1.300049.1` ou une version ultérieure.
+ Si vous utilisez le module complémentaire Amazon CloudWatch Observability EKS, il doit s'agir d'une version `2.30-eksbuild.1` ou d'une version ultérieure. Si vous mettez à jour le module complémentaire, vous devez redémarrer vos applications.
+ Pour les applications Java, vous devez exécuter le logiciel AWS Distro for OpenTelemetry SDK for Java `1.32.5` ou une version ultérieure.
+ Pour les applications Python, vous devez exécuter le AWS Distro for OpenTelemetry SDK for Python `0.7.0` ou une version ultérieure.
+ Pour les applications .Net, vous devez exécuter le AWS Distro for OpenTelemetry SDK for .Net `1.6.0` ou une version ultérieure.

Les métriques d’exécution ne sont pas collectées pour les applications Node.js.

Les métriques d’exécution sont facturées dans le cadre des coûts de la vigie applicative. Pour plus d'informations sur CloudWatch les tarifs, consultez [Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing).

**Note**  
**Problèmes connus**  
La collecte de métriques d'exécution dans la version v1.32.5 du SDK Java est connue pour ne pas fonctionner avec les applications utilisant Wildfly. JBoss Ce problème s'étend au module complémentaire Amazon CloudWatch Observability EKS, affectant les `2.3.0-eksbuild.1` versions `2.6.0-eksbuild.1` suivantes. Le problème est résolu dans la version du SDK Java `v1.32.6` et dans la version du module complémentaire Amazon CloudWatch Observability EKS. `v3.0.0-eksbuild.1`  
Si vous êtes concerné, mettez à niveau la version du kit SDK Java ou désactivez la collecte des métriques d’exécution en ajoutant la variable d’environnement `OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false` à votre application. 

### Métriques d’exécution Java
<a name="AppSignals-RuntimeMetrics-JVM"></a>

La vigie applicative collecte les métriques JVM suivantes à partir des applications Java que vous activez pour la vigie applicative. Toutes les métriques d'exécution sont envoyées CloudWatch dans l'espace de `ApplicationSignals` noms et sont collectées avec le jeu de `Environment` dimensions `Service` et.


| Nom des métriques | Description | Statistiques significatives | 
| --- | --- | --- | 
|  `JVMGCDuration` |  Métrique agrégée pour la durée des actions de récupérateur de mémoire JVM. Unité : millisecondes  | Somme, moyenne, minimum, maximum | 
|  `JVMGCOldGenDuration` |  Métrique agrégée pour la durée des actions de récupérateur de mémoire JVM de l’ancienne génération. Disponible uniquement dans G1. Unité : millisecondes  | Somme, moyenne, minimum, maximum | 
|  `JVMGCYoungGenDuration` |  Métrique agrégée pour la durée des actions de récupérateur de mémoire JVM de de la nouvelle génération. Disponible uniquement dans G1. Unité : millisecondes  | Somme, moyenne, minimum, maximum | 
|  `JVMGCCount` |  Métrique agrégée pour le nombre d’actions de récupérateur de mémoire JVM. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `JVMGCOldGenCount` |  Métrique agrégée pour le nombre d’actions de récupérateur de mémoire JVM de l’ancienne génération. Disponible uniquement dans G1. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `JVMGCYoungGenCount` |  Métrique agrégée pour le nombre d’actions de récupérateur de mémoire JVM de la nouvelle génération. Disponible uniquement dans G1. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `JVMMemoryHeapUsed` |  Quantité de mémoire de tas utilisée. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `JVMMemoryUsedAfterLastGC` |  Quantité de mémoire utilisée, telle que mesurée après le dernier événement de récupérateur de mémoire sur ce groupe. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `JVMMemoryOldGenUsed` |  Quantité de mémoire utilisée par l’ancienne génération. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `JVMMemorySurvivorSpaceUsed` |  Quantité de mémoire de tas utilisée par l’espace survivant. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `JVMMemoryEdenSpaceUsed` |  Quantité de mémoire utilisée par l’espace eden. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `JVMMemoryNonHeapUsed` |  Quantité de mémoire non-tas utilisée. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `JVMThreadCount` |  Nombre de threads en cours d’exécution, y compris les threads daemon et non daemon. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `JVMClassLoaded` |  Nombre de classes chargées. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `JVMCpuTime` |  Le temps processeur utilisé par le processus, tel que rapporté par la JVM. Unité : Aucune (nanosecondes)  | Somme, moyenne, minimum, maximum | 
|  `JVMCpuRecentUtilization` |  Le temps processeur récemment utilisé par le processus, tel que rapporté par la JVM. Unité : aucune  | Moyenne, Minimum, Maximum | 

### Métriques d’exécution Python
<a name="AppSignals-RuntimeMetrics-Python"></a>

La vigie applicative collecte les métriques suivantes à partir des applications Python que vous activez pour la vigie applicative. Toutes les métriques d'exécution sont envoyées CloudWatch dans l'espace de `ApplicationSignals` noms et sont collectées avec le jeu de `Environment` dimensions `Service` et.


| Nom des métriques | Description | Statistiques significatives | 
| --- | --- | --- | 
|  `PythonProcessGCCount` |  Le nombre total d’objets actuellement suivis. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `PythonProcessGCGen0Count` |  Le nombre d’objets actuellement suivis dans Génération 0. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `PythonProcessGCGen1Count` |  Le nombre d’objets actuellement suivis dans Génération 1. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `PythonProcessGCGen2Count` |  Le nombre d’objets actuellement suivis dans Génération 2. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `PythonProcessVMSMemoryUsed` |  Quantité totale de mémoire virtuelle utilisée par le processus. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `PythonProcessRSSMemoryUsed` |  Quantité totale de mémoire physique non permutée utilisée par le processus. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `PythonProcessThreadCount` |  Nombre de threads actuellement utilisés par le processus. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `PythonProcessCpuTime` |  Temps processeur utilisé par le processus. Unité : secondes  | Somme, moyenne, minimum, maximum | 
|  `PythonProcessCpuUtilization` |  Utilisation du processeur par le processus. Unité : aucune  | Moyenne, Minimum, Maximum | 

### Métrique d’exécution .Net
<a name="AppSignals-RuntimeMetrics-Python"></a>

La vigie applicative collecte les métriques suivantes à partir des applications .Net que vous activez pour la vigie applicative. Toutes les métriques d'exécution sont envoyées CloudWatch dans l'espace de `ApplicationSignals` noms et sont collectées avec le jeu de `Environment` dimensions `Service` et.


| Nom des métriques | Description | Statistiques significatives | 
| --- | --- | --- | 
|  `DotNetGCGen0Count` |  Nombre total de métriques de récupérateur de mémoire suivies dans Génération 0 depuis le démarrage du processus. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `DotNetGCGen1Count` |  Nombre total de métriques de récupérateur de mémoire suivies dans Génération 1 depuis le démarrage du processus. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `DotNetGCGen2Count` |  Nombre total de métriques de récupérateur de mémoire suivies dans Génération 2 depuis le démarrage du processus. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `DotNetGCDuration` |  Durée totale de pause dans le récupérateur de mémoire depuis le démarrage du processus. Unité : aucune  | Somme, moyenne, minimum, maximum | 
|  `DotNetGCGen0HeapSize` |  Taille du tas (y compris la fragmentation) de Génération 0 observée lors du dernier récupérateur de mémoire. Cette métrique n’est disponible qu’après la fin du premier récupérateur de mémoire. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `DotNetGCGen1HeapSize` |  Taille du tas (y compris la fragmentation) de Génération 1 observée lors du dernier récupérateur de mémoire. Cette métrique n’est disponible qu’après la fin du premier récupérateur de mémoire. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `DotNetGCGen2HeapSize` |  Taille du tas (y compris la fragmentation) de Génération 2 observée lors du dernier récupérateur de mémoire. Cette métrique n’est disponible qu’après la fin du premier récupérateur de mémoire. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `DotNetGCLOHHeapSize` |  Taille du tas d’objets volumineux (y compris la fragmentation) observée lors du dernier récupérateur de mémoire. Cette métrique n’est disponible qu’après la fin du premier récupérateur de mémoire. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `DotNetGCPOHHeapSize` |  Taille du tas d’objets épinglés (y compris la fragmentation) observée lors du dernier récupérateur de mémoire. Cette métrique n’est disponible qu’après la fin du premier récupérateur de mémoire. Unité : octets  | Moyenne, Minimum, Maximum | 
|  `DotNetThreadCount` |  Nombre de threads du groupe de threads actuellement existants. Unité : aucune  | Moyenne, Minimum, Maximum | 
|  `DotNetThreadQueueLength` |  Nombre d’éléments de travail actuellement en attente d’être traités par le groupe de threads. Unité : aucune  | Moyenne, Minimum, Maximum | 

## Désactivation de la collecte des métriques d’exécution
<a name="AppSignals-RuntimeMetrics-Disable"></a>

Les métriques d’exécution sont collectées par défaut pour les applications Java et Python qui sont activées pour la vigie applicative. Si vous voulez désactiver la collecte de ces métriques, veuillez suivre les instructions de cette section pour votre environnement.

### Amazon EKS
<a name="AppSignals-RuntimeMetrics-Disable-EKS"></a>

Pour désactiver les métriques d’exécution dans les applications Amazon EKS au niveau de l’application, ajoutez la variable d’environnement suivante à votre spécification de charge de travail.

```
env:
    - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED 
      value: "false"
```

Pour désactiver les métriques d'exécution dans les applications Amazon EKS au niveau du cluster, appliquez la configuration à la configuration avancée de votre module complémentaire Amazon CloudWatch Observability EKS.

```
{
  "agent": {
    "config": {
      "traces": {
        "traces_collected": {
          "application_signals": {
            
          }
        }
      },
      "logs": {
        "metrics_collected": {
          "application_signals": {
            
          }
        }
      }
    },
    "manager": {
      "autoInstrumentationConfiguration": {
        "java": {
          "runtime_metrics": {
            "enabled": false
          }
        },
        "python": {
          "runtime_metrics": {
            "enabled": false
          }
        },
        "dotnet": {
          "runtime_metrics": {
            "enabled": false
          }
        }
      }
    }
  }
}
```

### Amazon ECS
<a name="AppSignals-RuntimeMetrics-Disable-ECS"></a>

Pour désactiver les métriques d’exécution dans les applications Amazon ECS, ajoutez la variable d’environnement `OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false` dans la nouvelle révision de définition de tâche et redéployez l’application.

### EC2
<a name="AppSignals-RuntimeMetrics-Disable-EC2"></a>

Pour désactiver les métriques d’exécution dans les applications Amazon EC2, ajoutez la variable d’environnement `OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false` avant le démarrage de l’application.

### Kubernetes
<a name="AppSignals-RuntimeMetrics-Disable-Kubernetes"></a>

Pour désactiver les métriques d’exécution dans les applications Kubernetes au niveau de l’application, ajoutez la variable d’environnement suivante à votre spécification de charge de travail.

```
env:
    - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED 
      value: "false"
```

Pour désactiver les métriques d’exécution dans les applications Kubernetes au niveau du cluster, utilisez ce qui suit :

```
helm upgrade ... \
--set-string manager.autoInstrumentationConfiguration.java.runtime_metrics.enabled=false \
--set-string manager.autoInstrumentationConfiguration.python.runtime_metrics.enabled=false \
-\-set-string manager.autoInstrumentationConfiguration.dotnet.runtime_metrics.enabled=false
```