# H2O

the optimized HTTP/1.x, HTTP/2 server

×
Powered by Oktavia

## Configure > Status Directives

The status handler exposes the current states of the HTTP server. This document describes the configuration directives of the handler.

since v2.0

### `"status"`

Description:

  If the argument is `ON`, the directive registers the status handler to the current path.

  Access to the handler should be restricted, considering the fact that the status includes the details of in-flight HTTP requests. The example below uses Basic authentication.

  Example. Exposing status with Basic authentication

      paths:
        /server-status:
          mruby.handler: |
            require "htpasswd.rb"
            Htpasswd.new("/path/to/.htpasswd", "status")
          status: ON

  The information returned by the `/json` handler can be filtered out using the optional `show=module1,module2` parameter. There are currently three modules defined:

  - `requests`: displays the requests currently in-flight.
  - `durations`: displays durations statistics for requests since server start time in seconds (returns all zeros unless `duration-stats` is `ON`).
  - `errors`: displays counters for internally generated errors.
  - `main`: displays general daemon-wide stats.
Level:
  path

since v2.1

### `"duration-stats"`

Description:

  Gather timing stats for requests.

  If the argument is `ON`, this directive populates duration statistics in seconds, to be consumed by status handlers. Enabling this feature has a noticeable CPU and memory impact.

  Note that the time spent while processing a request in a blocking manner (such as opening a file or a mruby handler that does invoke a network operation) will not be reflected to the `process_time` element of the duration stats due to the fact that the timer being used for measuring the time spent is updated only once per loop.

Level:
  global
Default:
  `

      duration-stats: OFF

  `