Création d’une visualisation basée sur SQL
- Sélectionnez une connexion ClickHouse sur laquelle exécuter la requête.
- Sélectionnez éventuellement une Source — cela permet d’appliquer à votre visualisation des filtres au niveau du tableau de bord via la macro
$__filters. - Rédigez votre requête SQL dans l’éditeur, en utilisant des paramètres de requête et des macros pour l’intégrer à l’intervalle de temps, aux filtres et aux variables du tableau de bord.
- Cliquez sur le bouton play pour prévisualiser les résultats, puis sur Save.
Paramètres de requête
{paramName:Type}.
Paramètres disponibles
Graphiques de tableau, en secteurs et numériques :
Macros
$__ et remplacées avant l’envoi de la requête à ClickHouse.
Macros de limites temporelles
Macros de filtrage temporel
WHERE qui filtre une colonne selon l’intervalle de temps du tableau de bord.
Exemple d’expansion de
$__timeFilter(TimestampTime):
Macros d’intervalle de temps
SELECT et GROUP BY pour les graphiques de séries temporelles. Elles sont uniquement disponibles pour les visualisations Line et Stacked-bar.
Exemple d’expansion de
$__timeInterval(TimestampTime):
Macro de filtre du tableau de bord
Lorsqu’une Source est sélectionnée dans le graphique et que les filtres du tableau de bord sont actifs,
$__filters se développe en conditions WHERE SQL correspondantes. Lorsqu’aucune source n’est sélectionnée ou qu’aucun filtre n’est appliqué, il se développe en (1=1) ; il peut donc toujours être inclus sans risque dans une clause WHERE.
Seuls les filtres pour lesquels la Condition de filtre de diffusion est activée sont appliqués par $__filters. Les filtres exposés en tant que variables sont référencés explicitement, comme décrit ci-dessous.
Macros de variables de tableau de bord
Les valeurs d’une variable peuvent également être interpolées directement sous la forme
$name ou ${name}, avec un format facultatif : ${name:sqlstring} (par défaut), ${name:csv} ou ${name:regex}. Dans le format par défaut, une référence directe renvoie NULL tant qu’aucune valeur n’est sélectionnée ; utilisez donc de préférence les macros ci-dessus partout où un prédicat est attendu.
Comment les résultats de la requête sont représentés
Graphiques en courbes et en barres empilées
Diagramme circulaire
Graphique numérique
Tableau
Exemples
Accès requis aux tables systèmeVous devrez préciser
otel_v2.otel_logs ou otel_v2.otel_traces si vous exécutez les exemples suivants sur play-clickstack.clickhouse.com.Graphique en courbes — nombre de logs au fil du temps par service
ts(DateTime) est utilisé comme horodatage pour l’axe des x.count(numérique) est représenté comme valeur de la série.ServiceName(chaîne) crée une ligne distincte pour chaque service.
Graphique en courbes — avec des macros
Graphique en courbes — utilisation des variables de tableau de bord
service sur ServiceName et une variable severity sur SeverityText, cette requête limite le graphique à la sélection actuelle du service et exclut les niveaux de gravité sélectionnés. Les deux macros se développent en 1=1 lorsqu’aucune valeur n’est sélectionnée pour leur variable ; le graphique s’affiche donc sans filtre jusqu’à ce que l’utilisateur sélectionne une valeur.
Graphique en barres empilées — nombre d’erreurs par niveau de gravité
Tableau — les 10 endpoints les plus lents
Diagramme circulaire — répartition des requêtes par service
request_count(numérique) détermine la taille de chaque secteur.ServiceName(chaîne) correspond à l’étiquette de chaque secteur.
graphique numérique — nombre total d’erreurs
total_errors de la première ligne est affichée.
Remarques
- Les visualisations basées sur SQL s’exécutent en mode
readonly— seules les requêtesSELECTsont autorisées. - Les visualisations basées sur SQL doivent contenir exactement une requête SQL — les requêtes multiples ne sont pas prises en charge.
- L’éditeur SQL propose des suggestions d’autocomplétion pour les paramètres de requête comme pour les macros.
- Une source doit être sélectionnée pour appliquer les filtres du tableau de bord aux visualisations basées sur SQL. Pour un filtrage précis, la source doit correspondre à la table interrogée.
- Les variables de tableau de bord n’ont pas besoin de source — les valeurs proviennent des listes déroulantes de filtres du tableau de bord, et non de la source propre à la tuile.
- Les alertes sur une tuile SQL qui référence une variable de tableau de bord sont évaluées avec chaque variable dans son état vide, et non avec les valeurs sélectionnées sur le tableau de bord.