Connect 至 Azure 監視器資料來源 - Amazon Managed Grafana

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Connect 至 Azure 監視器資料來源

Azure 監視器資料來源支援 Azure 雲端中的多項服務:

  • Azure 監視器服務是提供監視 Azure 資源的單一來源的平台服務。如需詳細資訊,請參閱 查詢 Azure 監視器服務

  • Ap@@ plication Insights 伺服器是一種可擴充的應用程式效能管理 (APM) 服務,適用於多個平台上的 Web 開發人員,可用來監視您的即時 Web 應用程式-它會自動偵測效能異常。如需詳細資訊,請參閱 查詢應用程式洞察分析服務

  • Azure 記錄檔分析 (或 Azure 記錄檔) 可讓您存取 Azure 監視器所收集的記錄檔資料。如需詳細資訊,請參閱 查詢 Azure 記錄檔分析服務

  • 使用應用程式深入解析服務,使用 Azure 記錄分析所使用的相同查詢語言來查詢應用程式深入解析資料。如需詳細資訊,請參閱 查詢應用程式洞察分析服務

新增資料來源

資料來源可以存取來自四個不同服務的指標。您可以設定對您使用之服務的存取權。如果這是您在 Azure AD 中設置它的方式,也可以為多個服務使用相同的憑據。

  1. 從 Grafana 主功能表存取新安裝的資料來源可以立即在 [資料來源] 區段中新增。接下來,選擇右上角的「添加數據源」按鈕。Azure 監視器資料來源將可在資料來源清單的雲端區段中選取。

  2. 在名稱欄位中,Grafana 會自動填入資料來源的名稱:Azure Monitor或類似的名稱。Azure Monitor - 3如果您要設定多個資料來源,請將名稱變更為資訊更豐富的名稱。

  3. 如果您使用 Azure 監視器,則需要 Azure 入口網站提供的四項資訊 (如需詳細指示,請參閱先前提供的連結):

    • 租用戶識別碼 (Azure 作用中目錄、內容、目錄識別碼)

    • 戶端識別碼 (Azure 作用中目錄、應用程式註冊、選擇您的應用程式、應用程式 ID)

    • 客戶端密鑰(Azure 活動目錄,應用程序註冊,選擇您的應用程序,密鑰)

    • 預設訂閱識別碼 (訂閱、選擇訂閱、概觀、訂閱 ID)

  4. 將這四個項目貼到 Azure 監視器 API 詳細資料區段中的欄位中。

    • 每個查詢都可以變更訂閱識別碼。儲存資料來源並重新整理頁面,以查看可用於指定 Client Id 的訂閱清單。

  5. 如果您也使用 Azure 記錄分析服務,則必須指定這兩個設定值,或重複使用上一個步驟中的用戶端識別碼和密碼。

    • 用戶端識別碼 (Azure 作用中目錄、應用程式註冊、選擇您的應用程式、應用程式 ID)

    • 客戶端密鑰(Azure 活動目錄,應用程序註冊,選擇您的應用程序,密鑰,創建密鑰,使用客戶端密鑰)

  6. 如果您使用的是應用程式見解,則需要 Azure 入口網站提供的兩項資訊 (如需詳細指示,請參閱先前提供的連結):

    • 申請識別碼

    • API 金鑰

  7. 將這兩個項目貼到「應用程式深入解析 API 詳細資料」區段中的適當欄位。

  8. 選擇「儲存並測試」按鈕,測試組態詳細資料是否正確。

或者,在步驟 4,如果您正在創建一個新的 Azure 活動目錄應用程序,使用 Azure CLI

az ad sp create-for-rbac -n "http://localhost:3000"

選擇服務

在面板的查詢編輯器中,選擇 Azure 監視器資料來源之後,第一個步驟是選取服務。有四個選項:

  • Azure Monitor

  • Application Insights

  • Azure Log Analytics

  • Insights Analytics

查詢編輯器會根據您選取的選項而變更。Azure 監視器是預設值。

查詢 Azure 監視器服務

Azure 監視器服務會為您已執行的所有 Azure 服務提供度量。它可協助您瞭解 Azure 上應用程式的執行方式,以及主動尋找影響應用程式的問題。

如果您的 Azure 監視器認證可讓您存取多個訂用帳戶,請先選擇適當的訂用帳戶。

您可以從服務獲得的指標示例如下:

  • Microsoft.Compute/virtualMachines - Percentage CPU

  • Microsoft.Network/networkInterfaces - Bytes sent

  • Microsoft.Storage/storageAccounts - Used Capacity

查詢編輯器可讓您查詢支援這些維度的量度的多個維度。支援多個維度的量度是列在 Azure 監視器支援的量度清單中的量度,其在量度的「維度」欄中列出了一或多個值。

使用 Azure 監視器的別名格式化圖例索引鍵

Azure 監視器 API 的預設圖例格式為:

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

這些可能很長,但您可以使用別名來更改此格式。在「圖例格式」欄位中,您可以隨意組合下列別名。

Azure 監視器範例:

  • Blob Type: {{ blobtype }}

  • {{ resourcegroup }} - {{ resourcename }}

Azure 監視器的別名模式

  • {{ resourcegroup }}= 取代為資源群組的值

  • {{ namespace }}= 替換為命名空間的值(例如,微軟計算機/虛擬機)

  • {{ resourcename }}= 替換為資源名稱的值

  • {{ metric }}= 取代為量度名稱 (例如,CPU 百分比)

  • {{ dimensionname }}= 從 7.1+ 開始的舊版 (為了向後相容) 取代為第一個維度的索引鍵/標籤 (依鍵/標籤排序) (例如,blobtype)

  • {{ dimensionvalue }}= 從 7.1+ 開始的舊版 (為了向後相容) 取代為第一個維度的值 (依鍵/標籤排序) (例如,) BlockBlob

  • {{ arbitraryDim }}= 7.1+ 中可用,替換為對應尺寸的值。 (例如,{{ blobtype }}變成 BlockBlob)

建立 Azure 監視器的範本變數

您可以在指標查詢中使用變量,而不是硬編碼(例如服務器,應用程序和傳感器名稱)的內容。變數會顯示為儀表板頂端的下拉式選取方塊。您可以使用這些下拉式方塊來變更顯示在儀表板中的資料。

請注意,Azure 監視器服務尚不支援多個值。若要視覺化多個時間序列 (例如,server1 和 server2 的量度),請新增多個查詢,以便您可以在相同的圖形或同一個表格中檢視這些查詢。

Azure 監視器資料來源外掛程式提供下列查詢,您可以在 [變數] 編輯檢視的 [查詢] 欄位中指定這些查詢。您可以使用它們來填充變量的選項列表。

名稱 描述
Subscriptions() 傳回訂閱清單。
ResourceGroups() 傳回資源群組清單。
ResourceGroups(12345678-aaaa-bbbb-cccc-123456789aaa) 傳回指定訂閱的資源群組清單。
Namespaces(aResourceGroup) 傳回指定資源群組的命名空間清單。
Namespaces(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup) 傳回指定資源群組和訂閱的命名空間清單。
ResourceNames(aResourceGroup, aNamespace) 返回資源名稱的列表。
ResourceNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace) 傳回指定訂閱的資源名稱清單。
MetricNamespace(aResourceGroup, aNamespace, aResourceName) 傳回度量命名空間的清單。
MetricNamespace(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName) 傳回指定訂閱的測量結果命名空間清單。
MetricNames(aResourceGroup, aNamespace, aResourceName) 傳回度量名稱清單。
MetricNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName) 傳回指定訂閱的度量名稱清單。

範例:

  • Resource Groups 查詢:ResourceGroups()

  • 傳入度量名稱變數:Namespaces(cosmo)

  • 鏈接模板變量:ResourceNames($rg, $ns)

  • 不要引用參數:MetricNames(hg, Microsoft.Network/publicIPAddresses, grafanaIP)

如需範本變數和範本變數的詳細資訊,請參閱〈〉範本

支援的 Azure 監視器度量清單

並非 Azure 監視器 API 傳回的所有度量都有值。為了讓建立查詢更容易,Grafana 資料來源具有支援的 Azure 監視器度量清單,而且會忽略永遠不會有值的度量。隨著新的服務和指標新增至 Azure 雲端,此清單會定期更新。

Azure 監視器警示

Azure 監視器服務支援 Grafana 警示。這不是 Azure 警示支援。如需 Grafana 警示的詳細資訊,請參閱。Grafana 警報

查詢應用程式見解服務

使用「應用程式深入解析」的別名格式

預設圖例格式為:

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

在「圖例格式」欄位中,下列別名可以合併任何您想要的方式。

應用見解範例:

  • city: {{ client/city }}

  • {{ metric }} [Location: {{ client/countryOrRegion }}, {{ client/city }}]

應用程式見解的別名模式

  • {{ groupbyvalue }}= 從 Grafana 7.1+ 開始的遺產(為了向後兼容)替換為第一個維度的鍵/標籤(按鍵/標籤排序)

  • {{ groupbyname }}= 從 Grafana 7.1+ 開始的舊版 (為了向後相容) 取代為第一個維度的值 (如按鍵/標籤排序) (例如) BlockBlob

  • {{ metric }}= 取代為量度名稱 (例如,要求/計數)

  • {{ arbitraryDim }}= 7.1+ 中可用,替換為對應尺寸的值。 (例如,{{ client/city }}變成芝加哥)

應用程式見解的篩選運算

篩選欄位會採用 OData 篩選器運算式。

範例:

  • client/city eq 'Boydton'

  • client/city ne 'Boydton'

  • client/city ne 'Boydton' and client/city ne 'Dublin'

  • client/city eq 'Boydton' or client/city eq 'Dublin'

使用應用程式見解的變數進行範本

在「變數」編輯檢視的「查詢」欄位中使用下列查詢之一。

如需範本變數和範本變數的詳細資訊,請參閱〈〉範本

名稱 描述
AppInsightsMetricNames() 傳回度量名稱清單。
AppInsightsGroupBys(aMetricName) 傳回指定測量結果名稱的group by子句清單。

範例:

  • 測量結果名稱查詢:AppInsightsMetricNames()

  • 傳入度量名稱變數:AppInsightsGroupBys(requests/count)

  • 鏈接模板變量:AppInsightsGroupBys($metricnames)

應用程式洞察警示

應用程式深入解析支援 Grafana 警示。這不是 Azure 警示支援。如需 Grafana 警示的詳細資訊,請參閱。Grafana 警報

查詢 Azure 記錄檔分析服務

查詢會以新的 Azure 記錄分析 (或 KustoDB) 查詢語言撰寫。記錄分析查詢可以格式化為時間序列資料或資料表資料。

如果您的認證可讓您存取多個訂閱,請在輸入查詢之前選擇適當的訂閱。

時間序列查詢

時間序列查詢適用於圖形面板和其他面板 (例如 SingleStat 面板)。每個查詢必須至少包含一個日期時間列和一個數值列。結果必須依日期時間欄以遞增順序排序。

下列程式碼範例會顯示一個查詢,該查詢會傳回依小時分組的彙總計數。

Perf | where $__timeFilter(TimeGenerated) | summarize count() by bin(TimeGenerated, 1h) | order by TimeGenerated asc

一個查詢也可以有一個或多個非數字/非日期時間列,這些列被視為維度,並成為響應中的標籤。例如,查詢會傳回按小時、電腦和 CounterName.

Perf | where $__timeFilter(TimeGenerated) | summarize count() by bin(TimeGenerated, 1h), Computer, CounterName | order by TimeGenerated asc

您也可以選取其他數字值欄 (有或不包含多個維度)。例如,按小時獲取計數和平均值,計算機和 InstanceName: CounterName

Perf | where $__timeFilter(TimeGenerated) | summarize Samples=count(), ["Avg Value"]=avg(CounterValue) by bin(TimeGenerated, $__interval), Computer, CounterName, InstanceName | order by TimeGenerated asc
注意

提示:在先前的查詢中,Kusfor 語法和Samples=count()["Avg Value"]=...用於重命名這些列-允許空間的第二種語法。這會變更 Grafana 使用的量度名稱。因此,諸如序列圖例和表格欄之類的內容將與您指定的內容相符。在此範例中,Samples會顯示而不是_count

表格查詢

表查詢主要用於表格面板中,它們顯示列和行的列表。此範例查詢會傳回含有六個指定資料行的資料列。

AzureActivity | where $__timeFilter() | project TimeGenerated, ResourceGroup, Category, OperationName, ActivityStatus, Caller | order by TimeGenerated desc

格式化記錄分析的顯示名稱

預設的顯示名稱格式為:

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

您可以使用顯示名稱欄位選項來自訂此選項。

Azure 記錄檔分析巨集

為了使編寫查詢更容易,Grafana 提供了幾個宏,您可以在查詢的 where 子句中使用:

  • $__timeFilter()— 擴展TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) andTimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)到從和結束日期時間是從 Grafana 時間選擇器。

  • $__timeFilter(datetimeColumn)— 擴展datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) anddatetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)到從和結束日期時間是從 Grafana 時間選擇器。

  • $__timeFrom()— 從 Grafana 選擇器傳回「從」日期時間。範例:datetime(2018-06-05T18:09:58.907Z)

  • $__timeTo()— 從 Grafana 選擇器傳回「從」日期時間。範例:datetime(2018-06-05T20:09:58.907Z)

  • $__escapeMulti($myVar)— 用於包含非法字元的多值範本變數。如果$myVar有以下兩個值作為一個字符串'\\grafana-vm\Network(eth0)\Total','\\hello!',那麼它擴展為:@'\\grafana-vm\Network(eth0)\Total', @'\\hello!'。如果使用單值變量,則不需要此宏,請將變量轉義為 inline:@'\$myVar'

  • $__contains(colName, $myVar)-是與多值模板變量一起使用。如果$myVar具有該值'value1','value2',則會展開為:colName in ('value1','value2')

    如果使用「全部」選項,請勾選「包含全部選項」核取方塊,然後在「自訂全部值」欄位中輸入下列值:all。如果$myVar具有該值all,則巨集將會展開為1 == 1。對於具有許多選項的模板變量,這通過不構建一個大的「where.. in」子句來提高查詢性能。

Azure 記錄檔分析內建變數

也有可以在 Azure 記錄檔分析查詢中使用一些 Grafana 變數:

  • $__interval-Grafana 會計算可用於在查詢中依時間分組的最小時間粒度。它返回一個時間粒狀1h,如5m或可以在 bin 函數中使用; 例如,summarize count() by bin(TimeGenerated, $__interval)。如需間隔變數的詳細資訊,請參閱新增間隔變數

使用 Azure 記錄檔分析的變數進行範本處理

任何傳回值清單的 Log Analytics 查詢都可以在「變數」編輯檢視的「查詢」欄位中使用。記錄分析也有一個 Grafana 函數,可傳回工作區清單。

如需有關範本和範本變數的資訊,請參閱模板和變量

名稱 描述
workspaces() 傳回預設訂閱的工作區清單。
workspaces(12345678-aaaa-bbbb-cccc-123456789aaa) 傳回指定訂閱的工作區清單 (參數可加上引號或不加引號)。

下表顯示範例變數查詢。

Query 描述
subscriptions() 傳回 Azure 訂用帳戶的清單。
workspaces() 傳回預設訂閱的工作區清單。
workspaces("12345678-aaaa-bbbb-cccc-123456789aaa") 傳回指定訂閱的工作區清單。
workspaces("$subscription") 使用訂閱參數的模板變量。
workspace("myWorkspace").Heartbeat \| distinct Computer 傳回虛擬機器清單。
workspace("$workspace").Heartbeat \| distinct Computer 傳回具有範本變數的虛擬機器清單。
workspace("$workspace").Perf \| distinct ObjectName 從 Perf 表返回對象的列表。
workspace("$workspace").Perf \| where ObjectName == "$object" \| distinct CounterName 從 Perf 表格傳回度量名稱清單。

下列程式碼 xample 會顯示使用變數的時間序列查詢。

Perf | where ObjectName == "$object" and CounterName == "$metric" | where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo() | where $__contains(Computer, $computer) | summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer | order by TimeGenerated asc

從 Grafana 面板深層連結至 Azure 入口網站中的記錄分析查詢編輯器

在面板中選擇時間序列,以查看內容功能表,其中包含在 Azure 入口網站中檢視的連結。選擇該連結會在 Azure 入口網站中開啟 Azure 記錄分析查詢編輯器,並從 Grafana 面板那裡執行查詢。

如果您目前未登入 Azure 入口網站,則連結會開啟登入頁面。提供的連結對任何帳戶都有效,但只有在您的帳戶可存取查詢中指定的 Azure 記錄分析工作區時,才會顯示查詢。

Azure 記錄檔分析警示

應用程式深入解析支援 Grafana 警示。這不是 Azure 警示支援。如需 Grafana 工作區中警示的詳細資訊,請參閱。Grafana 警報

查詢應用程式洞察分析服務

如果您將服務類型變更為「深入分析」,則可使用與「記錄分析」服務類似的編輯器。此服務也使用 Kusfor 語言,因此查詢資料的指示與其相同查詢 Azure 記錄檔分析服務,但您改為查詢應用程式洞察分析資料。