Métricas que Application Signals recopila
Application Signals recopila tanto métricas de aplicaciones estándar como métricas de tiempo de ejecución de las aplicaciones para las que se habilita.
Las métricas de las aplicaciones estándar se relacionan con los aspectos más críticos del rendimiento, la latencia y la disponibilidad de un servicio.
Las métricas de tiempo de ejecución rastrean las métricas de las aplicaciones a lo largo del tiempo, incluidos el uso de memoria, el uso de la CPU y la recopilación de elementos no utilizados. Application Signals muestra las métricas de tiempo de ejecución en el contexto de los servicios que se han habilitado para Application Signals. Cuando tiene un problema operativo, observar las métricas de tiempo de ejecución puede resultar útil para ayudar a encontrar la causa raíz del problema. Por ejemplo, puede ver si los picos de latencia de un servicio se relacionan con los picos de una métrica de tiempo de ejecución.
Temas
Recopilación de métricas de aplicaciones estándar
Application Signals recopila métricas de aplicaciones estándar a partir de los servicios que detecta. Estas métricas se relacionan con los aspectos más críticos del rendimiento de un servicio: latencia, fallos y errores. Pueden ayudarlo a identificar problemas, monitorear las tendencias de rendimiento y optimizar los recursos para mejorar la experiencia general del usuario.
La siguiente tabla enumera las métricas recopiladas por Application Signals. Estas métricas se envían a CloudWatch en el espacio de nombres ApplicationSignals
.
Métrica | Descripción |
---|---|
|
El retraso antes de la transferencia de datos comienza una vez realizada la solicitud. Unidades: milisegundos |
|
Un recuento de los errores del servidor HTTP 5XX y de los errores de estado del intervalo de OpenTelemetry. Unidades: ninguna |
|
Un recuento de los errores HTTP 4XX del cliente. Se los considera errores de solicitud que no se deben a problemas de servicio. Por lo tanto, la métrica Unidades: ninguna |
La métrica Availability
que se muestra en los paneles de Application Signals se calcula como (1 - Faults
/Total)*100. El total de respuestas incluye todas las respuestas y se deriva de SampleCount(Latency)
. Las respuestas correctas son todas las respuestas sin el error 5XX
. Las respuestas 4XX
se consideran correctas cuando Application Signals calcula la Availability
.
Dimensiones recopiladas y combinaciones de dimensiones
Se definen las siguientes dimensiones para cada una de las métricas de aplicaciones estándar. Para obtener más información acerca de las dimensiones, consulte Dimensiones.
Se recopilan diferentes dimensiones para las métricas de servicio y las métricas de dependencia. Dentro de los servicios detectados por Application Signals, cuando el microservicio A llama al microservicio B, el microservicio B atiende la solicitud. En este caso, el microservicio A emite métricas de dependencia y el microservicio B emite métricas de servicio. Cuando un cliente llama al microservicio A, el microservicio A atiende la solicitud y emite las métricas del servicio.
Dimensiones de métricas de servicio
Se recopilan las siguientes dimensiones para las métricas de servicio.
Dimensión | Descripción |
---|---|
|
El nombre del servicio de . El valor máximo es de 255 caracteres. |
|
El nombre de la operación de la API u otra actividad. La longitud máxima es de 1024 caracteres. Actualmente, solo puede establecer objetivos de servicios para las operaciones si el nombre de la operación tiene 194 caracteres o menos. |
|
El nombre del entorno en el que se ejecutan los servicios. Si los servicios no se ejecutan en Amazon EKS, puede especificar un valor personalizado opcional para La longitud máxima es de 259 caracteres. |
Al observar estas métricas en la consola de CloudWatch, puede verlas con las siguientes combinaciones de dimensiones:
-
[Environment, Service, Operation, [Latency, Error, Fault]]
-
[Environment, Service, [Latency, Error, Fault]]
Dimensiones de las métricas de dependencia
Las siguientes dimensiones se recopilan para las métricas de dependencia:
Dimensión | Descripción |
---|---|
|
El nombre del servicio de . El valor máximo es de 255 caracteres. |
|
El nombre de la operación de la API u otra operación. El valor máximo es de 1024 caracteres. |
|
El nombre del servicio remoto que se invoca. El valor máximo es de 255 caracteres. |
|
El nombre de la operación de API que se invoca. El valor máximo es de 1024 caracteres. |
|
El nombre del entorno en el que se ejecutan los servicios. Si los servicios no se ejecutan en Amazon EKS, puede especificar un valor personalizado opcional para La longitud máxima es de 259 caracteres. |
|
El nombre del entorno en el que se ejecutan los servicios de dependencia. El parámetro El valor máximo es de 259 caracteres. |
|
El nombre del recurso invocado por una llamada remota. El parámetro El valor máximo es de 1024 caracteres. |
|
El tipo del recurso invocado por una llamada remota. Solo es obligatorio si El valor máximo es de 1024 caracteres. |
Al observar estas métricas en la consola de CloudWatch, puede verlas con las siguientes combinaciones de dimensiones:
Se ejecuta en clústeres de 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étricas de tiempo de ejecución
Application Signals utiliza el SDK de AWS Distro para OpenTelemetry para recopilar automáticamente métricas compatibles con OpenTelemetry de las aplicaciones en Java y Python. Para que las métricas de tiempo de ejecución se recopilen, se deben cumplir los siguientes requisitos previos:
La versión del agente de CloudWatch debe ser
1.300049.1
o posterior.Si utiliza el complemento de observabilidad de EKS de Amazon CloudWatch, debe ser una versión
2.30-eksbuild.1
o posterior. Si actualiza el complemento, tiene que reiniciar las aplicaciones.Para las aplicaciones en Java, debe ejecutar
1.32.5
o una versión posterior del SDK de AWS Distro para OpenTelemetry para Java.Para las aplicaciones en Python, debe ejecutar
0.7.0
o una versión posterior del SDK AWS Distro para OpenTelemetry para Python.Para las aplicaciones .Net, debe ejecutar
1.6.0
o una versión posterior del SDK de AWS Distro para OpenTelemetry para .Net.
Las métricas de tiempo de ejecución no se recopilan para las aplicaciones Node.js.
Las métricas de tiempo de ejecución se cobran como parte de los costos de Application Signals. Para obtener más información sobre los precios de CloudWatch, consulte Precios de Amazon CloudWatch
nota
Problemas conocidos
Se sabe que la colección de métricas de tiempo de ejecución de la versión 1.32.5 del SDK de Java no funciona con aplicaciones que utilizan JBoss Wildfly. Este problema se extiende al complemento de observabilidad de EKS de Amazon CloudWatch y afecta a todas las versiones, de 2.3.0-eksbuild.1
a 2.6.0-eksbuild.1
. El problema ya está solucionado en la versión v1.32.6
del SDK de Java y en la versión v3.0.0-eksbuild.1
del complemento de observabilidad de EKS de Amazon CloudWatch.
Si se ve afectado, cambie a una versión posterior de SDK de Java o desactive la colección de métricas de tiempo de ejecución agregando la variable de entorno OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
a la aplicación.
Métricas de tiempo de ejecución de Java
Application Signals recopila las siguientes métricas de JVM de las aplicaciones en Java que se habilitan para Application Signals. Todas las métricas de tiempo de ejecución se envían a CloudWatch en el espacio de nombres ApplicationSignals
y se recopilan con el conjunto de dimensiones Service
y Environment
.
Nombre de métrica | Descripción | Estadísticas significativas |
---|---|---|
|
Métrica agregada sobre la duración de las acciones de recopilación de elementos no utilizados de JVM. Unidad: milisegundos |
Suma, Promedio, Mínimo, Máximo |
|
Métrica agregada sobre la duración de las acciones de recopilación de elementos no utilizados de JVM de la generación anterior. Solo disponible en G1. Unidad: milisegundos |
Suma, Promedio, Mínimo, Máximo |
|
Métrica agregada sobre la duración de las acciones de recopilación de elementos no utilizados de JVM de la generación nueva. Solo disponible en G1. Unidad: milisegundos |
Suma, Promedio, Mínimo, Máximo |
|
Métrica agregada sobre la cantidad de acciones de recopilación de elementos no utilizados de JVM. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
Métrica agregada sobre la cantidad de acciones de recopilación de elementos no utilizados de JVM de la generación anterior. Solo disponible en G1. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
Métrica agregada sobre la cantidad de acciones de recopilación de elementos no utilizados de JVM de la generación nueva. Solo disponible en G1. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
La cantidad de la pila memoria utilizada. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
Cantidad de memoria utilizada, medida después del evento de recopilación de elementos no utilizados más reciente en este grupo. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
Cantidad de memoria utilizada por la generación anterior. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
Cantidad de la pila de memoria utilizada por el espacio Survivor. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
La cantidad de memoria utilizada por el espacio Eden. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
Cantidad de memoria ajena a la pila utilizada. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
Número de subprocesos en ejecución, incluidos subprocesos daemon y no daemon. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
Número de clases cargadas. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
Tiempo de CPU utilizado por el proceso, según lo informado por la JVM. Unidad: ninguna (nanosegundos) |
Suma, Promedio, Mínimo, Máximo |
|
El tiempo de CPU reciente usado por el proceso, según lo informado por la JVM. Unidad: ninguna |
Promedio, Mínimo, Máximo |
Métricas de tiempo de ejecución de Python
Application Signals recopila las siguientes métricas de las aplicaciones en Python que se habilitan para Application Signals. Todas las métricas de tiempo de ejecución se envían a CloudWatch en el espacio de nombres ApplicationSignals
y se recopilan con el conjunto de dimensiones Service
y Environment
.
Nombre de métrica | Descripción | Estadísticas significativas |
---|---|---|
|
Número total de objetos que se están rastreando actualmente. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
Número de objetos que se están rastreando actualmente en la generación 0. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
Número de objetos que se están rastreando actualmente en la generación 1. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
Número de objetos que se están rastreando actualmente en la generación 2. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
Cantidad total de memoria virtual que el proceso utilizó. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
Cantidad total de memoria física no intercambiada que el proceso utilizó. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
Número de subprocesos que el proceso utiliza actualmente. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
Tiempo de CPU que el proceso utiliza. Unidad: segundos |
Suma, Promedio, Mínimo, Máximo |
|
Uso de la CPU del proceso. Unidad: ninguna |
Promedio, Mínimo, Máximo |
Métricas de tiempo de ejecución de .Net
Application Signals recopila las siguientes métricas de las aplicaciones .Net que se habilitan para Application Signals. Todas las métricas de tiempo de ejecución se envían a CloudWatch en el espacio de nombres ApplicationSignals
y se recopilan con el conjunto de dimensiones Service
y Environment
.
Nombre de métrica | Descripción | Estadísticas significativas |
---|---|---|
|
La cantidad total de métricas de recopilación de elementos no utilizados de las que se realiza un seguimiento en Generación 0 desde que se inició el proceso. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
La cantidad total de métricas de recopilación de elementos no utilizados de las que se realiza un seguimiento en Generación 1 desde que se inició el proceso. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
La cantidad total de métricas de recopilación de elementos no utilizados de las que se realiza un seguimiento en Generación 2 desde que se inició el proceso. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
El tiempo total de pausa en la recopilación de elementos no utilizados desde que se inició el proceso. Unidad: ninguna |
Suma, Promedio, Mínimo, Máximo |
|
El tamaño del montón (incluida la fragmentación) de la Generación 0 observado durante la última recopilación de elementos no utilizados. notaEsta métrica solo estará disponible una vez finalizada la primera recopilación de elementos no utilizados. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
El tamaño del montón (incluida la fragmentación) de la Generación 1 observado durante la última recopilación de elementos no utilizados. notaEsta métrica solo estará disponible una vez finalizada la primera recopilación de elementos no utilizados. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
El tamaño del montón (incluida la fragmentación) de la Generación 2 observado durante la última recopilación de elementos no utilizados. notaEsta métrica solo estará disponible una vez finalizada la primera recopilación de elementos no utilizados. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
El tamaño del montón de objetos grandes (incluida la fragmentación) observado durante la última recopilación de elementos no utilizados. notaEsta métrica solo estará disponible una vez finalizada la primera recopilación de elementos no utilizados. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
El tamaño del montón de objetos anclados (incluida la fragmentación) observado durante la última recopilación de elementos no utilizados. notaEsta métrica solo estará disponible una vez finalizada la primera recopilación de elementos no utilizados. Unidad: bytes |
Promedio, Mínimo, Máximo |
|
La cantidad de subprocesos del grupo de subprocesos que existen actualmente. Unidad: ninguna |
Promedio, Mínimo, Máximo |
|
La cantidad de elementos de trabajo que están actualmente en cola para ser procesados por el grupo de subprocesos. Unidad: ninguna |
Promedio, Mínimo, Máximo |
Deshabilitación de la recopilación de métricas de tiempo de ejecución
Las métricas de tiempo de ejecución se recopilan de forma predeterminada para las aplicaciones en Java y Python que están habilitadas para Application Signals. Si desea deshabilitar la recopilación de estas métricas, siga las instrucciones de esta sección para su entorno.
Amazon EKS
Para deshabilitar las métricas de tiempo de ejecución en las aplicaciones de Amazon EKS en el nivel de aplicación, agregue la siguiente variable de entorno a la especificación de la carga de trabajo.
env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"
Para deshabilitar las métricas de tiempo de ejecución en las aplicaciones de Amazon EKS en el nivel de clúster, aplique la configuración a la configuración avanzada del complemento de observabilidad de EKS de Amazon CloudWatch.
{ "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
Para deshabilitar las métricas de tiempo de ejecución en las aplicaciones de Amazon ECS, agregue la variable de entorno OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
en la nueva revisión de la definición de tareas y vuelva a implementar la aplicación.
EC2
Para deshabilitar las métricas de tiempo de ejecución en las aplicaciones de Amazon EC2, agregue la variable de entorno OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
antes de que se inicie la aplicación.
Kubernetes
Para deshabilitar las métricas de tiempo de ejecución en las aplicaciones de Kubernetes en el nivel de aplicación, agregue la siguiente variable de entorno a la especificación de la carga de trabajo.
env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"
Para deshabilitar las métricas de tiempo de ejecución en las aplicaciones de Kubernetes en el nivel de clúster, use lo siguiente:
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