:doc:`ElasticBeanstalk <../../elasticbeanstalk>` / Client / describe_environment_health

***************************
describe_environment_health
***************************



.. py:method:: ElasticBeanstalk.Client.describe_environment_health(**kwargs)

  

  Returns information about the overall health of the specified environment. The **DescribeEnvironmentHealth** operation is only available with AWS Elastic Beanstalk Enhanced Health.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEnvironmentHealth>`_  


  **Request Syntax**
  ::

    response = client.describe_environment_health(
        EnvironmentName='string',
        EnvironmentId='string',
        AttributeNames=[
            'Status'|'Color'|'Causes'|'ApplicationMetrics'|'InstancesHealth'|'All'|'HealthStatus'|'RefreshedAt',
        ]
    )
    
  :type EnvironmentName: string
  :param EnvironmentName: 

    Specify the environment by name.

     

    You must specify either this or an EnvironmentName, or both.

    

  
  :type EnvironmentId: string
  :param EnvironmentId: 

    Specify the environment by ID.

     

    You must specify either this or an EnvironmentName, or both.

    

  
  :type AttributeNames: list
  :param AttributeNames: 

    Specify the response elements to return. To retrieve all attributes, set to ``All``. If no attribute names are specified, returns the name of the environment.

    

  
    - *(string) --* 

    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'EnvironmentName': 'string',
          'HealthStatus': 'string',
          'Status': 'Green'|'Yellow'|'Red'|'Grey',
          'Color': 'string',
          'Causes': [
              'string',
          ],
          '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
              }
          },
          'InstancesHealth': {
              'NoData': 123,
              'Unknown': 123,
              'Pending': 123,
              'Ok': 123,
              'Info': 123,
              'Warning': 123,
              'Degraded': 123,
              'Severe': 123
          },
          'RefreshedAt': datetime(2015, 1, 1)
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Health details for an AWS Elastic Beanstalk environment.

      
      

      - **EnvironmentName** *(string) --* 

        The environment's name.

        
      

      - **HealthStatus** *(string) --* 

        The `health status <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html>`__ of the environment. For example, ``Ok``.

        
      

      - **Status** *(string) --* 

        The environment's operational status. ``Ready``, ``Launching``, ``Updating``, ``Terminating``, or ``Terminated``.

        
      

      - **Color** *(string) --* 

        The `health color <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html>`__ of the environment.

        
      

      - **Causes** *(list) --* 

        Descriptions of the data that contributed to the environment's current health status.

        
        

        - *(string) --* 
    
      

      - **ApplicationMetrics** *(dict) --* 

        Application request metrics for the environment.

        
        

        - **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.

            
      
    
      

      - **InstancesHealth** *(dict) --* 

        Summary health information for the instances in the environment.

        
        

        - **NoData** *(integer) --* 

          **Grey.** AWS Elastic Beanstalk and the health agent are reporting no data on an instance.

          
        

        - **Unknown** *(integer) --* 

          **Grey.** AWS Elastic Beanstalk and the health agent are reporting an insufficient amount of data on an instance.

          
        

        - **Pending** *(integer) --* 

          **Grey.** An operation is in progress on an instance within the command timeout.

          
        

        - **Ok** *(integer) --* 

          **Green.** An instance is passing health checks and the health agent is not reporting any problems.

          
        

        - **Info** *(integer) --* 

          **Green.** An operation is in progress on an instance.

          
        

        - **Warning** *(integer) --* 

          **Yellow.** The health agent is reporting a moderate number of request failures or other issues for an instance or environment.

          
        

        - **Degraded** *(integer) --* 

          **Red.** The health agent is reporting a high number of request failures or other issues for an instance or environment.

          
        

        - **Severe** *(integer) --* 

          **Red.** The health agent is reporting a very high number of request failures or other issues for an instance or environment.

          
    
      

      - **RefreshedAt** *(datetime) --* 

        The date and time that the health information was retrieved.

        
  
  **Exceptions**
  
  *   :py:class:`ElasticBeanstalk.Client.exceptions.InvalidRequestException`

  
  *   :py:class:`ElasticBeanstalk.Client.exceptions.ElasticBeanstalkServiceException`

  

  **Examples**

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

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

  
  Expected Output:
  ::

    {
        'ApplicationMetrics': {
            'Duration': 10,
            'Latency': {
                'P10': 0.001,
                'P50': 0.001,
                'P75': 0.002,
                'P85': 0.003,
                'P90': 0.003,
                'P95': 0.004,
                'P99': 0.004,
                'P999': 0.004,
            },
            'RequestCount': 45,
            'StatusCodes': {
                'Status2xx': 45,
                'Status3xx': 0,
                'Status4xx': 0,
                'Status5xx': 0,
            },
        },
        'Causes': [
        ],
        'Color': 'Green',
        'EnvironmentName': 'my-env',
        'HealthStatus': 'Ok',
        'InstancesHealth': {
            'Degraded': 0,
            'Info': 0,
            'NoData': 0,
            'Ok': 1,
            'Pending': 0,
            'Severe': 0,
            'Unknown': 0,
            'Warning': 0,
        },
        'RefreshedAt': datetime(2015, 8, 20, 21, 9, 18, 3, 232, 0),
        'ResponseMetadata': {
            '...': '...',
        },
    }

  