Azure 會提供一些現成的計量。 這些計量稱為 標準或平臺。 自定義計量是效能指標或商務特定計量。 您可以透過應用程式的遙測收集它們。 您也可以使用 Azure 監視器代理程式、Azure 資源的診斷擴充功能,或外部監視系統。 一旦自訂計量發佈至 Azure 監視器,您就可以與標準 Azure 指標一起瀏覽、查詢和警示。
Azure 監視器的自訂計量目前處於公開預覽狀態。
小提示
如需標準計量、記錄型計量和自定義計量之間的詳細比較,請參閱 Application Insights 中的 計量。
自訂計量的傳送方法
自訂計量可以透過各種方法傳送至 Azure 監視器:
- 使用 Application Insights SDK 將自訂遙測傳送至 Azure 監視器來檢測您的應用程式。
- 在您的 Windows 或 Linux Azure 虛擬機或虛擬機擴展集上安裝 Azure 監視器代理程式 ,並使用 數據收集規則 將性能計數器傳送至 Azure 監視器計量。
- 在 Azure 虛擬機器(VM)、 虛擬機擴展集、 傳統 VM 或 傳統雲端服務上安裝 Azure 診斷擴充功能。 並將效能計數器傳送至 Azure 監視器。
- 在 Azure Linux VM 上安裝 InfluxData Telegraf 代理程式 。 使用 Azure 監視器輸出外掛程式傳送計量。
- 將自定義計量 直接傳送至 Azure 監視器 REST API。
定價模式和保留期
將標準計量 (平台計量) 內嵌到 Azure 監視器計量存放區通常不會產生任何費用,但當自訂計量正式發行時則會產生費用。 計量 API 的查詢會產生成本。 如需瞭解何時針對自定義計量和計量查詢啟用計費的詳細資訊,請查看 Azure 監視器定價頁面。
自訂計量的保留期與平台計量的時間量相同。
備註
為了提供更好的體驗,從 Application Insights 傳統 API 軟體開發工具包 (SDK) 傳送至 Azure 監視器的自定義計量一律會儲存在 Log Analytics 和計量存放區中。 您儲存這些計量的成本只會以 Log Analytics 所擷取的磁碟區為基礎。 在計量存放區儲存的數據不會產生額外費用。
自訂計量定義
發佈的每個計量資料點都包含命名空間、名稱與維度資訊。 自訂計量首次發出至 Azure 監視器時,就會自動建立計量定義。 接著,任何透過計量定義發出計量的資源,即可探索這個新的計量定義。 在發出自定義計量之前,您不需要在 Azure 監視器中預先定義自定義計量。
備註
系統已設定 Application Insights 這個診斷延伸模組和 InfluxData Telegraf 代理程式,可對正確的區域端點發出計量值,並包含每次發出的上述所有屬性。
使用自訂計量
將自訂計量提交至 Azure 監視器之後,您就可以透過 Azure 入口網站進行瀏覽,以及透過 Azure 監視器 REST API 進行查詢。 您也可以對其建立警示,讓您在符合特定條件時收到通知。
備註
您必須具備讀者或參與者角色,才能檢視自訂計量。 請參閱 監視讀取器。
透過 Azure 入口網站瀏覽自訂計量
- 移至 Azure 入口網站。
- 選取 [監視] 窗格。
- 選取 [計量]。
- 選取您發送自訂指標的資源。
- 選取自訂計量的計量命名空間。
- 選取自訂計量。
如需在 Azure 入口網站中檢視度量的詳細資訊,請參閱 使用 Azure Monitor 指標瀏覽器分析度量。
延遲和儲存體保留期
新增的計量或新增至計量的維度最多可能需要 3 分鐘才會出現。 資料進入系統之後,應該會在 30 秒以內顯示 99% 的時間。
如果您刪除計量或移除維度,該變更可能需要一週至一個月才會從系統中刪除。
配額和限制
Azure 監視器會對自訂計量加諸下列使用量限制:
| 類別 | 限制 |
|---|---|
| 每個區域訂用帳戶中使用中時間序列的總計 | 50,000 |
| 每個計量的維度索引鍵 | 10 |
| 計量命名空間、計量名稱、維度索引鍵與維度值的字串長度 | 256 個字元 |
| 所有自訂計量名稱的合併長度,使用 utf-8 編碼 | 64 KB |
使用中的時間序列為計量、維度索引鍵或維度值 (含有過去 12 小時內所發佈計量值) 的任意獨特組合。
若要了解 50,000 個時間序列有哪些限制,請考慮下列計量:
伺服器回應時間,維度包括:區域、部門、客戶ID
使用此計量時,如果您有 10 個區域、20 個部門和 100 個客戶,則可獲得 10 x 20 x 100 = 20,000 個時間序列。
如果您有 100 個區域、200 個部門和 2,000 個客戶,則結果為 100 x 200 x 2,000 = 4000 萬個時間序列。 這個數字遠遠超出單一計量的限制。
同樣地,此限制不適用於個別計量。 這是跨訂閱和區域中所有這類計量的總和。
若要查看目前的使用中時間序列計量,並取得疑難解答的詳細資訊,請遵循下列步驟。
- 瀏覽至 Azure 入口網站的 [監視] 區段。
- 選取左側的 [計量]。
- 在 [選取範圍] 底下,核取適用的訂用帳戶和資源群組。
- 在 [縮小範圍] 底下,選擇 [自訂計量使用量] 和所需的位置。
- 選取 [套用] 按鈕。
- 選擇 [作用中時間序列]、[作用中時間序列限制] 或 [節流的時間序列]。
Azure 監視器會將所有自定義計量名稱的合併長度限制為 64 KB,假設 UTF-8 編碼或每個字元 1 個字節。 如果您的計量名稱超過此限制,Azure 監視器會封鎖存取其他計量的元數據。 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 百萬筆),可能會導致節流和擷取延遲。
小提示
Azure 監視器計量和 Azure 監視器工作區會以固定的 60 秒間隔內嵌自定義計量。 被更頻繁傳送的計量會每隔 60 秒緩衝並處理一次。 Log Analytics 會以傳送的間隔記錄計量,這可能會以較短的間隔增加成本,並以較長的間隔延遲可見度。
後續步驟
使用來自各種服務的自訂計量: