eG Monitoring
 

Measures reported by AWSEbeanstalkTest

AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services.

You can simply upload your code and Elastic Beanstalk automatically handles the deployment, from capacity provisioning, load balancing, auto-scaling to application health monitoring. At the same time, you retain full control over the AWS resources powering your application and can access the underlying resources at any time.

Elastic Beanstalk supports applications developed in Java, PHP, .NET, Node.js, Python, and Ruby, as well as different container types for each language. A container defines the infrastructure and software stack to be used for a given environment. When you deploy your application, Elastic Beanstalk provisions one or more AWS resources, such as Amazon EC2 instances. The software stack that runs on your Amazon EC2 instances depends on the container type. For example, Elastic Beanstalk supports two container types for Node.js: a 32-bit Amazon Linux image and a 64-bit Amazon Linux image. Each runs a software stack tailored to hosting a Node.js application.

To use Elastic Beanstalk, you create an application, upload an application version in the form of an application source bundle (for example, a Java .war file) to Elastic Beanstalk, and then provide some information about the application. Elastic Beanstalk automatically launches an environment and creates and configures the AWS resources needed to run your code. After your environment is launched, you can then manage your environment and deploy new application versions.

The stability of an application deployed using Elastic Beanstalk relies on the overall health and performance of the underlying environment and the instances in the environment. Unhealthy and resource-starved instances and environments, and those experiencing processing errors/bottlenecks consistently, can adversely impact application performance and impair user productivity. If this is to be averted, then administrators should periodically check on the health of the environments configured for application deployment and instances that underlie applications, promptly detect abnormalities, and rapidly initiate measures to mitigate them. This is where the AWSEbeanstalkTest test helps!

By default, this test automatically discovers the instances that underlie applications and measures the following for each instance:

  • Overall health;

  • Responsiveness to requests;

  • Resource usage;

  • HTTP errors;

In the process, the test leads administrators to unhealthy instances.

Optionally, you can configure the test to report metrics for each environment, instead of instance. This environment-level insight enables administrators to identify the precise environments that have been affected by the unhealthy instances.

Outputs of the test : One set of results for each instance / environment.

First-level descriptor: AWS Region

Second-level descriptor: Instance ID / Environment name, depending upon the option chosen from the BEANSTALK FILTER NAME parameter of this test

The measures made by this test are as follows:

Note:

By default, this measure reports the Measure Values listed in the table above to indicate the status of an instance. In the graph of this measure however, the same is indicated using the numeric equivalents only.

Measurement Description Measurement Unit Interpretation
Appln_req_total By default, this measure represents the number of requests completed by this instance.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the number of requests that were completed by this environment.
Number  
Appln_req_2xx By default, this measure represents the number of requests to this instance that resulted in HTTP 2xx response codes.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the number of requests to this environment that resulted in HTTP 2xx response codes.
Number This class of status codes indicates the action requested by the client was received, understood and accepted.

Ideally therefore, the value of this measure should be high.
Appln_req_3xx By default, this measure represents the number of requests to this instance that resulted in HTTP 3xx response codes.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the number of requests to this environment that resulted in HTTP 3xx response codes.
Number This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection.
Appln_req_4xx By default, this measure represents the number of requests to this instance that resulted in HTTP 4xx response codes.

If the Beanstalk Filter Name is set to EnvironmentName, then this measure represents the number of requests to this environment that resulted in HTTP 4xx response codes.
Number This class of status code is intended for situations in which the error seems to have been caused by the client.

A non-zero value is hence desired for this measure.
Appln_req_5xx By default, this measure represents the number of requests to this instance that resulted in HTTP 5xx response codes.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the number of requests to this environment that resulted in HTTP 5xx response codes.
Number A non-zero value is hence desired for this measure.
Appln_latncy_P10 By default, this measure represents the average time taken by this instance to complete 10 percent of the fastest requests.

If the BEANSTALK FILTER NAME is set to ENVIRONMENTNAME, then this measure represents the average time this environment took to complete 10 percent of the fastest requests.
Secs If the value of this measure is very high, it indicates that the instance/environment has very low processing power.
Appln_latncy_P50 By default, this measure represents the average time taken by this instance to complete 50 percent of the fastest requests.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the average time this environment took to complete 50 percent of the fastest requests.
Number If the value of this measure is very high, it indicates that the instance/environment has very low processing power.
Appln_latncy_P75 By default, this measure represents the average time taken by this instance to complete 75 percent of the fastest requests.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the average time this environment took to complete 75 percent of the fastest requests.
Secs If the value of this measure is very high, it indicates that the instance/environment has very low processing power.
Appln_latncy_P85 By default, this measure represents the average time taken by this instance to complete 85 percent of the fastest requests.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the average time this environment took to complete 85 percent of the fastest requests.
Secs If the value of this measure is very high, it indicates that the instance/environment has very low processing power.
Appln_latncy_P90 By default, this measure represents the average time taken by this instance to complete 90 percent of the fastest requests.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the average time this environment took to complete 90 percent of the fastest requests.
Secs If the value of this measure is very high, it indicates that the instance/environment has very low processing power.
Appln_latncy_P95 By default, this measure represents the average time taken by this instance to complete 95 percent of the fastest requests.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the average time this environment took to complete 95 percent of the fastest requests.
Secs If the value of this measure is very high, it indicates that the instance/environment has very low processing power.
Appln_latncy_P99 By default, this measure represents the average time taken by this instance to complete 99 percent of the fastest requests.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the average time this environment took to complete 99 percent of the fastest requests.
Secs If the value of this measure is very high, it indicates that the instance/environment has very low processing power.
Appln_latncy_P99_9 By default, this measure represents the average time taken by this instance to complete X percent of the fastest requests.

If the BEANSTALK FILTER NAME is set to EnvironmentName, then this measure represents the average time this environment took to complete X percent of the fastest requests.
Secs If the value of this measure is very high, it indicates that the instance/environment has very low processing power.
Env_health Indicates the current health status of this environment.   This measure is reported only for an Environment - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to EnvironmentName.

The values that this measure can report and their corresponding numeric values are detailed in the table below:

Measure Value Numeric Value
OK 0
Info 1
Unknown 5
No data 10
Warning 15
Degraded 20
Severe 25
The table below describes what each of the Measure Values denote for an environment:

Measure Value Description
OK Most instances in the environment are passing health checks and the health agent is not reporting major issues.
Info An operation is in progress on several instances in an environment.
Unknown Elastic Beanstalk and the health agent are reporting an insufficient amount of data on an instance.
No data One/more instances in the environment are not reporting any health status data.
Warning The health agent is reporting a moderate number of request failures or other issues for an environment.
Example: One instance in the environment has a status of Severe.
Degraded The health agent is reporting a high number of request failures or other issues for an environment.
Example: Environment is in the process of scaling up to 5 instances.
Message (Environment): 4 active instances is below Auto Scaling group minimum size 5.
Severe The health agent is reporting a very high number of request failures or other issues for an environment.
Example: Elastic Beanstalk is unable to contact the load balancer to get instance health.

Note:

By default, this measure reports the Measure Values listed in the table above to indicate the status of an environment. In the graph of this measure however, the same is indicated using the numeric equivalents only.

Instnce_Ok Indicates the number of instances in this environment with OK health status. Number This measure is reported only for an Environment - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to EnvironmentName.

An instance is said to be in the OK state if the instance is passing health checks and is completing requests normally.
Instnce_Pending Indicates the number of instances in this environment with Pending health status. Number This measure is reported only for an Environment - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to EnvironmentName.

An instance is said to be in the Pending state if an operation is in progress on thatn instance within the command timeout.
Instnce_Info Indicates the number of instances in this environment with Info health status. Number This measure is reported only for an Environment - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to EnvironmentName.

An instance is said to be in the Info state if an operation is in progress on that instance.
Instnce_Unknown Indicates the number of instances in this environment with Unknown health status. Number This measure is reported only for an Environment - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to EnvironmentName.

An instance is said to be in the Unknown state if Elastic Beanstalk and the health agent are reporting an insufficient amount of data on an instance.
Instnce_NoData Indicates the number of instances in this environment with Warning health status. Number This measure is reported only for an Environment - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to EnvironmentName.

An instance is said to be in the Nodata state if no health status data has been collected from that instance.
Instnce_Warning Indicates the number of instances in this environment with Info health status. Number This measure is reported only for an Environment - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to EnvironmentName.

An instance is said to be in the Warning state if an operation in progress on that instance and is taking a very long time.
Instnce_Degraded Indicates the number of instances in this environment with Degraded health status. Number This measure is reported only for an Environment - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to EnvironmentName.

An instance is said to be in the Degraded state if the health agent is reporting a high number of request failures or other issues for that instance. Ideally, the value of this measure should be 0.
Instnce_Severe Indicates the number of instances in this environment with Severe health status. Number This measure is reported only for an Environment - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to EnvironmentName.

An instance is said to be in the Severe state if the health agent is reporting a very high number of request failures or other issues for that instance. Ideally, the value of this measure should be 0.
Load_avg_1min Indicates the average CPU load of this instance over the last minute. Number This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

A high value is indicative of excessive CPU usage by an instance. Compare the value of this measure across instances to know which instance is consuming the maximum CPU. To know where that instance is spending its CPU, take a look at the values reported for the other CPU measures of this test.
Instance_Health=Instance status Indicates the current status of this instance.

Number This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

The values that this measure can report and their corresponding numeric values are detailed in the table below:

Measure Value Numeric Value
OK 0
Info 1
Unknown 5
No data 10
Warning 15
Degraded 20
Severe 25
The table below describes what each of the Measure Values denote for an instance:

Measure Value Description
OK An instance is passing health checks and is completing requests normally.
Info An operation is in progress on an instance.
Unknown Elastic Beanstalk and the health agent are reporting an insufficient amount of data on an instance.
No data An instance is not reporting any health status data.
Warning An operation in progress on an instance and is taking a very long time.
Degraded The health agent is reporting a high number of request failures or other issues for an instance.
Severe The health agent is reporting a very high number of request failures or other issues for an instance.
Root_filesys_util Indicates the percentage of disk space utilized by this instance. Percent This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

A value close to 100% is a cause for concern, as it implies that the instance is running out of disk space.
CPU_irq Indicates the percentage of time CPU of this instance was in interrupt request state. Percent This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

In a computer, an interrupt request (or IRQ) is a hardware signal sent to the processor that temporarily stops a running program and allows a special program, an interrupt handler, to run instead.
CPU_user Indicates the percentage of CPU time that this instance spent running user programs. Percent This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

If any instance is using CPU excessively, then compare the value of this measure with that of the CPU_irq, CPU_system, CPU_idle, CPU_iowait, CPU_nice, and CPU_softirq measures for that instance to know where CPU time has been spent the maximum - in running user processes? system processes? being idle? waiting for I/O? waiting for an interrupt handler? handling a software interrupt? or running nice processes?
CPU_idle Indicates the percentage of CPU time that this instance spent without processing any requests - i.e., just being idle. Percent This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

If any instance is using CPU excessively, then compare the value of this measure with that of the CPU_irq, CPU_system, CPU_user, CPU_iowait, CPU_nice, and CPU_softirq measures for that instance to know where CPU time has been spent the maximum - in running user processes? system processes? being idle? waiting for I/O? waiting for an interrupt handler? handling a software interrupt? or running nice processes?
CPU_system Indicates the percentage of CPU time that this instance spent on system-level processing. Percent This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

If any instance is using CPU excessively, then compare the value of this measure with that of CPU_irq, CPU_user, CPU_idle, CPU_iowait, CPU_nice, and CPU_softirq measures for that instance to know where CPU time has been spent the maximum - in running user processes? system processes? being idle? waiting for I/O? waiting for an interrupt handler? handling a software interrupt? or running nice processes?
CPU_softirq Indicates the percentage of CPU time that this instance spent in the soft interrupt request state. Percent This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

A software interrupt or soft interrupt is caused either by an exceptional condition in the processor itself, or a special instruction in the instruction set which causes an interrupt when it is executed.

If any instance is using CPU excessively, then compare the value of this measure with that of the CPU_irq, CPU_user, CPU_idle, CPU_iowait, CPU_nice, and CPU_system measures for that instance to know where CPU time has been spent the maximum - in running user processes? system processes? being idle? waiting for I/O? waiting for an interrupt handler? handling a software interrupt? or running nice processes?
CPU_iowait=Waitio CPU Indicates the percentage of CPU time that this instance spent waiting for I/O. Percent This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

If any instance is using CPU excessively, then compare the value of this measure with that of the CPU_irq, CPU_user, CPU_idle, CPU_nice, CPU_softirq, and CPU_system measures for that instance to know where CPU time has been spent the maximum - in running user processes? system processes? being idle? waiting for I/O? waiting for an interrupt handler? handling a software interrupt? or running nice processes?
CPU_nice Indicates the percentage of CPU time that this instance spent in running nice processes. Number This measure is reported only for an Instance - i.e., only if the ‘BEANSTALK FILTER NAME’ parameter is set to InstanceID.

If any instance is using CPU excessively, then compare the value of this measure with that of the Interrupt request CPU, User CPU, System CPU, CPU_idle, CPU_iowait, and CPU_softirq measures for that instance to know where CPU time has been spent the maximum - in running user processes? system processes? being idle? waiting for I/O? waiting for an interrupt handler? handling a software interrupt? or running nice processes?