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: ""