From edf93d8cd5b60f8ab4346d23dabef4765eb338e8 Mon Sep 17 00:00:00 2001 From: Paul Cuzner Date: Fri, 28 Apr 2023 17:21:39 +1200 Subject: [PATCH] docs: Update the Prometheus endpoint info This patch just tidies up some of the links and adds an example showing how the http_sd_configs option may be used. Signed-off-by: Paul Cuzner (cherry picked from commit 690d34ab08f22cd988828aa2097531627000907e) --- doc/cephadm/services/monitoring.rst | 41 ++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/doc/cephadm/services/monitoring.rst b/doc/cephadm/services/monitoring.rst index 2b989a3a95c4..f7a6e19abbcd 100644 --- a/doc/cephadm/services/monitoring.rst +++ b/doc/cephadm/services/monitoring.rst @@ -197,12 +197,26 @@ configuration files for monitoring services. Internally, cephadm already uses `Jinja2 `_ templates to generate the -configuration files for all monitoring components. To be able to customize the -configuration of Prometheus, Grafana or the Alertmanager it is possible to store -a Jinja2 template for each service that will be used for configuration -generation instead. This template will be evaluated every time a service of that -kind is deployed or reconfigured. That way, the custom configuration is -preserved and automatically applied on future deployments of these services. +configuration files for all monitoring components. Starting from version 17.2.3, +cephadm supports Prometheus http service discovery, and uses this endpoint for the +definition and management of the embedded Prometheus service. The endpoint listens on +``https://:8765/sd/`` (the port is +configurable through the variable ``service_discovery_port``) and returns scrape target +information in `http_sd_config format +`_ + +Customers with external monitoring stack can use `ceph-mgr` service discovery endpoint +to get scraping configuration. Root certificate of the server can be obtained by the +following command: + + .. prompt:: bash # + + ceph orch sd dump cert + +The configuration of Prometheus, Grafana, or Alertmanager may be customized by storing +a Jinja2 template for each service. This template will be evaluated every time a service +of that kind is deployed or reconfigured. That way, the custom configuration is preserved +and automatically applied on future deployments of these services. .. note:: @@ -292,6 +306,21 @@ cluster. By default, ceph-mgr presents prometheus metrics on port 9283 on each host running a ceph-mgr daemon. Configure prometheus to scrape these. +To make this integration easier, cephadm provides a service discovery endpoint at +``https://:8765/sd/``. This endpoint can be used by an external +Prometheus server to retrieve target information for a specific service. Information returned +by this endpoint uses the format specified by the Prometheus `http_sd_config option +`_ + +Here's an example prometheus job definition that uses the cephadm service discovery endpoint + + .. code-block:: bash + + - job_name: 'ceph-exporter' + http_sd_configs: + - url: http://:8765/sd/prometheus/sd-config?service=ceph-exporter + + * To enable the dashboard's prometheus-based alerting, see :ref:`dashboard-alerting`. * To enable dashboard integration with Grafana, see :ref:`dashboard-grafana`. -- 2.47.3