活頁簿下拉式清單參數
您可以使用下拉式清單參數,從已知集合收集一或多個輸入值。 例如,您可以使用下拉式清單參數來選取其中一個應用程式的要求。 下拉式清單參數提供使用者易記的方式,以收集使用者的任意輸入。 下拉式清單參數在互動式報告中啟用篩選特別實用。
指定下拉式清單參數最簡單的方式是在參數設定中提供靜態清單。 更有趣的方法是透過 KQL 查詢動態取得清單。 您也可以使用參數設定來指定其是單一或多重選取。 如果是多重選取,您可以指定結果集的格式,例如分隔符號或引號。
建立靜態下拉式清單參數
從編輯模式中的空白活頁簿開始。
選取 [新增參數]>[新增參數]。
在開啟的新參數窗格中,輸入:
- 參數名稱:
Environment
- 參數類型:
Drop down
- 必要:
checked
- 允許複選:
unchecked
- 取得資料來源:
JSON
- 參數名稱:
在 [JSON 輸入] 文字區塊中,插入此 JSON 程式碼片段:
[ { "value":"dev", "label":"Development" }, { "value":"ppe", "label":"Pre-production" }, { "value":"prod", "label":"Production", "selected":true } ]
選取更新。
選取 [儲存] 以建立參數。
[環境] 參數會是具有三個值的下拉式清單。
建立具有項目群組的靜態下拉式清單
如果您的查詢結果/JSON 包含 group
欄位,下拉式清單會顯示值的群組。 請遵循上述範例,但改用下列 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" }
]
建立動態下拉式清單參數
從編輯模式中的空白活頁簿開始。
選取 [新增參數]>[新增參數]。
在開啟的新參數窗格中,輸入:
- 參數名稱:
RequestName
- 參數類型:
Drop down
- 必要:
checked
- 允許複選:
unchecked
- 取得資料來源:
Query
- 參數名稱:
在 [JSON 輸入] 文字區塊中,插入此 JSON 程式碼片段:
requests | summarize by name | order by name asc
選取 [執行查詢]。
選取 [儲存] 以建立參數。
RequestName 參數將是一個下拉式清單,其中包含應用程式中所有請求的名稱。
參考下拉式清單參數
您可以參考下拉式清單參數。
在 KQL 中
選取 [新增查詢] 以新增查詢控制項,然後選取 Application Insights 資源。
在 KQL 編輯器中,輸入此程式碼片段
requests | where name == '{RequestName}' | summarize Requests = count() by bin(timestamp, 1h)
程式碼片段將查詢評估時間展開為:
requests | where name == 'GET Home/Index' | summarize Requests = count() by bin(timestamp, 1h)
執行查詢以查看結果。 選擇性地將其轉譯為圖表。
參數值、標籤、選取項目和群組
上述動態下拉式清單參數中使用的查詢僅傳回在下拉式清單中忠實轉譯的值清單。 但是,如果您想要不同的顯示名稱,或者選取其中一個顯示名稱,該怎麼辦? 下拉式清單參數會針對此功能使用值、標籤、選取項目和群組資料行。
下列範例示範如何取得 Application Insights 相依性清單,這些相依性的顯示名稱使用表情符號進行樣式化,已選取第一個,並依作業名稱分組:
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
下拉式清單參數選項
參數 | 描述 | 範例 |
---|---|---|
{DependencyName} |
選取的值 | GET fabrikamaccount |
{DependencyName:label} |
選取的標籤 | 🌐 GET fabrikamaccount |
{DependencyName:value} |
選取的值 | GET fabrikamaccount |
多重選取
到目前為止,範例會明確設定參數,使其僅在下拉式清單中選取一個值。 下拉式清單參數也支援多重選取。 若要啟用此選項,選取 [允許多重選取] 核取方塊。
您可以透過 [分隔符號] 和 [引用] 設定來指定結果集的格式。 預設值是以下列形式傳回值作為集合:a、b、c。 您也可以限制選取項目的數目。
參考參數的 KQL 必須變更以使用結果的格式。 最常見的啟用方法是透過 in
運算子。
dependencies
| where name in ({DependencyName})
| summarize Requests = count() by bin(timestamp, 1h), name
此範例顯示工作的多重選取下拉式清單參數:
下拉式清單特殊選取項目
下拉式清單參數也可讓您指定也會出現在下拉式清單中的特殊值:
- 任一個
- 任三個
- ...
- 任 100 個
- 任何自訂限制
- 全部
選取這些特殊項目時,參數值會自動設定為特定項目數目,或所有值。
特殊大小寫全部
當您選取 [全部] 選項時,會出現額外的欄位,這可讓您指定選取 [所有] 選項時,參數將使用的特殊值。 這個特殊值適用於「全部」可能是大量項目,而且可能會產生大量查詢的情況。
在此特定案例中,會使用字串 []
而不是值。 此字串可用來在記錄查詢中產生空陣列,例如:
let selection = dynamic([{Selection}]);
SomeQuery
| where array_length(selection) == 0 or SomeField in (selection)
如果選取所有項目,Selection
的值就會 []
,為查詢中的 selection
變數產生空陣列。 如果未選取任何值,則 Selection
的值會是空字串,也會產生空陣列。 如果選取任何值,這些值就會格式化在查詢的動態部分內,導致陣列具有這些值。 然後,您可以測試 0 的 array_length
,以不套用篩選,或使用 in
運算子來篩選陣列中的值。
當需要參數時,其他常見範例會使用『*』作為特殊標記值,然後使用下列專案進行測試:
| where "*" in ({Selection}) or SomeField in ({Selection})