45 lines
1.3 KiB
ReStructuredText
45 lines
1.3 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
.. _mod-http-prometheus:
|
|
|
|
Prometheus metrics endpoint
|
|
---------------------------
|
|
|
|
The :ref:`HTTP module <mod-http>` exposes ``/metrics`` endpoint that serves metrics
|
|
from :ref:`mod-stats` in Prometheus_ text format.
|
|
You can use it as soon as HTTP module is configured:
|
|
|
|
.. code-block:: bash
|
|
|
|
$ curl -k https://localhost:8453/metrics | tail
|
|
# TYPE latency histogram
|
|
latency_bucket{le=10} 2.000000
|
|
latency_bucket{le=50} 2.000000
|
|
latency_bucket{le=100} 2.000000
|
|
latency_bucket{le=250} 2.000000
|
|
latency_bucket{le=500} 2.000000
|
|
latency_bucket{le=1000} 2.000000
|
|
latency_bucket{le=1500} 2.000000
|
|
latency_bucket{le=+Inf} 2.000000
|
|
latency_count 2.000000
|
|
latency_sum 11.000000
|
|
|
|
You can namespace the metrics in configuration, using `http.prometheus.namespace` attribute:
|
|
|
|
.. code-block:: lua
|
|
|
|
modules.load('http')
|
|
-- Set Prometheus namespace
|
|
http.prometheus.namespace = 'resolver_'
|
|
|
|
You can also add custom metrics or rewrite existing metrics before they are returned to Prometheus client.
|
|
|
|
.. code-block:: lua
|
|
|
|
modules.load('http')
|
|
-- Add an arbitrary metric to Prometheus
|
|
http.prometheus.finalize = function (metrics)
|
|
table.insert(metrics, 'build_info{version="1.2.3"} 1')
|
|
end
|
|
|
|
.. _Prometheus: https://prometheus.io
|