Parametry rozevíracího seznamu sešitu
Pomocí parametrů rozevíracího seznamu můžete shromažďovat jednu nebo více vstupních hodnot ze známé sady. Pomocí parametru rozevíracího seznamu můžete například vybrat jeden z požadavků vaší aplikace. Parametry rozevíracího seznamu také poskytují uživatelsky přívětivý způsob shromažďování libovolných vstupů od uživatelů. Parametry rozevíracího seznamu jsou užitečné zejména při povolování filtrování v interaktivních sestavách.
Nejjednodušší způsob, jak zadat parametr rozevíracího seznamu, je poskytnutí statického seznamu v nastavení parametru. Zajímavější způsob je dynamicky získat seznam prostřednictvím dotazu KQL. Pomocí nastavení parametrů můžete také určit, jestli se jedná o jeden nebo vícenásobný výběr. Pokud se jedná o vícenásobný výběr, můžete určit, jak se má sada výsledků formátovat, například jako oddělovač nebo uvozovky.
Komponenty parametrů rozevíracího seznamu
Při použití statického obsahu JSON nebo získávání dynamických hodnot z dotazů umožňují parametry rozevíracího seznamu až čtyři pole informací v tomto konkrétním pořadí:
value
(povinné): první sloupec nebo pole v datech se používá jako hodnota literálu parametru. V případě jednoduchých statických parametrů JSON to může být stejně jednoduché jako obsah["dev", "test", "prod"]
JSON, který by vytvořil rozevírací seznam tří položek s těmito hodnotami jako hodnotu i popisek v rozevíracím seznamu. Název tohoto pole nemusí býtvalue
, v rozevíracím seznamu se použije první pole v datech bez ohledu na název.label
(volitelné): Druhý sloupec / pole v datech se používá jako zobrazovaný název/popisek parametru v rozevíracím seznamu. Pokud není zadán, použije se jako popisek hodnota. Název tohoto pole nemusí býtlabel
, v rozevíracím seznamu se použije druhé pole v datech bez ohledu na název.selected
(volitelné): Třetí sloupec / pole v datech slouží k určení hodnoty, která má být ve výchozím nastavení vybrána. Pokud není zadáno, nejsou ve výchozím nastavení vybrány žádné položky. Chování výběru je založeno na konceptu "falsy" JavaScriptu, takže hodnoty jako0
,false
,null
nebo prázdné řetězce jsou považovány za nevybíjené. Název tohoto pole nemusí býtselected
, v rozevíracím seznamu se použije třetí pole v datech bez ohledu na název.Poznámka:
Toto nastavení řídí pouze výchozí výběr, jakmile uživatel vybere hodnoty v rozevíracím seznamu, použijí se tyto hodnoty vybrané uživatelem. I když se následující dotaz pro parametr spustí a vrátí nové výchozí hodnoty. Pokud se chcete vrátit k výchozímu výběru, můžete použít možnost Výchozí položky v rozevíracím seznamu, která znovu odešle dotaz na výchozí hodnoty a použije je.
Výchozí hodnoty se použijí jenom v případě, že uživatel nevybrali žádné položky.
Pokud následující dotaz vrátí položky, které neobsahují dříve vybrané hodnoty, chybějící hodnoty se z výběru odeberou. Vybrané položky v rozevíracím seznamu se stanou průnikem položek vrácených dotazem a položkami, které byly dříve vybrány.
group
(volitelné): Na rozdíl od ostatních polí musí být sloupec seskupení pojmenovángroup
a uveden zavalue
alabel
selected
. Toto pole v datech slouží k seskupení položek v rozevíracím seznamu. Pokud není zadáno, nebude použito žádné seskupení. Pokud není potřeba použít výchozí výběr, musí data nebo dotaz stále vracetselected
pole v alespoň jednom objektu nebo řádku, i když jsoufalse
všechny hodnoty .
Poznámka:
Parametr rozevíracího seznamu ignoruje všechna ostatní pole v datech. Doporučujeme omezit obsah jenom na pole použitá rozevíracím seznamem, aby se zabránilo složitým dotazům vracejících data, která se ignorují.
Vytvoření parametru statického rozevíracího seznamu
Začněte prázdným sešitem v režimu úprav.
Vyberte Přidat parametry>Přidat parametr.
V novém podokně parametrů, které se otevře, zadejte:
Název parametru:
Environment
Typ parametru:
Drop down
Povinné:
checked
Povolit více výběrů:
unchecked
Získat data z:
JSON
nebo vyberteQuery
a vyberteJSON
zdroj dat.Zdroj dat JSON umožňuje obsahu JSON odkazovat na všechny existující parametry.
Do bloku vstupního textu JSON vložte tento fragment kódu JSON:
[ { "value":"dev", "label":"Development" }, { "value":"ppe", "label":"Pre-production" }, { "value":"prod", "label":"Production", "selected":true } ]
Vyberte Aktualizovat.
Výběrem možnosti Uložit vytvořte parametr.
Parametr Prostředí je rozevírací seznam se třemi hodnotami.
Vytvoření statického rozevíracího seznamu se skupinami položek
Pokud výsledek dotazu nebo JSON obsahuje group
pole, zobrazí se v rozevíracím seznamu skupiny hodnot. Postupujte podle předchozí ukázky, ale použijte místo toho následující 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" }
]
Poznámka:
Při použití group
pole v dotazu musíte také zadat hodnotu pro label
pole a selected
pole.
Vytvoření dynamického parametru rozevíracího seznamu
Začněte prázdným sešitem v režimu úprav.
Vyberte Přidat parametry>Přidat parametr.
V novém podokně parametrů, které se otevře, zadejte:
- Název parametru:
RequestName
- Typ parametru:
Drop down
- Povinné:
checked
- Povolit více výběrů:
unchecked
- Získání dat z:
Query
- Název parametru:
Do bloku vstupního textu JSON vložte tento fragment kódu JSON:
requests | summarize by name | order by name asc
Vyberte Spustit dotaz.
Výběrem možnosti Uložit vytvořte parametr.
Parametr RequestName je rozevírací seznam s názvy všech požadavků v aplikaci.
Příklad: Vlastní popisky, výběr první položky ve výchozím nastavení a seskupení podle názvu operace
Dotaz použitý v předchozím dynamickém rozevíracím seznamu vrátí seznam hodnot vykreslených v rozevíracím seznamu. Pokud chcete použít jiné zobrazované jméno nebo povolit uživateli vybrat zobrazované jméno, použijte hodnotu, popisek, výběr a sloupce skupiny.
Následující ukázka ukazuje, jak získat seznam jedinečných závislostí Application Insights. Zobrazované názvy jsou ve stylu emoji, ve výchozím nastavení je vybraná první položka a položky jsou seskupené podle názvů operací:
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
Odkazování na parametr rozevíracího seznamu
Parametry rozevíracího seznamu můžete odkazovat kdekoli, kde se parametry dají použít, včetně nahrazení hodnoty parametru do dotazů, nastavení vizualizace, textového obsahu Markdownu nebo jiných míst, kde můžete jako možnost vybrat parametr.
V KQL
Vyberte Přidat dotaz , chcete-li přidat ovládací prvek dotazu, a pak vyberte prostředek Application Insights.
V editoru KQL zadejte tento fragment kódu:
requests | where name == '{RequestName}' | summarize Requests = count() by bin(timestamp, 1h)
Fragment kódu rozšiřuje čas vyhodnocení dotazu na:
requests | where name == 'GET Home/Index' | summarize Requests = count() by bin(timestamp, 1h)
Výběrem dotazu Spustit zobrazíte výsledky. Volitelně ho můžete vykreslit jako graf.
Možnosti rozevíracího seznamu parametrů
Parametr | Popis | Příklad |
---|---|---|
{DependencyName} |
Vybraná hodnota | GET fabrikamaccount |
{DependencyName:value} |
Vybraná hodnota (stejná jako výše) | GET fabrikamaccount |
{DependencyName:label} |
Vybraný popisek | 🌐 GET fabrikamaccount |
{DependencyName:escape} |
Vybraná hodnota s libovolnými běžnými znaky uvozovek nahrazené při formátování do dotazů | GET fabrikamaccount |
Vícenásobný výběr
Dosud uvedené příklady explicitně nastavily parametr tak, aby v rozevíracím seznamu vybrali pouze jednu hodnotu. Parametry rozevíracího seznamu také podporují více výběrů. Pokud chcete tuto možnost povolit, zaškrtněte políčko Povolit více výběrů .
Formát sady výsledků můžete zadat pomocí oddělovače a uvozovek s nastavením. Ve výchozím nastavení ,
se jako oddělovač používá (čárka) a '
jako znak uvozovky se použije (jednoduchá uvozovka). Výchozí hodnota vrátí hodnoty jako kolekci ve formě 'a', 'b', 'c'
při formátování do dotazu. Můžete také omezit maximální počet výběrů.
Při použití více výběrového parametru v dotazu se ujistěte, že KQL odkazující na parametr funguje s formátem výsledku. Příklad:
- Parametr s jednou hodnotou neobsahuje žádné uvozovky při formátování dotazu, proto nezapomeňte do samotného dotazu zahrnout uvozovky, například:
where name == '{parameter}'
. - Uvozovky jsou součástí formátovaného parametru při použití vícenásobného výběrového parametru, proto se ujistěte, že dotaz neobsahuje uvozovky. Například
where name in ({parameter})
.
Všimněte si, jak tento příklad také přepnul z name ==
.name in
Operátor ==
umožňuje pouze jednu hodnotu, zatímco in
operátor umožňuje více hodnot.
dependencies
| where name in ({DependencyName})
| summarize Requests = count() by bin(timestamp, 1h), name
Tento příklad ukazuje parametr rozevíracího seznamu s vícenásobným výběrem v práci:
Rozevírací seznam speciálních výběrů
Parametry rozevíracího seznamu také umožňují zadat speciální hodnoty, které se zobrazí také v rozevíracím seznamu:
- Kdokoliv
- Jakékoli tři
- ...
- Libovolných 100
- Libovolný vlastní limit
- Všechny
Při výběru těchto speciálních položek se hodnota parametru automaticky nastaví na konkrétní počet položek nebo všechny hodnoty.
Speciální velikost mezer a povolení, aby byl prázdný výběr považován za Vše
Když vyberete Možnost Vše, zobrazí se další pole, které umožňuje zadat speciální hodnotu pro parametr All . To je užitečné, když "Vše" může být velký počet položek a může vygenerovat velmi velký dotaz.
V tomto konkrétním případě se řetězec []
použije místo hodnoty. Tento řetězec lze použít k vygenerování prázdného pole v dotazu protokolů, například:
let selection = dynamic([{Selection}]);
SomeQuery
| where array_length(selection) == 0 or SomeField in (selection)
Pokud jsou vybrány všechny položky, hodnota Selection
je []
, vytvoří prázdné pole pro proměnnou selection
v dotazu. Pokud nejsou vybrány žádné hodnoty, hodnota Selection
je formátována jako prázdný řetězec, výsledkem je také prázdné pole. Pokud jsou vybrány nějaké hodnoty, naformátují se uvnitř dynamické části dotazu, což způsobí, že pole bude mít tyto hodnoty. Potom můžete otestovat array_length
hodnotu 0, aby filtr nebyl použit, nebo pomocí operátoru in
vyfiltrovat hodnoty v matici.
Další běžné příklady používají jako speciální hodnotu značky, pokud je parametr povinný, a pak otestujte následující:
| where "*" in ({Selection}) or SomeField in ({Selection})