Server Timing Directives - Configure - H2O - the optimized HTTP server

# H2O

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

×
Powered by Oktavia

## Configure > Server Timing Directives

The server timing handler turns on the Server Timing feature. This document describes the configuration directives of the handler.

- `server-timing`

since v2.3

### `"server-timing"`

Description:

  A flag indicating how `server-timing` header and trailer should be served.

  If the value is `ON`, H2O adds the `server-timing` header and trailer (if possible) to the response. The header is always added, but the trailer isn't if all of the following conditions are met.

  - The protocol used for the request is HTTP/1.1
  - `transfer encoding` of the response is not `chunked`

  If the value is `ENFORCE`, H2O forces the response to use chunked encoding by removing `content-length` header.

  If the value is `OFF`, the feature is disabled.

  The `server-timing` header and trailer includes the following metrics. For now, all metrics have the `dur` attribute whose values are exactly equal to one of the Access Log Extensions with similar names. To get the meaning of each `dur` attribute, see `access-log`.

  Header Metrics
  Name | Log Extension
  --- | ---
  `connect` | `connect-time`
  `request-header` | `request-header-time`
  `request-body` | `request-body-time`
  `request-total` | `request-total-time`
  `process` | `process-time`
  `proxy.idle` | `proxy.idle-time`
  `proxy.connect` | `proxy.connect-time`
  `proxy.request` | `proxy.request-time`
  `proxy.process` | `proxy.process-time`

  Trailer Metrics
  Name | Log Extension
  --- | ---
  `response` | `response-time`
  `total` | `total-time` / `duration`
  `proxy.response` | `proxy.response-time`
  `proxy.total` | `proxy.total-time`

Level:
  global, host, path, extension
Default:
  `

      OFF

  `