Skip to main content

Exposer les métriques du serveur ClickHouse

Si vous utilisez ClickHouse Cloud, vous pouvez exposer des métriques à Prometheus à l’aide de l’intégration Prometheus.
Configurez un port dédié lorsqu’un serveur Prometheus doit collecter les propres métriques de ClickHouse :
La section <prometheus.handlers> peut être utilisée pour créer des gestionnaires plus étendus sur le même port. Cette section est similaire à <http_handlers>, mais fonctionne pour les protocoles Prometheus :
Paramètres : Vérifiez l’endpoint :

API HTTP Prometheus et PromQL

ClickHouse implémente l’API HTTP Prometheus sur une table TimeSeries. Un gestionnaire prend en charge l’écriture distante, la lecture distante, les requêtes PromQL instantanées et les requêtes PromQL sur une plage.

Prérequis

Activez le paramètre allow_experimental_time_series_table pour l’utilisateur qui crée la table et y accède :
Créez une base de données et une table TimeSeries :
Pour les requêtes d’API HTTP, activez allow_experimental_time_series_table dans le profil de l’utilisateur de l’API.

Configurer l’API Prometheus

Configurez un gestionnaire routé par préfixe sur le port HTTP principal de ClickHouse :
<defaults/> conserve les gestionnaires intégrés pour les endpoints tels que /ping et les requêtes SQL. Le préfixe ci-dessus expose ces endpoints via un seul gestionnaire : L’exemple ne spécifie pas database ni table dans le gestionnaire. Chaque requête doit fournir le paramètre de requête table. Elle peut également fournir database, utiliser un nom de table qualifié tel que prometheus.metrics ou omettre la base de données afin d’utiliser default. Un même gestionnaire peut ainsi desservir plusieurs tables TimeSeries. Pour utiliser une table fixe pour toutes les requêtes, configurez-la dans le gestionnaire :
Une table configurée dans le gestionnaire ne peut pas être remplacée par des paramètres de requête. Paramètres de routage et du gestionnaire :

Ingérer des métriques via écriture distante

ClickHouse prend en charge le protocole écriture distante de Prometheus. Configurez Prometheus pour écrire vers le gestionnaire :
Prometheus envoie des échantillons dans la table prometheus.metrics.

Interroger avec PromQL

Utilisez l’endpoint de requête instantanée pour évaluer une expression PromQL à un instant donné :
Utilisez l’endpoint de requête par plage pour évaluer une expression sur un intervalle de temps :
Consultez les fonctionnalités PromQL prises en charge pour obtenir la liste des fonctions et des opérateurs d’agrégation utilisés par l’API HTTP, le dialecte promql et les fonctions de table.

Grafana

Configurez une source de données Prometheus avec une URL de base ne contenant pas /api/v1 :
Grafana ajoute /api/v1/query ou /api/v1/query_range à cette URL de base et ajoute customQueryParameters à chaque requête.
Seuls les endpoints de requête /api/v1/query et /api/v1/query_range sont implémentés. Les endpoints de métadonnées utilisés par une source de données Prometheus dans Grafana pour parcourir les libellés, les variables de modèle et l’autocomplétion du générateur de requêtes (/api/v1/series, /api/v1/labels, /api/v1/label/<name>/values) ne sont pas implémentés et renvoient une erreur. Écrivez les expressions PromQL en mode code plutôt que d’utiliser le générateur de requêtes.

Points d’entrée SQL

ClickHouse utilise le même convertisseur PromQL pour l’API HTTP, le dialecte promql ainsi que les fonctions de table prometheusQuery et prometheusQueryRange. Exécutez directement des requêtes PromQL avec clickhouse-client :
Utilisez les fonctions de table pour intégrer du PromQL dans une requête SQL :

Lire les métriques via lecture distante

ClickHouse prend en charge le protocole lecture distante de Prometheus sur /prometheus/api/v1/read. Configurez un serveur Prometheus pour lire les données de la même table TimeSeries :
Dernière modification le 18 août 2026