Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Publicación de métricas personalizadas de un entorno en Amazon CloudWatch
Puede publicar los datos recopilados mediante informes de estado mejorado de AWS Elastic Beanstalk en Amazon CloudWatch como métricas personalizadas. Gracias a la publicación de métricas en CloudWatch, puede supervisar los cambios que se producen con el tiempo en el rendimiento de la aplicación e identificar posibles problemas, ya que puede hacer un seguimiento del uso de los recursos y la escala de latencia de las solicitudes con carga.
Cuando se publican métricas en CloudWatch, también se pueden utilizar con gráficos de supervisión y alarmas. Al utilizar informes de estado avanzados, se habilita automáticamente una métrica gratuita: EnvironmentHealth. Todas las métricas personalizadas, excepto EnvironmentHealth, generan cargas en CloudWatch
Para publicar métricas personalizadas sobre un entorno en CloudWatch, primero deben habilitarse los informes de estado avanzados en el entorno. Para obtener instrucciones, consulte Habilitación de informes de estado mejorado de Elastic Beanstalk.
Temas
Métricas de informes de estado avanzados
Cuando habilite los informes de estado avanzados en el entorno, el sistema de informes de estado avanzados publica automáticamente una métrica personalizada de CloudWatch, EnvironmentHealth. Para publicar otras métricas en CloudWatch, configure el entorno con dichas métricas utilizando la consola de Elastic Beanstalk, la CLI de EB o .ebextensions.
Puede publicar las siguientes métricas de estado avanzado desde su entorno en CloudWatch.
Métricas disponibles: todas las plataformas
EnvironmentHealth
-
Solo se aplica al entorno. Si no se configuran otras métricas, esta es la única métrica de CloudWatch que publica el sistema de informes de estado avanzado. El estado del entorno está representado por uno de los siete estados. En la consola de CloudWatch, estos estados se corresponden con los siguientes valores:
-
0: OK
-
1: Info
-
5: Unknown
-
10: No data
-
15: Warning
-
20: Degraded
-
25: Severe
-
InstancesSevere
InstancesDegraded
InstancesWarning
InstancesInfo
InstancesOk
InstancesPending
InstancesUnknown
InstancesNoData
-
Solo se aplica al entorno. Estas métricas indican el número de instancias del entorno y el estado de cada una.
InstancesNoData
indica el número de instancias para las que no se reciben datos. ApplicationRequestsTotal
ApplicationRequests5xx
ApplicationRequests4xx
ApplicationRequests3xx
ApplicationRequests2xx
-
Se aplica a la instancia y al entorno. Indica el número total de solicitudes completado por la instancia o el entorno, así como el número de solicitudes completadas con el código de estado de cada categoría.
ApplicationLatencyP10
ApplicationLatencyP50
ApplicationLatencyP75
ApplicationLatencyP85
ApplicationLatencyP90
ApplicationLatencyP95
ApplicationLatencyP99
ApplicationLatencyP99.9
-
Se aplica a la instancia y al entorno. Indica el período medio de tiempo, en segundos, que tarda en completarse el porcentaje x de las solicitudes más rápidas.
InstanceHealth
-
Se aplica solo a la instancia. Indica el estado actual de la instancia. El estado de la instancia está representado por uno de los siete estados. En la consola de CloudWatch, estos estados se corresponden con los siguientes valores:
-
0: OK
-
1: Info
-
5: Unknown
-
10: No data
-
15: Warning
-
20: Degraded
-
25: Severe
-
Métricas disponibles: Linux
CPUIrq
CPUIdle
CPUUser
CPUSystem
CPUSoftirq
CPUIowait
CPUNice
-
Se aplica solo a la instancia. Indica el porcentaje de tiempo que la CPU ha pasado en cada estado durante el último minuto.
LoadAverage1min
-
Se aplica solo a la instancia. Carga media de la CPU de la instancia durante el último minuto.
RootFilesystemUtil
-
Se aplica solo a la instancia. Indica el porcentaje de espacio en disco que está en uso.
Métricas disponibles: Windows
CPUIdle
CPUUser
CPUPrivileged
-
Se aplica solo a la instancia. Indica el porcentaje de tiempo que la CPU ha pasado en cada estado durante el último minuto.
Configuración de métricas de CloudWatch mediante la consola de Elastic Beanstalk
Puede utilizar la consola de Elastic Beanstalk para configurar el entorno de forma que pueda publicar métricas de los informes de estado avanzados en CloudWatch y puedan utilizarse con gráficos de supervisión y alarmas.
Para configurar métricas personalizadas de CloudWatch en la consola de Elastic Beanstalk
Abra la consola de Elastic Beanstalk
y, en la lista Regions (Regiones), seleccione su Región de AWS. -
En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.
nota
Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.
En el panel de navegación, elija Configuration (Configuración).
-
En la categoría de configuración Monitoring (Monitorización), seleccione Edit (Editar).
-
En Health reporting (Informe de estado), seleccione las métricas de instancia y de entorno que desee publicar en CloudWatch. Para seleccionar varias métricas, presione la tecla Ctrl mientras hace la selección.
-
Para guardar los cambios, elija Aplicar en la parte inferior de la página.
Al habilitar las métricas personalizadas de CloudWatch, estas se agregan a la lista de métricas disponibles en la página Monitoring (Supervisión).
Configuración de métricas personalizadas de CloudWatch mediante la CLI de EB
Puede utilizar la CLI de EB para configurar métricas personalizadas. Para ello, guarde la configuración del entorno localmente, agregue una entrada que defina las métricas que se van a publicar y cargue la configuración en Elastic Beanstalk. Puede aplicar la configuración guardada al entorno durante o después de la creación.
Para configurar las métricas personalizadas de CloudWatch con la CLI de EB y las configuraciones guardadas
-
Inicialice la carpeta del proyecto con eb init.
-
Cree un entorno ejecutando el comando eb create.
-
Guarde una plantilla de configuración localmente ejecutando el comando eb config save. En el ejemplo siguiente, se utiliza la opción
--cfg
para especificar el nombre de la configuración.$
eb config save --cfg
Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml01-base-state
-
Abra el archivo de configuración guardado en un editor de texto.
-
En
OptionSettings
>aws:elasticbeanstalk:healthreporting:system:
, agregue una claveConfigDocument
para habilitar cada una de las métricas de CloudWatch que desee. Por ejemplo, en el ejemplo siguiente,ConfigDocument
publica las métricasApplicationRequests5xx
yApplicationRequests4xx
en el nivel del entorno y la métricaApplicationRequestsTotal
en el nivel de la instancia.OptionSettings: ... aws:elasticbeanstalk:healthreporting:system:
ConfigDocument: CloudWatchMetrics: Environment: ApplicationRequests5xx: 60 ApplicationRequests4xx: 60 Instance: ApplicationRequestsTotal: 60 Version: 1
SystemType: enhanced ...En el ejemplo, 60 indica el número de segundos entre las mediciones. En la actualidad, este es el único valor que se permite.
nota
Puede combinar
CloudWatchMetrics
yRules
en el mismo ajuste de opción deConfigDocument
.Rules
se describen en Configuración de las reglas de informes de estado avanzados de un entorno.Si ha utilizado previamente
Rules
para configurar las reglas de estado avanzado, a continuación, el archivo de configuración que recupere mediante el comando eb config save ya tiene una claveConfigDocument
con una secciónRules
. No lo elimine; agrega una secciónCloudWatchMetrics
en el mismo valor de la opciónConfigDocument
. -
Guarde el archivo de configuración y cierre el editor de texto. En este ejemplo, el archivo de configuración actualizado se ha guardado con otro nombre (
02-cloudwatch-enabled.cfg.yml
) que sea diferente al del archivo de configuración que se descargó. De este modo, se crea una configuración guardada distinta cuando se cargue el archivo. Puede utilizar el mismo nombre que el del archivo descargado para sobrescribir la configuración existente sin crear una nueva. -
Utilice el comando eb config put para cargar el archivo de configuración actualizado a Elastic Beanstalk.
$
eb config put
02-cloudwatch-enabled
Si utiliza los comandos eb config
get
yput
con configuraciones guardadas, no incluya la extensión de archivo. -
Aplique la configuración guardada en el entorno que está en ejecución.
$
eb config --cfg
02-cloudwatch-enabled
La opción
--cfg
especifica el archivo de configuración designado que se aplica al entorno. Puede guardar el archivo de configuración localmente o en Elastic Beanstalk. Si hay un archivo de configuración con el nombre especificado en las dos ubicaciones, la CLI de EB utiliza el archivo local.
Proporcionar documentos de configuración de métricas personalizadas
El documento de configuración (config) de métricas personalizadas de Amazon CloudWatch es un documento JSON donde se muestran las métricas que se van a publicar en los niveles del entorno y de la instancia. En el ejemplo siguiente, se muestra un documento de configuración que habilita todas las métricas personalizadas disponibles en Linux.
{
"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
}
En el caso de la AWS CLI, debe pasar el documento como valor de la clave Value
en un argumento de configuración de opciones, que en sí mismo es un objeto JSON. En este caso, las comillas del documento insertado deben escribirse con caracteres de escape.
$ 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}"
}
]'
En los archivos de configuración .ebextensions
de YAML, puede proporcionar el documento JSON tal y como está.
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
}