From c8fc143efa6771af97d832ab8ac4da060b5ca256 Mon Sep 17 00:00:00 2001 From: William Petit Date: Wed, 21 Feb 2024 12:29:03 +0100 Subject: [PATCH] doc: add prometheus metrics documentation --- doc/README.md | 2 ++ doc/fr/references/layers/circuitbreaker.md | 8 ++++-- doc/fr/references/layers/queue.md | 32 ++++++++++++++++++++-- doc/fr/references/metrics.md | 29 ++++++++++++++++++++ misc/packaging/common/config.yml | 8 +++++- 5 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 doc/fr/references/metrics.md diff --git a/doc/README.md b/doc/README.md index 2b579d5..7f7041c 100644 --- a/doc/README.md +++ b/doc/README.md @@ -6,9 +6,11 @@ ## Exemples - [(FR) - Exemple de déploiement multi-noeuds](../misc/docker-compose/README.md) + ## Référence - [(FR) - Layers](./fr/references/layers/README.md) +- [(FR) - Métriques](./fr/references/metrics.md) - [(FR) - Fichier de configuration](../misc/packaging/common/config.yml) - [(FR) - API d'administration](./fr/references/admin_api.md) diff --git a/doc/fr/references/layers/circuitbreaker.md b/doc/fr/references/layers/circuitbreaker.md index bb48090..db4f5ad 100644 --- a/doc/fr/references/layers/circuitbreaker.md +++ b/doc/fr/references/layers/circuitbreaker.md @@ -32,6 +32,10 @@ Ce layer permet de bloquer l'accès à un site (ou une section de celui ci) cibl Voir le [fichier de configuration de référence](../../../../misc/packaging/common/config.yml), section `layers.circuitbreaker` pour voir les options permettant de personnaliser le chemin du répertoire contenant les templates. -### Schéma +## Schéma -Voir le [schéma JSON](../../../../internal/proxy/director/layer/circuitbreaker/layer-options.json). \ No newline at end of file +Voir le [schéma JSON](../../../../internal/proxy/director/layer/circuitbreaker/layer-options.json). + +## Métriques + +_Aucune [métrique Prometheus](../metrics.md) n'est exportée par ce layer._ \ No newline at end of file diff --git a/doc/fr/references/layers/queue.md b/doc/fr/references/layers/queue.md index 07766fe..2569b70 100644 --- a/doc/fr/references/layers/queue.md +++ b/doc/fr/references/layers/queue.md @@ -30,6 +30,34 @@ Ce layer permet d'ajouter un mécanisme de file d'attente dynamique au proxy ass Par exemple, si vous souhaitez limiter votre file à l'ensemble d'une section "`/blog`" d'un site, vous pouvez déclarer la valeur `["*/blog*"]`. Les autres URLs du site ne seront pas affectées par cette file d'attente. -### Schéma +## Schéma -Voir le [schéma JSON](../../../../internal/proxy/director/layer/queue/schema/layer-options.json). \ No newline at end of file +Voir le [schéma JSON](../../../../internal/proxy/director/layer/queue/schema/layer-options.json). + +## Métriques + +Les [métriques Prometheus](../metrics.md) suivantes sont exposées par ce layer. + +### `bouncer_layer_queue_capacity{layer=,proxy=}` + +- **Type:** `gauge` +- **Description**: Capacité maximale de la queue +- **Exemple** + + ``` + # HELP bouncer_layer_queue_capacity Bouncer's queue layer capacity + # TYPE bouncer_layer_queue_capacity gauge + bouncer_layer_queue_capacity{layer="queue",proxy="cadoles"} 2 + ``` + +### `bouncer_layer_queue_sessions{layer=,proxy=}` + +- **Type:** `gauge` +- **Description**: Nombre courant de sessions ouvertes +- **Exemple** + + ``` + # HELP bouncer_layer_queue_sessions Bouncer's queue layer current sessions + # TYPE bouncer_layer_queue_sessions gauge + bouncer_layer_queue_sessions{layer="queue",proxy="cadoles"} 3 + ``` \ No newline at end of file diff --git a/doc/fr/references/metrics.md b/doc/fr/references/metrics.md new file mode 100644 index 0000000..9f8ed99 --- /dev/null +++ b/doc/fr/references/metrics.md @@ -0,0 +1,29 @@ +# Métriques + +Bouncer expose un certain nombre de métriques Prometheus sur le serveur proxy ainsi que sur le serveur d'administration. Ces métriques sont par défaut accessibles sur `/.bouncer/metrics`. + +Il est possible de configurer le point d'entrée de ces métriques ainsi que d'ajouter une authentification de type `Basic Auth` [via la configuration](../../../misc/packaging/common/config.yml) (voir les clés `admin.metrics` et `proxy.metrics`). + +Outre les métriques par défaut fournies par la librairie [Prometheus](https://prometheus.io/docs/guides/go-application/#instrumenting-a-go-application-for-prometheus), les serveurs Bouncer exposent également des métriques propres. + +Chaque layer associé à un proxy peut également ses propres métriques spécifiques. [Voir la page de documentation](./layers/README.md) de chaque layer pour plus d'informations. + +## Métriques spécifiques + +### Serveur proxy + +#### `bouncer_proxy_director_proxy_requests_total{proxy=}` + +- **Type:** `counter` +- **Description**: Nombre total de requêtes ayant transité par le proxy +- **Exemple** + + ``` + # HELP bouncer_proxy_director_proxy_requests_total Bouncer proxy total requests + # TYPE bouncer_proxy_director_proxy_requests_total counter + bouncer_proxy_director_proxy_requests_total{proxy="cadoles"} 64 + ``` + +### Serveur d'administration + +_Pas de métrique supplémentaire._ \ No newline at end of file diff --git a/misc/packaging/common/config.yml b/misc/packaging/common/config.yml index 03ba17a..d7d53a2 100644 --- a/misc/packaging/common/config.yml +++ b/misc/packaging/common/config.yml @@ -47,6 +47,10 @@ admin: # Authentification "basic auth" sur la page # de publication # Mettre à null pour désactiver l'authentification + # Les couples d'identifiants doivent être spécifiés sous la forme: + # basicAuth: + # credentials: + # : basicAuth: null # Configuration de l'intégration Sentry @@ -90,8 +94,10 @@ proxy: # de publication # Mettre à null pour désactiver l'authentification basicAuth: + # Les couples d'identifiants doivent être spécifiés + # sous la forme ": " credentials: - prom: etheus + prometheus: changeme # Configuration du transport HTTP(S) # Voir https://pkg.go.dev/net/http#Transport