Paramètres de liste déroulante des classeurs
En utilisant des paramètres de liste déroulante, vous pouvez collecter une ou plusieurs valeurs d’entrée à partir d’un ensemble connu. Par exemple, vous pouvez utiliser un paramètre de liste déroulante pour sélectionner l’une des requêtes de votre application. Les paramètres de liste déroulante représentent également un moyen convivial de recueillir des entrées arbitraires des utilisateurs. Les paramètres de liste déroulante particulièrement utiles pour permettre le filtrage dans des rapports interactifs.
Le moyen le plus simple de spécifier un paramètre de liste déroulante consiste à fournir une liste statique dans le paramètre. Il est plus intéressant de récupérer la liste de manière dynamique avec une requête KQL. Vous pouvez également spécifier s’il s’agit d’une sélection unique ou multiple à l’aide des paramètres. S’il s’agit d’une sélection multiple, vous pouvez spécifier la façon dont le jeu de résultats doit être mis en forme (délimiteur ou guillemet, par exemple).
Créer un paramètre de liste déroulante statique
Démarrez avec un classeur vide en mode d’édition.
Sélectionnez Ajouter des paramètres>Ajouter un paramètre.
Dans le nouveau volet des paramètres qui apparaît, entrez :
- Nom du paramètre :
Environment
- Type de paramètre :
Drop down
- Obligatoire :
checked
- Autoriser les sélections multiples :
unchecked
- Récupérer des données à partir de :
JSON
- Nom du paramètre :
Dans le bloc de texte de l’entrée JSON, insérez cet extrait de code JSON :
[ { "value":"dev", "label":"Development" }, { "value":"ppe", "label":"Pre-production" }, { "value":"prod", "label":"Production", "selected":true } ]
Sélectionnez Mettre à jour.
Sélectionnez Enregistrer pour créer le paramètre.
Le paramètre Environnement correspond à une liste déroulante à trois valeurs.
Créer une liste déroulante statique avec des groupes d’éléments
Si le résultat/JSON de votre requête contient un champ group
, la liste déroulante affiche des groupes de valeurs. Suivez l’exemple précédent, en utilisant cette fois le JSON suivant :
[
{ "value":"dev", "label":"Development", "group":"Development" },
{ "value":"dev-cloud", "label":"Development (Cloud)", "group":"Development" },
{ "value":"ppe", "label":"Pre-production", "group":"Test" },
{ "value":"ppe-test", "label":"Pre-production (Test)", "group":"Test" },
{ "value":"prod1", "label":"Prod 1", "selected":true, "group":"Production" },
{ "value":"prod2", "label":"Prod 2", "group":"Production" }
]
Créer un paramètre de liste déroulante dynamique
Démarrez avec un classeur vide en mode d’édition.
Sélectionnez Ajouter des paramètres>Ajouter un paramètre.
Dans le nouveau volet des paramètres qui apparaît, entrez :
- Nom du paramètre :
RequestName
- Type de paramètre :
Drop down
- Obligatoire :
checked
- Autoriser les sélections multiples :
unchecked
- Récupérer des données à partir de :
Query
- Nom du paramètre :
Dans le bloc de texte de l’entrée JSON, insérez cet extrait de code JSON :
requests | summarize by name | order by name asc
Sélectionnez Run Query (Exécuter la requête).
Sélectionnez Enregistrer pour créer le paramètre.
Le paramètre RequestName correspond à une liste déroulante contenant les noms de toutes les demandes de l’application.
Référencer un paramètre de liste déroulante
Vous pouvez référencer des paramètres de liste déroulante.
En KQL
Sélectionnez Ajouter une requête pour ajouter un contrôle de requête, puis sélectionnez une ressource Application Insights.
Dans l’éditeur KQL, entrez cet extrait de code :
requests | where name == '{RequestName}' | summarize Requests = count() by bin(timestamp, 1h)
Cet extrait de code développe ainsi l’heure d’évaluation de la requête :
requests | where name == 'GET Home/Index' | summarize Requests = count() by bin(timestamp, 1h)
Exécuter la requête pour afficher les résultats. Si vous le souhaitez, présentez-les sous forme de graphique.
Valeur, étiquette, sélection et groupe de paramètres
La requête utilisée dans le paramètre de liste déroulante dynamique précédent retourne une liste de valeurs fidèlement restituées dans la liste déroulante. Mais comment faire pour choisir un autre nom d’affichage ou en sélectionner un ? Les paramètres de liste déroulante utilisent des colonnes de valeur, d’étiquette, de sélection et de groupe pour cette fonctionnalité.
L’exemple suivant montre comment récupérer une liste de dépendances Application Insights dont les noms d’affichage sont stylisés avec un emoji, dont le premier nom d’affichage est sélectionné et qui est groupée par nom d’opération :
dependencies
| summarize by operation_Name, name
| where name !contains ('.')
| order by name asc
| serialize Rank = row_number()
| project value = name, label = strcat('🌐 ', name), selected = iff(Rank == 1, true, false), group = operation_Name
Options des paramètres de liste déroulante
Paramètre | Description | Exemple |
---|---|---|
{DependencyName} |
Valeur sélectionnée | GET fabrikamaccount |
{DependencyName:label} |
Étiquette sélectionnée | 🌐 GET fabrikamaccount |
{DependencyName:value} |
Valeur sélectionnée | GET fabrikamaccount |
Sélection multiple
Les exemples donnés jusqu’ici définissent explicitement le paramètre de façon à sélectionner une seule valeur dans la liste déroulante. Les paramètres de liste déroulante prennent également en charge les sélections multiples. Pour activer cette option, cochez la case Autoriser les sélections multiples.
Vous pouvez spécifier le format du jeu de résultats à l’aide des paramètres Délimiteur et Guillemet avec. Par défaut, les valeurs sont retournées sous forme de collection au format : a, b, c. Vous pouvez également limiter le nombre de sélections.
Le code KQL qui fait référence au paramètre doit être modifié pour l’adapter au format du résultat. Le moyen le plus courant d’y parvenir consiste à utiliser l’opérateur in
.
dependencies
| where name in ({DependencyName})
| summarize Requests = count() by bin(timestamp, 1h), name
Cet exemple montre le paramètre de liste déroulante à sélection multiple en action :
Sélections spéciales de liste déroulante
Les paramètres de liste déroulante vous permettent également de spécifier des valeurs spéciales qui s’afficheront aussi dans la liste déroulante :
- Les un
- Les trois
- ...
- Les 100 éléments
- Tout {limite personnalisée
- Tous
Lorsque ces éléments spéciaux sont sélectionnés, la valeur du paramètre est automatiquement définie sur le nombre spécifique d’éléments, ou sur toutes les valeurs.
Traitement des cas spéciaux avec Tout
Lorsque vous sélectionnez l’option Tout, un champ supplémentaire s’affiche, qui vous permet d’indiquer qu’une valeur spéciale sera utilisée pour le paramètre si l’option Tout est sélectionnée. Cette valeur spéciale est utile dans les cas où « Tout » est susceptible de représenter un grand nombre d’éléments et pourrait générer une requête très volumineuse.
Dans ce cas spécifique, la chaîne []
est utilisée à la place d’une valeur. Cette chaîne peut être utilisée pour générer un tableau vide dans la requête logs, par exemple :
let selection = dynamic([{Selection}]);
SomeQuery
| where array_length(selection) == 0 or SomeField in (selection)
Si tous les éléments sont sélectionnés, la valeur de Selection
est []
, ce qui produit un tableau vide pour la variable selection
de la requête. Si aucune valeur n’est sélectionnée, la valeur de Selection
est une chaîne vide, ce qui génère également un tableau vide. Si des valeurs sont sélectionnées, elles sont mises en forme à l’intérieur de la partie dynamique de la requête, et le tableau présente ces valeurs. Vous pouvez ensuite effectuer un test en attribuant à array_length
la valeur 0 pour que le filtre ne s’applique pas ou utiliser l’opérateur in
pour filtrer sur les valeurs du tableau.
Dans d’autres exemples courants, « * » est utilisé comme valeur spéciale de marqueur quand un paramètre est obligatoire, puis un test est effectué avec :
| where "*" in ({Selection}) or SomeField in ({Selection})