Metrics

GatewayD currently supports a single Prometheus metrics output. It collects, relabels and merges metrics from plugins over Unix Domain Socket and exposes them over HTTP. The aggregated metrics are accessible via http://localhost:9090/metrics by default.

You can add a new scrape_config to your Prometheus config file to scrape the metrics from GatewayD:

scrape_configs:
  - job_name: "gatewayd"
    static_configs:
      - targets: ["localhost:9090"]

Configuration parameters

Name Type Default value Possible values Description
enabled boolean True True, False The network protocol to use
address string localhost:9090 Valid host:port The HTTP address and port to expose metrics on
path string /metrics Valid path values The endpoint to expose metrics on
readHeaderTimeout duration (string) 10s Valid duration values The maximum duration for reading the request headers. Setting this to a non-zero value will block Slowloris attacks.
timeout duration (string) 10s Valid duration values The maximum duration before timing out. This applies to writes, reads, idle and handler timeouts separately.
certFile string ”” Valid path values The path to the TLS certificate file
keyFile string ”” Valid path values The path to the TLS key file

Built-in Metrics

The following are built-in metrics emitted by GatewayD. The namespace of all the metrics is always set to gatewayd and all the metrics are prefixed with gatewayd_. Emitted metrics from plugins are listed on their own page.

Name Type Description
client_connections Gauge Number of client connections
server_connections Gauge Number of server connections
tls_connections Gauge Number of TLS connections
server_ticks_fired_total Counter Total number of server ticks fired
bytes_received_from_client Summary Number of bytes received from client
bytes_sent_to_server Summary Number of bytes sent to server
bytes_received_from_server Summary Number of bytes received from server
bytes_sent_to_client Summary Number of bytes sent to client
traffic_bytes Summary Number of total bytes passed through GatewayD via client or server
plugins_loaded_total Counter Number of plugins loaded
plugin_hooks_registered_total Counter Number of plugin hooks registered
plugin_hooks_executed_total Counter Number of plugin hooks executed
proxy_health_checks_total Counter Number of proxy health checks
proxied_connections Gauge Number of proxy connects
proxy_passthroughs_to_client_total Counter Number of successful proxy passthroughs from server to client
proxy_passthroughs_to_server_total Counter Number of successful proxy passthroughs from client to server
proxy_passthrough_terminations_total Counter Number of proxy passthrough terminations by plugins
api_requests_total Counter (with labels) Number of API requests
api_requests_errors_total Counter (with labels) Number of API request errors

Example configuration

metrics:
  default:
    enabled: True
    address: localhost:9090
    path: /metrics
    readHeaderTimeout: 10s
    timeout: 10s
    certFile: ""
    keyFile: ""