Azure 監視器中的自訂計量 (預覽)
Azure 會提供一些現成可用的計量。 這些計量稱為標準或平台計量。 自訂計量是效能指標或商務特定計量,可透過應用程式的遙測、Azure 監視器代理程式、在 Azure 資源上執行的診斷延伸模組,或外部監視系統收集。 一旦自訂計量發佈至 Azure 監視器,您就可以與標準 Azure 指標一起瀏覽、查詢和警示。
Azure 監視器的自訂計量目前處於公開預覽狀態。
提示
如需標準計量、記錄型計量和自定義計量之間的詳細比較,請參閱 Application Insights 中的計量。
自訂計量的傳送方法
自訂計量可以透過各種方法傳送至 Azure 監視器:
- 使用 Application Insights SDK 將自訂遙測傳送至 Azure 監視器來檢測您的應用程式。
- 在 Windows 或 Linux Azure 虛擬機器或虛擬機擴展集上安裝 Azure 監視器代理程式,並使用 資料收集規則 將性能計數器傳送至 Azure 監視器計量。
- 將 Azure 診斷延伸模組安裝到 Azure VM、虛擬機器擴展集、傳統 VM 或傳統雲端服務。 並將效能計數器傳送至 Azure 監視器。
- 在 Azure Linux VM 上安裝 InfluxData Telegraf 代理程式。 使用 Azure 監視器輸出外掛程式傳送計量。
- 將自訂計量 直接傳送至 Azure 監視器 REST API。
定價模式和保留期
將標準計量 (平台計量) 內嵌到 Azure 監視器計量存放區通常不會產生任何費用,但當自訂計量正式發行時則會產生費用。 計量 API 的查詢會產生成本。 如需何時會對自訂計量和計量查詢啟用計費的詳細資料,請參閱 Azure 監視器定價頁面。
自訂計量的保留期與平台計量的時間量相同。
注意
為了提供更好的體驗,從 Application Insights Classic API (SDK) 傳送至 Azure 監視器的自訂計量一律會儲存在 Log Analytics 和計量存放區中。 您儲存這些計量的成本只會以 Log Analytics 所擷取的磁碟區為基礎。 計量存放區中儲存的資料不需要額外費用。
自訂計量定義
發佈的每個計量資料點都包含命名空間、名稱與維度資訊。 自訂計量首次發出至 Azure 監視器時,就會自動建立計量定義。 接著,任何透過計量定義發出計量的資源,即可探索這個新的計量定義。 在將自訂計量發出之前,並不需要在 Azure 監視器中預先定義。
注意
系統已設定 Application Insights 這個診斷延伸模組和 InfluxData Telegraf 代理程式,可對正確的區域端點發出計量值,並包含每次發出的上述所有屬性。
使用自訂計量
將自訂計量提交至 Azure 監視器之後,您就可以透過 Azure 入口網站進行瀏覽,以及透過 Azure 監視器 REST API 進行查詢。 您也可以對其建立警示,讓您在符合特定條件時收到通知。
注意
您必須具備讀者或參與者角色,才能檢視自訂計量。 請參閱監視讀者。
透過 Azure 入口網站瀏覽自訂計量
- 前往 Azure 入口網站。
- 選取 [監視] 窗格。
- 選取 [計量]。
- 選取您已對其發出自訂計量的資源。
- 選取自訂計量的計量命名空間。
- 選取自訂計量。
如需如何在 Azure 入口網站中檢視計量的詳細資訊,請參閱 使用 Azure 監視器計量總管分析計量。
延遲和儲存體保留期
新增的計量或新增至計量的維度最多可能需要 3 分鐘才會出現。 資料進入系統之後,應該會在 30 秒以內顯示 99% 的時間。
如果您刪除計量或移除維度,該變更可能需要一週至一個月才會從系統中刪除。
配額和限制
Azure 監視器會對自訂計量加諸下列使用量限制:
類別 | 限制 |
---|---|
每個區域訂用帳戶中使用中時間序列的總計 | 50,000 |
每個計量的維度索引鍵 | 10 |
計量命名空間、計量名稱、維度索引鍵與維度值的字串長度 | 256 個字元 |
所有自訂計量名稱的合併長度,使用 utf-8 編碼 | 64 KB |
使用中的時間序列定義為計量、維度索引鍵或維度值 (含有過去 12 小時內所發佈計量值) 的任意獨特組合。
若要了解 50,000 個時間序列有哪些限制,請考慮下列計量:
伺服器回應時間與維度:區域、部門、CustomerID
使用此計量時,如果您有10個區域、20個部門和100個客戶,可提供10 x 20 x 100 = 20,000個時間序列。
如果您有 100 個區域、200 個部門和 2,000 個客戶,則可獲得 100 x 200 x 200 x 2,000 = 4 千萬個時間序列,這遠超過此計量的限制。
同樣地,此限制不適用於個別計量。 這是跨訂閱和區域中所有這類計量的總和。
請依照下列步驟查看您目前的作用中時間序列計量總計,以及有助於進行疑難排解的詳細資訊。
- 瀏覽至 Azure 入口網站的 [監視] 區段。
- 選取左側的 [計量]。
- 在 [選取範圍] 底下,核取適用的訂用帳戶和資源群組。
- 在 [縮小範圍] 底下,選擇 [自訂計量使用量] 和所需的位置。
- 選取 [套用] 按鈕。
- 選擇 [作用中時間序列]、[作用中時間序列限制] 或 [節流的時間序列]。
所有自訂計量名稱的合併長度限製為 64 KB,假設每個字元有 utf-8 或 1 個字元。 如果超過 64 KB 的限制,將無法使用其他計量的中繼資料。 其他自訂計量的計量名稱不會出現在 Azure 入口網站的選取欄位中,而且不會由 API 在計量定義的要求中傳回。 計量資料仍可供使用,而且可以查詢。
超過限制時,請減少您傳送或縮短其名稱長度的計量數目。 然後,新計量的名稱最多需要兩天的時間才能顯示。
若要避免達到限制,請勿在計量名稱中包含變數或維度層面。
例如,伺服器 CPU 使用量的計量 CPU_server_12345678-319d-4a50-b27e-1234567890ab
和 CPU_server_abcdef01-319d-4a50-b27e-abcdef012345
應定義為計量 CPU
和具有 Server
維度。
設計限制與注意事項
使用 Application Insights 進行稽核。 Application Insights 遙測管線已經過最佳化,可將效能影響降到最低,並限制網路流量監視您的應用程式。 因此,如果初始資料集變得太大,它會進行節流或採樣 (只接受遙測百分比,而忽略其餘部分)。 因為上述行為,某些記錄可能會受到卸除,因此您無法將其用於稽核。
名稱中含有變數的計量。 請勿使用變數作為計量名稱的一部分。 請改用常數。 每次變數的值有所變更時,Azure 監視器都會產生新的計量。 Azure 監視器接著會快速達到計量數目的限制。 一般而言,當開發人員想在計量名稱中包含變數時,目的其實是打算在一個計量內追蹤多個時間序列,因此應該使用維度,而不是變數計量名稱。
高基數計量維度。 維度中具有太多有效值的計量 (高基數) 更可能達到 50,000 個限制。 一般而言,您不應該在維度中使用不斷變更的值。 例如,時間戳記不應該是維度。 您可以使用伺服器、客戶或產品識別碼,但僅限這些類型數量不多時。
判斷基準為,您可以自問這類資料是否能做成圖表。 如果您有 10 部或甚至 100 部伺服器,透過圖表查看所有伺服器的比較可能很實用。 但如果您有 1,000 部伺服器,產生的圖表可能難以閱讀,甚至無法閱讀。 最佳做法是保持在低於 100 個有效值。 高達 300 個就處於灰色地帶。 如果您的需求超過此數量,請改用 Azure 監視器自訂記錄檔。
如果名稱中有變數或有高基數維度,可能會發生下列問題:
- 計量因為節流而變得不可靠。
- 計量總管無法運作。
- 警示和通知變得無法預測。
- 成本可能會意外增加。 當此功能處於公開預覽狀態時,Microsoft 不會針對具有維度的自訂計量收費。 未來開始計費之後,您將會產生非預期的費用。 此方案的計量耗用量會根據受監視的時間序列數以及 API 呼叫數來收費。
如果計量名稱或維度值不小心填入識別碼或高基數維度,您可以移除該變數部分輕鬆加以修正。
但如果您的案例需要高基數,彙總的計量可能不是理想選擇。 請切換為使用自訂記錄檔 (也就是使用 trackEvent 進行 trackMetric API 呼叫)。 不過,請注意,這些記錄檔不會彙總值,而會儲存每個單一項目。 因此,如果您在一小段時間內有大量的記錄 (例如每秒 1 百萬筆),可能會導致節流和擷取延遲。
下一步
使用來自各種服務的自訂計量: