Améliorer l'interactivité des tableaux de bord Kibana grâce aux contrôles variables

Découvrez comment utiliser les contrôles variables dans Kibana 8.18+ pour filtrer les visualisations individuelles, ajuster les intervalles de temps et regrouper les données par champs dans les tableaux de bord Kibana.

Observez, sécurisez et explorez vos données avec une solution unifiée. De la supervision des applications à la détection des menaces, Kibana est votre plateforme polyvalente pour les cas d’usage critiques. Lancez votre essai gratuit de 14 jours dès maintenant.

Nous sommes ravis d'annoncer que les contrôles variables sont désormais disponibles dans les tableaux de bord Kibana à partir de la version 8.18 et pour toute la série 9.x ! Cette fonctionnalité est l'un des ajouts les plus demandés par les utilisateurs des tableaux de bord, et elle est enfin là 🎉 Au cours des derniers mois, nous avons continué à développer et affiner les contrôles variables. C'est donc le moment parfait pour leur consacrer un article de blog.

Qu'est-ce que les contrôles variables ?

Si vous avez déjà travaillé avec des tableaux de bord Kibana, vous connaissez probablement nos contrôles de tableau de bord classiques : ces menus déroulants pratiques affichent des valeurs extraites de vos données pour vous permettre de les filtrer en quelques clics.

Les contrôles variables semblent similaires à première vue, mais ils comportent une particularité astucieuse : au lieu de filtrer automatiquement chaque panneau de votre tableau de bord, ils peuvent être directement intégrés dans des requêtes ES|QL au sein de visualisations individuelles.

Cela signifie que vous décidez où chaque contrôle s'applique. Mieux encore, vous pouvez les utiliser pour toutes sortes de choses, comme ajuster les intervalles de temps, changer les champs de répartition ou modifier les paramètres de visualisation à la volée. En résumé, ils offrent une expérience véritablement interactive pour vos tableaux de bord et permettent ainsi d'obtenir des informations plus rapidement et plus facilement.

Cas d'utilisation des contrôles variables

Les contrôles variables semblent utiles, mais qu'offrent-ils vraiment ? Voici quelques exemples de la manière dont ils améliorent vos tableaux de bord :

Filtrez les visualisations sélectionnées

Vous souhaitez filtrer certaines visualisations seulement ? C'est possible avec les contrôles variables. Choisissez les panneaux sur lesquels vous souhaitez agir et connectez-les dans les requêtes ES|QL à l'origine de vos visualisations.

Sélectionnez différents intervalles de temps

Donnez à vos utilisateurs la possibilité de choisir entre « 5 minutes », « 1 heure », « 1 jour », ou tout autre intervalle temporel souhaité. Créez un contrôle variable avec des intervalles prédéfinis et connectez-le à votre requête de série temporelle.

Modifier les fonctions

Au lieu de créer plusieurs graphiques pour chaque opération, les utilisateurs du tableau de bord peuvent choisir s'ils veulent voir le maximum, la moyenne, différents centiles ou tout autre agrégateur.

Grouper par différents champs

Il est parfois nécessaire de décomposer les données selon différents facteurs lors d'une enquête. Grâce aux contrôles variables, vous pouvez définir plusieurs champs « grouper par » et permettre aux utilisateurs du tableau de bord de choisir celui qui les aidera à obtenir les informations souhaitées.

Comment faire ?

Le moyen le plus simple (et probablement le plus agréable) de créer un contrôle variable est directement depuis l'éditeur de requêtes ES|QL dans votre visualisation. Commencez simplement à taper votre requête, utilisez le menu de saisie automatique et Kibana vous fournira la structure de contrôle nécessaire.

Mais si vous préférez partir de la variable elle-même, vous pouvez également aller dans : Add panel → Controls → Variable control (Ajouter un panneau → Contrôles → Contrôle de variable) et ajouter la variable à vos visualisations après avoir créé le contrôle.

Exemple 1 : Contrôle de filtrage avec sélection à valeurs multiples

1. Choisissez une visualisation alimentée par une requête ES|QL et cliquez sur « Create control » (Créer un contrôle) dans la clause WHERE

2. Vous serez automatiquement redirigé vers le menu de création de variable, où le type « Values from a query » (Valeurs d’une requête) sera sélectionné pour vous, et le nom de la variable déjà pré-rempli. N’oubliez pas que le nom d’un contrôle doit toujours commencer par « ?... » pour fonctionner dans la requête de visualisation.

Vous aurez traditionnellement besoin d'une requête comme celle-ci pour obtenir les valeurs d'un champ et les mettre à jour selon l'intervalle de temps sélectionné dans le tableau de bord :

3. Lorsque vous enregistrez le contrôle, vous le verrez apparaître en haut du tableau de bord et votre requête de visualisation sera mise à jour avec le nom du contrôle variable.

4. Si vous souhaitez ajouter une sélection à valeurs multiples au contrôle, vous devez utiliser la fonction MV_CONTAINS dans la requête et sélectionner « Allow multiple selections » (Autoriser les sélections multiples) lors de la création du contrôle à l’étape 2 (disponible à partir de la version 9.3).

Exemple 2 : contrôle de l'intervalle de temps

Si vous créez une série temporelle, vous pouvez facilement ajouter un contrôle variable pour l'intervalle de votre histogramme de dates :

1. Lors de la rédaction d'une requête ES|QL pour votre série temporelle, cliquez sur « Create control » (Créer un contrôle). Lorsque vous créez une variable pour des intervalles, il est préférable d'utiliser TBUCKET au lieu de BUCKET pour prendre en charge des intervalles plus lisibles tels que « 1 heure », « 1 jour », etc. Une option automatique sera bientôt disponible pour TBUCKET afin qu'il puisse s'adapter automatiquement aux périodes de temps.

2. Définissez les intervalles pour remplir les options dans le menu déroulant.

3. Sélectionnez différents intervalles dans le menu déroulant et observez comment votre visualisation change.

Exemple 3 : variables pour les fonctions

  1. Créez une variable en utilisant le type de contrôle « Static values » (Valeurs statiques) et ajoutez des noms de fonctions à vos valeurs déroulantes. Il est important d'utiliser un nom de variable qui commence par « ??… » pour remplacer les fonctions.

2. Incluez le nom de la variable dans votre requête ES|QL.

Exemple 4 : variables pour les champs

  1. Vous pouvez utiliser le type de contrôle « Static values » (Valeurs statiques) et indiquer les noms des champs que vous souhaitez. Le nom de variable doit commencer par « ??… » pour les champs.

2. Référencez la variable souhaitée dans la requête de visualisation.

Contrôles variables dans Discover

Les contrôles variables ne sont pas seulement une fonctionnalité du tableau de bord. Ils sont également disponibles directement dans l'éditeur ES|QL de Discover. Vous pouvez créer des contrôles pour accélérer l'exploration des données dans Discover, les intégrer au tableau de bord et inversement.

Détails techniques

Vous avez probablement remarqué que les contrôles de variables sont assortis de quelques règles, telles que les éléments d'une requête auxquels ils peuvent faire référence et les préfixes que vous devez utiliser (« ?... » pour les valeurs et « ??... » pour les champs ou les fonctions). En effet, les variables ne sont pas de simples remplacements de chaînes effectués sur le client. Ce sont des éléments essentiels du langage de requête (connus sous le nom de paramètres dans ES|QL).

Cette conception apporte de grands avantages. D'une part, Kibana peut comprendre le contexte de chaque variable, ce qui nous permet de générer et de pré-remplir automatiquement sa configuration pour vous. C’est aussi beaucoup plus sécurisé : le langage valide strictement les entrées variables et empêche ainsi les injections malveillantes tout en signalant toute erreur. De plus, il améliore les performances et la stabilité en transférant la validation complexe et la gestion des erreurs vers le serveur plutôt que vers le client. Une note sur les performances : une bonne pratique consiste à créer des variables qui incluent des requêtes rapides, car elles se chargent avant le tableau de bord. Ainsi, des requêtes lentes peuvent affecter les performances globales du tableau de bord.

Bien sûr, cette architecture présente aussi quelques limites, pour le moment. Les variables ne prennent pas encore en charge l'option « Tout » pour le filtrage, et elles ne peuvent actuellement pas être utilisées avec certains opérateurs tels que LIKE ou FROM (pour changer de source de données). La bonne nouvelle ? Nous travaillons activement à l'ajout de ces fonctionnalités.

Ce que l'avenir réserve aux contrôles

Nous ne nous arrêtons pas là ! Parmi les améliorations que nous suivons de près, citons :

✨ La possibilité de placer des contrôles n'importe où sur le tableau de bord

✨ Chaînage de vos contrôles, ce qui signifie que la sortie d'un contrôle devient l'entrée du suivant

✨ De meilleures options de sélection comme la sélection « Tout » pour les variables

✨ Nouveaux types de contrôle (contrôle de type rechercher et variables pour vos sources de données)

✨ Et d'autres améliorations de l'expérience utilisateur que vous avez demandées, comme le pré-filtrage des contrôles normaux

Si vous avez des idées ou des commentaires, n'hésitez pas à nous en faire part.

Pour aller plus loin

Prêt à créer des expériences de recherche d'exception ?

Une recherche suffisamment avancée ne se fait pas avec les efforts d'une seule personne. Elasticsearch est alimenté par des data scientists, des ML ops, des ingénieurs et bien d'autres qui sont tout aussi passionnés par la recherche que vous. Mettons-nous en relation et travaillons ensemble pour construire l'expérience de recherche magique qui vous permettra d'obtenir les résultats que vous souhaitez.

Jugez-en par vous-même