Si vous utilisez ClickHouse Cloud, vous pouvez exposer des métriques à Prometheus à l’aide de l’intégration Prometheus.
ClickHouse peut exposer ses propres métriques afin que Prometheus puisse les collecter :
<prometheus>
<port>9363</port>
<endpoint>/metrics</endpoint>
<metrics>true</metrics>
<asynchronous_metrics>true</asynchronous_metrics>
<events>true</events>
<errors>true</errors>
<histograms>true</histograms>
<dimensional_metrics>true</dimensional_metrics>
</prometheus>
Section `<prometheus.handlers>` can be used to make more extended handlers.
This section is similar to [<http_handlers>](/concepts/features/interfaces/http) but works for prometheus protocols:
```xml
<prometheus>
<port>9363</port>
<handlers>
<my_rule_1>
<url>/metrics</url>
<handler>
<type>expose_metrics</type>
<metrics>true</metrics>
<asynchronous_metrics>true</asynchronous_metrics>
<events>true</events>
<errors>true</errors>
<histograms>true</histograms>
<dimensional_metrics>true</dimensional_metrics>
</handler>
</my_rule_1>
</handlers>
</prometheus>
Paramètres :
| Nom | Par défaut | Description |
|---|
port | none | Port utilisé pour exposer le protocole de métriques. |
endpoint | /metrics | Endpoint HTTP pour le scraping des métriques par le serveur Prometheus. Commence par /. Ne doit pas être utilisé avec la section <handlers>. |
url / headers / method | none | Filtres utilisés pour trouver un gestionnaire correspondant à une requête. Similaires aux champs portant les mêmes noms dans la section <http_handlers>. |
metrics | true | Expose les métriques de la table system.metrics. |
asynchronous_metrics | true | Expose les valeurs actuelles des métriques de la table system.asynchronous_metrics. |
events | true | Expose les métriques de la table system.events. |
errors | true | Expose le nombre d’erreurs, par code d’erreur, survenues depuis le dernier redémarrage du serveur. Ces informations peuvent également être obtenues à partir de system.errors. |
histograms | true | Expose les métriques d’histogramme de system.histogram_metrics |
dimensional_metrics | true | Expose les métriques dimensionnelles de system.dimensional_metrics |
Vérifiez (remplacez 127.0.0.1 par l’adresse IP ou le hostname de votre serveur ClickHouse) :
curl 127.0.0.1:9363/metrics
Protocole remote-write
ClickHouse prend en charge le protocole remote-write.
Les données sont reçues via ce protocole et écrites dans une table TimeSeries
(qui doit être créée au préalable).
<prometheus>
<port>9363</port>
<handlers>
<my_rule_1>
<url>/write</url>
<handler>
<type>remote_write</type>
<database>db_name</database>
<table>time_series_table</table>
</handler>
</my_rule_1>
</handlers>
</prometheus>
Paramètres :
| Name | Default | Description |
|---|
port | aucun | Port d’écoute du protocole remote-write. |
url / headers / method | aucun | Filtres utilisés pour trouver un gestionnaire correspondant à une requête. Semblables aux champs du même nom dans la section <http_handlers>. |
table | aucun | Nom d’une table TimeSeries dans laquelle écrire les données reçues via le protocole remote-write. Ce nom peut aussi contenir celui d’une base de données. |
database | aucun | Nom de la base de données où se trouve la table spécifiée dans le paramètre table, si elle n’est pas indiquée dans le paramètre table. |
Protocole remote-read
ClickHouse prend en charge le protocole remote-read.
Les données sont lues à partir d’une table TimeSeries et envoyées via ce protocole.
<prometheus>
<port>9363</port>
<handlers>
<my_rule_1>
<url>/read</url>
<handler>
<type>remote_read</type>
<database>db_name</database>
<table>time_series_table</table>
</handler>
</my_rule_1>
</handlers>
</prometheus>
Paramètres :
| Nom | Par défaut | Description |
|---|
port | aucun | Port utilisé pour exposer le protocole remote-read. |
url / headers / method | aucun | Filtres utilisés pour trouver un gestionnaire correspondant à une requête. Similaires aux champs portant les mêmes noms dans la section <http_handlers>. |
table | aucun | Nom d’une table TimeSeries à partir de laquelle lire les données à envoyer via le protocole remote-read. Ce nom peut aussi inclure celui d’une base de données. |
database | aucun | Nom de la base de données où se trouve la table spécifiée dans le paramètre table si elle n’est pas indiquée dans le paramètre table. |
Configuration pour plusieurs protocoles
Plusieurs protocoles peuvent être spécifiés au même endroit :
<prometheus>
<port>9363</port>
<handlers>
<my_rule_1>
<url>/metrics</url>
<handler>
<type>expose_metrics</type>
<metrics>true</metrics>
<asynchronous_metrics>true</asynchronous_metrics>
<events>true</events>
<errors>true</errors>
<histograms>true</histograms>
<dimensional_metrics>true</dimensional_metrics>
</handler>
</my_rule_1>
<my_rule_2>
<url>/write</url>
<handler>
<type>remote_write</type>
<table>db_name.time_series_table</table>
</handler>
</my_rule_2>
<my_rule_3>
<url>/read</url>
<handler>
<type>remote_read</type>
<table>db_name.time_series_table</table>
</handler>
</my_rule_3>
</handlers>
</prometheus>
Dernière modification le 29 juin 2026