Performance

    These statistics can be enabled by setting enable_dispatcher_stats to true.

    Warning

    Note that enabling dispatcher stats records a value for each iteration of the event loop on every thread. This should normally be minimal overhead, but when using , it will send each observed value over the wire individually because the statsd protocol doesn’t have any way to represent a histogram summary. Be aware that this can be a very large volume of data.

    The event dispatcher for the main thread has a statistics tree rooted at server.dispatcher., and the event dispatcher for each worker thread has a statistics tree rooted at listener_manager.worker_<id>.dispatcher., each with the following statistics:

    Note that any auxiliary threads are not included here.

    Watchdog

    In addition to event loop statistics, Envoy also include a configurable system that can increment statistics when Envoy is not responsive and optionally kill the server. The system has two separate watchdog configs, one for the main thread and one for worker threads; this is helpful as the different threads have different workloads. The system also has an extension point allowing for custom actions to be taken based on watchdog events. The statistics are useful for understanding at a high level whether Envoy’s event loop is not responsive either because it is doing too much work, blocking, or not being scheduled by the OS.

    Name

    Type

    Description

    watchdog_miss

    Counter

    Number of standard misses

    watchdog_mega_miss

    Counter