Vervolgkeuzelijstsparameters voor werkmappen
Met behulp van vervolgkeuzelijstparameters kunt u een of meer invoerwaarden uit een bekende set verzamelen. U kunt bijvoorbeeld een vervolgkeuzelijst gebruiken om een van de aanvragen van uw app te selecteren. Vervolgkeuzelijstparameters bieden ook een gebruiksvriendelijke manier om willekeurige invoer van gebruikers te verzamelen. Vervolgkeuzelijstparameters zijn vooral handig bij het inschakelen van filters in uw interactieve rapporten.
De eenvoudigste manier om een vervolgkeuzelijst op te geven, is door een statische lijst op te geven in de parameterinstelling. Een interessantere manier is om de lijst dynamisch op te halen via een KQL-query. U kunt ook opgeven of het één of meerdere selecties is met behulp van parameterinstellingen. Als het meerdere selecties is, kunt u opgeven hoe de resultatenset moet worden opgemaakt, bijvoorbeeld als scheidingsteken of aanhalingsteken.
Onderdelen van vervolgkeuzelijstparameter
Wanneer u statische JSON-inhoud gebruikt of dynamische waarden ophaalt uit query's, staan vervolgkeuzelijstparameters maximaal vier gegevensvelden toe, in deze specifieke volgorde:
value
(vereist): de eerste kolom/het eerste veld in de gegevens wordt gebruikt als de letterlijke waarde van de parameter. In het geval van eenvoudige statische JSON-parameters kan het net zo eenvoudig zijn als de JSON-inhoud["dev", "test", "prod"]
, waarmee een vervolgkeuzelijst van drie items met deze waarden wordt gemaakt als zowel de waarde als het label in de vervolgkeuzelijst. De naam van dit veld hoeft niet te zijnvalue
, de vervolgkeuzelijst gebruikt het eerste veld in de gegevens, ongeacht de naam.label
(optioneel): de tweede kolom/het tweede veld in de gegevens wordt gebruikt als de weergavenaam/het label van de parameter in de vervolgkeuzelijst. Als deze niet is opgegeven, wordt de waarde gebruikt als het label. De naam van dit veld hoeft niet te zijnlabel
, de vervolgkeuzelijst gebruikt het tweede veld in de gegevens, ongeacht de naam.selected
(optioneel): de derde kolom/het veld in de gegevens wordt gebruikt om op te geven welke waarde standaard moet worden geselecteerd. Als dit niet is opgegeven, worden er standaard geen items geselecteerd. Het selectiegedrag is gebaseerd op het JavaScript-concept 'falsy', dus waarden zoals0
,false
ofnull
lege tekenreeksen worden behandeld als niet geselecteerd. De naam van dit veld hoeft niet te zijnselected
, de vervolgkeuzelijst gebruikt het derde veld in de gegevens, ongeacht de naam.Notitie
Dit bepaalt alleen de standaardselectie , zodra een gebruiker waarden in de vervolgkeuzelijst heeft geselecteerd, worden deze door de gebruiker geselecteerde waarden gebruikt. Zelfs als een volgende query voor de parameter wordt uitgevoerd en nieuwe standaardwaarden retourneert. Als u wilt terugkeren naar de standaardselectie, kan het gebruik de optie Standaarditems gebruiken in de vervolgkeuzelijst, waarmee de standaardwaarden opnieuw worden opgeslagen en toegepast.
Standaardwaarden worden alleen toegepast als er geen items zijn geselecteerd door de gebruiker.
Als een volgende query items retourneert die geen eerder geselecteerde waarden bevatten, worden de ontbrekende waarden uit de selectie verwijderd. De geselecteerde items in de vervolgkeuzelijst worden het snijpunt van de items die door de query worden geretourneerd en de items die eerder zijn geselecteerd.
group
(optioneel): in tegenstelling tot de andere velden moet de groeperingskolom worden benoemdgroup
en weergegeven navalue
,label
enselected
. Dit veld in de gegevens wordt gebruikt om de items in de vervolgkeuzelijst te groeperen. Als dit niet is opgegeven, wordt er geen groepering gebruikt. Als standaardselectie niet nodig is, moeten de gegevens/query nog steeds eenselected
veld retourneren in ten minste één object/rij, zelfs als alle waarden zijnfalse
.
Notitie
Alle andere velden in de gegevens worden genegeerd door de vervolgkeuzelijstparameter. Het wordt aanbevolen om de inhoud te beperken tot alleen die velden die in de vervolgkeuzelijst worden gebruikt om ingewikkelde query's te voorkomen die gegevens retourneren die worden genegeerd.
Een statische vervolgkeuzelijst maken
Begin met een lege werkmap in de bewerkingsmodus.
Selecteer Parameters toevoegen parameter toevoegen>.
Voer in het nieuwe parametervenster dat wordt geopend het volgende in:
Parameternaam:
Environment
Parametertype:
Drop down
Vereist:
checked
Meerdere selecties toestaan:
unchecked
Gegevens ophalen uit:
JSON
of selecteerQuery
en selecteer deJSON
gegevensbron.Met de JSON-gegevensbron kan de JSON-inhoud verwijzen naar eventuele bestaande parameters.
Voeg in het tekstblok JSON-invoer dit JSON-fragment in:
[ { "value":"dev", "label":"Development" }, { "value":"ppe", "label":"Pre-production" }, { "value":"prod", "label":"Production", "selected":true } ]
Selecteer Bijwerken.
Selecteer Opslaan om de parameter te maken.
De parameter Omgeving is een vervolgkeuzelijst met de drie waarden.
Een statische vervolgkeuzelijst maken met groepen items
Als uw queryresultaat/JSON een group
veld bevat, worden in de vervolgkeuzelijst groepen waarden weergegeven. Volg het voorgaande voorbeeld, maar gebruik in plaats daarvan de volgende JSON:
[
{ "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" }
]
Notitie
Wanneer u een group
veld in uw query gebruikt, moet u ook een waarde voor label
en selected
velden opgeven.
Een dynamische vervolgkeuzelijst maken
Begin met een lege werkmap in de bewerkingsmodus.
Selecteer Parameters toevoegen parameter toevoegen>.
Voer in het nieuwe parametervenster dat wordt geopend het volgende in:
- Parameternaam:
RequestName
- Parametertype:
Drop down
- Vereist:
checked
- Meerdere selecties toestaan:
unchecked
- Gegevens ophalen uit:
Query
- Parameternaam:
Voeg in het tekstblok JSON-invoer dit JSON-fragment in:
requests | summarize by name | order by name asc
Selecteer Query uitvoeren.
Selecteer Opslaan om de parameter te maken.
De parameter RequestName is een vervolgkeuzelijst met de namen van alle aanvragen in de app.
Voorbeeld: Aangepaste labels, standaard het eerste item selecteren en groeperen op bewerkingsnaam
De query die in de voorgaande dynamische vervolgkeuzelijst wordt gebruikt, retourneert een lijst met waarden die worden weergegeven in de vervolgkeuzelijst. Als u een andere weergavenaam wilt of de gebruiker de weergavenaam wilt laten selecteren, gebruikt u de waarde, het label, de selectie en de groepskolommen.
In het volgende voorbeeld ziet u hoe u een lijst met afzonderlijke Application Insights-afhankelijkheden kunt ophalen. De weergavenamen worden gestijld met een emoji, het eerste item is standaard geselecteerd en de items worden gegroepeerd op bewerkingsnamen:
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
Naar een vervolgkeuzelijst-parameter verwijzen
U kunt overal verwijzen naar vervolgkeuzelijstparameters die kunnen worden gebruikt, waaronder het vervangen van de parameterwaarde in query's, visualisatie-instellingen, Markdown-tekstinhoud of andere plaatsen waar u een parameter als optie kunt selecteren.
In KQL
Selecteer Query toevoegen om een querybeheer toe te voegen en selecteer vervolgens een Application Insights-resource.
Voer in de KQL-editor dit fragment in:
requests | where name == '{RequestName}' | summarize Requests = count() by bin(timestamp, 1h)
Het fragment breidt de tijd voor queryevaluatie uit naar:
requests | where name == 'GET Home/Index' | summarize Requests = count() by bin(timestamp, 1h)
Selecteer de query Uitvoeren om de resultaten te bekijken. U kunt deze desgewenst weergeven als een grafiek.
Opties voor vervolgkeuzelijstparameter
Parameter | Description | Voorbeeld |
---|---|---|
{DependencyName} |
De geselecteerde waarde | GET fabrikamaccount |
{DependencyName:value} |
De geselecteerde waarde (hetzelfde als hierboven) | GET fabrikamaccount |
{DependencyName:label} |
Het geselecteerde label | 🌐 GET fabrikamaccount |
{DependencyName:escape} |
De geselecteerde waarde, waarbij alle algemene aanhalingstekens worden vervangen wanneer ze zijn opgemaakt in query's | GET fabrikamaccount |
Meerdere selecties
In de voorbeelden tot nu toe is de parameter expliciet ingesteld om slechts één waarde in de vervolgkeuzelijst te selecteren. Vervolgkeuzelijstparameters ondersteunen ook meerdere selecties. Als u deze optie wilt inschakelen, schakelt u het selectievakje Meerdere selecties toestaan in.
U kunt de indeling van de resultatenset opgeven via het scheidingsteken en offerte met instellingen. ,
Standaard wordt (komma) gebruikt als scheidingsteken en '
(enkele aanhalingsteken) als aanhalingsteken. De standaardwaarde retourneert de waarden als een verzameling in de vorm van 'a', 'b', 'c'
wanneer deze is opgemaakt in de query. U kunt ook het maximum aantal selecties beperken.
Wanneer u een meervoudige selectieparameter in een query gebruikt, moet u ervoor zorgen dat de KQL die verwijst naar de parameter werkt met de indeling van het resultaat. Voorbeeld:
- een parameter met één waarde bevat geen aanhalingstekens wanneer deze zijn opgemaakt in een query, dus zorg ervoor dat u de aanhalingstekens in de query zelf opneemt, bijvoorbeeld:
where name == '{parameter}'
. - aanhalingstekens worden opgenomen in de opgemaakte parameter wanneer u een parameter met meerdere selecties gebruikt, dus zorg ervoor dat de query geen aanhalingstekens bevat. Bijvoorbeeld:
where name in ({parameter})
.
Let op hoe dit voorbeeld ook is overgeschakeld naar name ==
name in
. De ==
operator staat slechts één waarde toe, terwijl de in
operator meerdere waarden toestaat.
dependencies
| where name in ({DependencyName})
| summarize Requests = count() by bin(timestamp, 1h), name
In dit voorbeeld ziet u de vervolgkeuzelijst met meerdere selecties op het werk:
Speciale selecties voor vervolgkeuzelijsten
Met vervolgkeuzelijstparameters kunt u ook speciale waarden opgeven die ook worden weergegeven in de vervolgkeuzelijst:
- Een van de twee
- Elke drie
- ...
- Elke 100
- Elke aangepaste limiet
- Alle
Wanneer deze speciale items zijn geselecteerd, wordt de parameterwaarde automatisch ingesteld op het specifieke aantal items of alle waarden.
Speciale behuizing alle, en toestaan dat een lege selectie wordt behandeld als Alle
Wanneer u Alles selecteert, wordt er een extra veld weergegeven, waarmee u een speciale waarde voor de parameter Alle kunt opgeven. Dit is handig wanneer 'Alle' een groot aantal items kan zijn en een zeer grote query kan genereren.
In dit specifieke geval wordt de tekenreeks []
gebruikt in plaats van een waarde. Deze tekenreeks kan worden gebruikt om een lege matrix te genereren in de logboekquery, zoals:
let selection = dynamic([{Selection}]);
SomeQuery
| where array_length(selection) == 0 or SomeField in (selection)
Als alle items zijn geselecteerd, is de waarde Selection
, []
die een lege matrix voor de selection
variabele in de query produceert. Als er geen waarden zijn geselecteerd, wordt de waarde Selection
opgemaakt als lege tekenreeks, wat ook resulteert in een lege matrix. Als er waarden zijn geselecteerd, worden deze opgemaakt in het dynamische deel van de query, waardoor de matrix deze waarden heeft. U kunt vervolgens testen op array_length
0 om het filter niet toe te passen of de in
operator te gebruiken om te filteren op de waarden in de matrix.
Andere veelvoorkomende voorbeelden gebruiken '*' als de speciale markeringswaarde wanneer een parameter is vereist en test vervolgens met:
| where "*" in ({Selection}) or SomeField in ({Selection})