My Enhanced Health Overview in the Elastic Beanstalk console does not have any data available for requests or latency. Why can’t I see this data?

There are multiple scenarios when enhanced health reporting does not display request or latency data under Enhanced Health Overview in the Elastic Beanstalk console, such as a configuration issue with a specific platform stack. To check the Enhanced Health Overview from the console, choose Health from the navigation pane.

Enhanced health reporting is enabled by default for Elastic Beanstalk, but requestor latency information might not be showing under Enhanced Health Overview. Enhanced Health Overview will not show request or latency information when you use the 64-bit Amazon Linux 2016.xx vx.x.x running Node.js platform and choose "proxy server: none" under software configuration, or when you use Multicontainer Docker environments.

From the Elastic Beanstalk console, verify that enhanced health reporting is enabled:

  1. Choose Configuration, and then on the Health panel under Web Tier, choose the edit gear.
  2. Under Health Reporting, ensure the System type is set to Enhanced.

64-bit Amazon Linux 2016.xx vx.x.x running Node.js platform:

Ensure that the correct proxy server is configured:

  1. Choose Configuration, and then on the Software Configuration panel under Web Tier, choose the edit gear.
  2. In Container Options, ensure you have a Proxy server selected.

If Proxy server is set to none, the application log file is not generated under /var/log/nginx/healthd/ and health reporting does not generate data to display.

You can also modify the Node.js logs and location to be compatible with enhanced health log format, then review the healthd configuration file /etc/healthd/config.yaml.

64-bit Amazon Linux 2016.xx vx.x.x running Multicontainer Docker 2.xx.x:

This platform doesn’t come with a proxy server, so you need to ensure that logs are produced in the correct format from their containers and configure healthd to read them. To use enhanced health monitoring in Multicontainer Docker environments, you need to configure healthd to consume these logs.

To provide logs to the health agent, ensure the following:

  • Logs are in the correct format
  • Logs are written to /var/log/nginx/healthd/
  • Log names use the format: application.log.$year-$month-$day-$hour
  • Logs are rotated once per hour
  • Logs are not truncated

Note: With the Node.js platform, if you disable the proxy, the logs are not created under /var/logs/nginx/healthd/. You must either re-enable the proxy or configure your Node.js application to produce logs under /var/logs/nginx/healthd/

This sample Docker-multicontainer-v2.zip code shows how to manage ebextensions where the healthd configuration is set to read another directory.

.ebextensions/01-nginx-healthd.config

files:

    "/etc/cron.hourly/cron.logcleanup.elasticbeanstalk.healthd.nginx.conf":

        mode: "000755"

        owner: root

        group: root

        content: |

            "#!/bin/sh"

            find /var/log/containers/nginx-proxy/healthd -type f | grep -v application.log.`date -u +"%Y-%m-%d-%H"` | xargs rm –f

        "/home/ec2-user/setup-healthd-appstat.sh":

            mode: "000755"

            owner: root

            group: root

            content: |

                "#!/bin/sh"

                set -e

                mkdir -p /var/log/containers/nginx-proxy/healthd

                chmod 777 /var/log/containers/nginx-proxy/healthd

                if [ -d "/etc/healthd" ]

                then

                    echo "appstat_log_path: /var/log/containers/nginx-proxy/healthd/application.log" >> /etc/healthd/config.yaml

                    echo "appstat_unit: sec" >> /etc/healthd/config.yaml

                    echo "appstat_timestamp_on: completion" >> /etc/healthd/config.yaml

                    initctl start healthd || initctl restart healthd

                fi

container_commands:

    01-healthd-configure:

        command: /home/ec2-user/setup-healthd-appstat.sh

If you are unable to see information for a server in the Enhanced Health Overview, check the healthd service status on the instance and ensure that it’s running. If it is not running, restart the service.

This sample code shows how to check the healthd service status:

$ ps aux | grep healthd

root           2542    0.0    0.2    54760    2680   ?        Ss        Sep29        0:00 su -s /bin/bash -c healthd healthd

healthd        2548    0.0    3.6    683136   37072  ?        Ssl       Sep29        0:21 puma 2.11.1 (tcp://127.0.0.1:22221) [healthd]

This sample code shows how to restart the healthd service:

[ec2-user@ip-172-31-39-182 ~]$ sudo initctl restart healthd

healthd start/running, process 6377

Elastic Beanstalk, Enhanced Health Overview, enhanced health reporting, Container Option proxy server


Did this page help you? Yes | No

Back to the AWS Support Knowledge Center

Need help? Visit the AWS Support Center

Published: 2016-11-21