Toutes les instances ClickHouse incluent un ensemble de tables système dans la base de données system, qui contiennent des informations sur :
- L’état du serveur, les processus et l’environnement.
- Les processus internes du serveur.
- Les options utilisées lors de la compilation du binaire ClickHouse.
L’interrogation directe de ces tables est utile pour la surveillance des déploiements ClickHouse, en particulier pour l’introspection approfondie et le débogage.
Utilisation de la ClickHouse Cloud Console
La ClickHouse Cloud console inclut une console SQL et des outils de création de tableaux de bord qui peuvent être utilisés pour interroger les tables système. Par exemple, la requête ci-dessous permet d’examiner combien de nouvelles parts sont créées au cours des deux dernières heures (et à quelle fréquence) :
SELECT
count() AS new_parts,
toStartOfMinute(event_time) AS modification_time_m,
table,
sum(rows) AS total_written_rows,
formatReadableSize(sum(size_in_bytes)) AS total_bytes_on_disk
FROM clusterAllReplicas(default, system.part_log)
WHERE (event_type = 'NewPart') AND (event_time > (now() - toIntervalHour(2)))
GROUP BY
modification_time_m,
table
ORDER BY
modification_time_m ASC,
table DESC
Autres exemples de requêtesPour obtenir d’autres requêtes de monitoring, consultez les ressources suivantes :Vous pouvez également utiliser ces requêtes pour créer un tableau de bord personnalisé dans la Cloud Console.
Tableau de bord avancé d’observabilité intégré
ClickHouse inclut une fonctionnalité intégrée de tableau de bord avancé d’observabilité, accessible à l’adresse $HOST:$PORT/dashboard (nécessite un nom d’utilisateur et un mot de passe), qui affiche les métriques de Cloud Overview contenues dans system.dashboards.
Ce tableau de bord nécessite une authentification directe auprès de l’instance ClickHouse et est distinct du tableau de bord avancé de la Cloud Console, accessible depuis l’UI de Cloud Console sans authentification supplémentaire.
Pour en savoir plus sur les visualisations disponibles et sur leur utilisation pour le troubleshooting, consultez la documentation du tableau de bord avancé.
Interroger l’ensemble des nœuds et des versions
Pour obtenir une vue complète du cluster, les utilisateurs peuvent exploiter la fonction clusterAllReplicas en combinaison avec la fonction merge. La fonction clusterAllReplicas permet d’interroger les tables système sur l’ensemble des réplicas du cluster “default”, en regroupant les données propres à chaque nœud dans un résultat unifié. Combinée à la fonction merge, elle permet de cibler toutes les données système d’une table donnée dans un cluster.
Par exemple, pour trouver les 5 requêtes ayant le temps d’exécution le plus long sur l’ensemble des réplicas au cours de la dernière heure :
SELECT
type,
event_time,
query_duration_ms,
query,
read_rows,
tables
FROM clusterAllReplicas(default, system.query_log)
WHERE event_time >= (now() - toIntervalMinute(60)) AND type = 'QueryFinish'
ORDER BY query_duration_ms DESC
LIMIT 5
FORMAT VERTICAL
Cette approche est particulièrement utile pour la surveillance et le débogage des opérations à l’échelle du cluster, ce qui permet aux utilisateurs d’analyser efficacement l’état et les performances de leur déploiement ClickHouse Cloud.
Pour plus de détails, consultez l’interrogation sur plusieurs nœuds.
Considérations relatives au système
Interroger directement les tables système ajoute une charge de requêtes à votre service de production, empêche les instances ClickHouse Cloud de se mettre en veille (ce qui peut avoir un impact sur les coûts) et lie la disponibilité du monitoring à l’état de santé du système de production. Si le système de production tombe en panne, le monitoring peut lui aussi être affecté.
Pour le monitoring de production en temps réel avec une séparation opérationnelle, envisagez d’utiliser l’endpoint de métriques compatible Prometheus ou les Cloud Console dashboards, qui s’appuient tous deux sur des métriques pré-collectées et n’émettent pas de requêtes vers le service sous-jacent.