describe_instances_health

ElasticBeanstalk.Client.describe_instances_health(**kwargs)

Retrieves detailed information about the health of instances in your AWS Elastic Beanstalk. This operation requires enhanced health reporting.

See also: AWS API Documentation

Request Syntax

response = client.describe_instances_health(
    EnvironmentName='string',
    EnvironmentId='string',
    AttributeNames=[
        'HealthStatus'|'Color'|'Causes'|'ApplicationMetrics'|'RefreshedAt'|'LaunchedAt'|'System'|'Deployment'|'AvailabilityZone'|'InstanceType'|'All',
    ],
    NextToken='string'
)
Parameters
  • EnvironmentName (string) -- Specify the AWS Elastic Beanstalk environment by name.
  • EnvironmentId (string) -- Specify the AWS Elastic Beanstalk environment by ID.
  • AttributeNames (list) --

    Specifies the response elements you wish to receive. To retrieve all attributes, set to All . If no attribute names are specified, returns a list of instances.

    • (string) --
  • NextToken (string) -- Specify the pagination token returned by a previous call.
Return type

dict

Returns

Response Syntax

{
    'InstanceHealthList': [
        {
            'InstanceId': 'string',
            'HealthStatus': 'string',
            'Color': 'string',
            'Causes': [
                'string',
            ],
            'LaunchedAt': datetime(2015, 1, 1),
            'ApplicationMetrics': {
                'Duration': 123,
                'RequestCount': 123,
                'StatusCodes': {
                    'Status2xx': 123,
                    'Status3xx': 123,
                    'Status4xx': 123,
                    'Status5xx': 123
                },
                'Latency': {
                    'P999': 123.0,
                    'P99': 123.0,
                    'P95': 123.0,
                    'P90': 123.0,
                    'P85': 123.0,
                    'P75': 123.0,
                    'P50': 123.0,
                    'P10': 123.0
                }
            },
            'System': {
                'CPUUtilization': {
                    'User': 123.0,
                    'Nice': 123.0,
                    'System': 123.0,
                    'Idle': 123.0,
                    'IOWait': 123.0,
                    'IRQ': 123.0,
                    'SoftIRQ': 123.0,
                    'Privileged': 123.0
                },
                'LoadAverage': [
                    123.0,
                ]
            },
            'Deployment': {
                'VersionLabel': 'string',
                'DeploymentId': 123,
                'Status': 'string',
                'DeploymentTime': datetime(2015, 1, 1)
            },
            'AvailabilityZone': 'string',
            'InstanceType': 'string'
        },
    ],
    'RefreshedAt': datetime(2015, 1, 1),
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    Detailed health information about the Amazon EC2 instances in an AWS Elastic Beanstalk environment.

    • InstanceHealthList (list) --

      Detailed health information about each instance.

      The output differs slightly between Linux and Windows environments. There is a difference in the members that are supported under the <CPUUtilization> type.

      • (dict) --

        Detailed health information about an Amazon EC2 instance in your Elastic Beanstalk environment.

        • InstanceId (string) --

          The ID of the Amazon EC2 instance.

        • HealthStatus (string) --

          Returns the health status of the specified instance. For more information, see Health Colors and Statuses.

        • Color (string) --

          Represents the color indicator that gives you information about the health of the EC2 instance. For more information, see Health Colors and Statuses.

        • Causes (list) --

          Represents the causes, which provide more information about the current health status.

          • (string) --
        • LaunchedAt (datetime) --

          The time at which the EC2 instance was launched.

        • ApplicationMetrics (dict) --

          Request metrics from your application.

          • Duration (integer) --

            The amount of time that the metrics cover (usually 10 seconds). For example, you might have 5 requests ( request_count ) within the most recent time slice of 10 seconds ( duration ).

          • RequestCount (integer) --

            Average number of requests handled by the web server per second over the last 10 seconds.

          • StatusCodes (dict) --

            Represents the percentage of requests over the last 10 seconds that resulted in each type of status code response.

            • Status2xx (integer) --

              The percentage of requests over the last 10 seconds that resulted in a 2xx (200, 201, etc.) status code.

            • Status3xx (integer) --

              The percentage of requests over the last 10 seconds that resulted in a 3xx (300, 301, etc.) status code.

            • Status4xx (integer) --

              The percentage of requests over the last 10 seconds that resulted in a 4xx (400, 401, etc.) status code.

            • Status5xx (integer) --

              The percentage of requests over the last 10 seconds that resulted in a 5xx (500, 501, etc.) status code.

          • Latency (dict) --

            Represents the average latency for the slowest X percent of requests over the last 10 seconds. Latencies are in seconds with one millisecond resolution.

            • P999 (float) --

              The average latency for the slowest 0.1 percent of requests over the last 10 seconds.

            • P99 (float) --

              The average latency for the slowest 1 percent of requests over the last 10 seconds.

            • P95 (float) --

              The average latency for the slowest 5 percent of requests over the last 10 seconds.

            • P90 (float) --

              The average latency for the slowest 10 percent of requests over the last 10 seconds.

            • P85 (float) --

              The average latency for the slowest 15 percent of requests over the last 10 seconds.

            • P75 (float) --

              The average latency for the slowest 25 percent of requests over the last 10 seconds.

            • P50 (float) --

              The average latency for the slowest 50 percent of requests over the last 10 seconds.

            • P10 (float) --

              The average latency for the slowest 90 percent of requests over the last 10 seconds.

        • System (dict) --

          Operating system metrics from the instance.

          • CPUUtilization (dict) --

            CPU utilization metrics for the instance.

            • User (float) --

              Percentage of time that the CPU has spent in the User state over the last 10 seconds.

            • Nice (float) --

              Available on Linux environments only.

              Percentage of time that the CPU has spent in the Nice state over the last 10 seconds.

            • System (float) --

              Available on Linux environments only.

              Percentage of time that the CPU has spent in the System state over the last 10 seconds.

            • Idle (float) --

              Percentage of time that the CPU has spent in the Idle state over the last 10 seconds.

            • IOWait (float) --

              Available on Linux environments only.

              Percentage of time that the CPU has spent in the I/O Wait state over the last 10 seconds.

            • IRQ (float) --

              Available on Linux environments only.

              Percentage of time that the CPU has spent in the IRQ state over the last 10 seconds.

            • SoftIRQ (float) --

              Available on Linux environments only.

              Percentage of time that the CPU has spent in the SoftIRQ state over the last 10 seconds.

            • Privileged (float) --

              Available on Windows environments only.

              Percentage of time that the CPU has spent in the Privileged state over the last 10 seconds.

          • LoadAverage (list) --

            Load average in the last 1-minute, 5-minute, and 15-minute periods. For more information, see Operating System Metrics.

            • (float) --
        • Deployment (dict) --

          Information about the most recent deployment to an instance.

          • VersionLabel (string) --

            The version label of the application version in the deployment.

          • DeploymentId (integer) --

            The ID of the deployment. This number increases by one each time that you deploy source code or change instance configuration settings.

          • Status (string) --

            The status of the deployment:

            • In Progress : The deployment is in progress.
            • Deployed : The deployment succeeded.
            • Failed : The deployment failed.
          • DeploymentTime (datetime) --

            For in-progress deployments, the time that the deployment started.

            For completed deployments, the time that the deployment ended.

        • AvailabilityZone (string) --

          The availability zone in which the instance runs.

        • InstanceType (string) --

          The instance's type.

    • RefreshedAt (datetime) --

      The date and time that the health information was retrieved.

    • NextToken (string) --

      Pagination token for the next page of results, if available.

Exceptions

  • ElasticBeanstalk.Client.exceptions.InvalidRequestException
  • ElasticBeanstalk.Client.exceptions.ElasticBeanstalkServiceException

Examples

The following operation retrieves health information for instances in an environment named my-env:

response = client.describe_instances_health(
    AttributeNames=[
        'All',
    ],
    EnvironmentName='my-env',
)

print(response)

Expected Output:

{
    'InstanceHealthList': [
        {
            'ApplicationMetrics': {
                'Duration': 10,
                'Latency': {
                    'P10': 0,
                    'P50': 0.001,
                    'P75': 0.002,
                    'P85': 0.003,
                    'P90': 0.004,
                    'P95': 0.005,
                    'P99': 0.006,
                    'P999': 0.006,
                },
                'RequestCount': 48,
                'StatusCodes': {
                    'Status2xx': 47,
                    'Status3xx': 0,
                    'Status4xx': 1,
                    'Status5xx': 0,
                },
            },
            'Causes': [
            ],
            'Color': 'Green',
            'HealthStatus': 'Ok',
            'InstanceId': 'i-08691cc7',
            'LaunchedAt': datetime(2015, 8, 13, 19, 17, 9, 3, 225, 0),
            'System': {
                'CPUUtilization': {
                    'IOWait': 0.2,
                    'IRQ': 0,
                    'Idle': 97.8,
                    'Nice': 0.1,
                    'SoftIRQ': 0.1,
                    'System': 0.3,
                    'User': 1.5,
                },
                'LoadAverage': [
                    0,
                    0.02,
                    0.05,
                ],
            },
        },
    ],
    'RefreshedAt': datetime(2015, 8, 20, 21, 9, 8, 3, 232, 0),
    'ResponseMetadata': {
        '...': '...',
    },
}