Azure 監視器中的自訂計量 (預覽)

Azure 會提供一些現成可用的計量。 這些計量稱為 標準或平臺。 自定義計量是效能指標或商務特定計量,可透過應用程式的遙測、Azure 監視器代理程式、在 Azure 資源上執行的診斷擴充功能,或外部監視系統收集。 一旦自定義計量發佈至 Azure 監視器,您就可以沿著標準 Azure 計量來瀏覽、查詢和警示。

Azure 監視器自定義計量目前處於公開預覽狀態。

傳送自定義計量的方法

自訂計量可透過數種方法傳送至 Azure 監視器:

定價模式和保留期

一般而言,將標準計量(平臺計量)內嵌至 Azure 監視器計量存放區並不會產生任何成本,但自定義計量在進入正式運作時會產生成本。 對計量 API 的查詢會產生成本。 如需何時針對自定義計量和計量查詢啟用計費的詳細數據,請查看 Azure 監視器定價頁面

自訂計量會保留 與平台計量相同的時間量。

注意

透過 Application Insights SDK 傳送至 Azure 監視器的計量會計費為內嵌的記錄數據。 只有在已選取 [在自定義計量維度上啟用警示] 功能時,才會產生額外的計量費用。 此複選框會使用自定義計量 API 將數據傳送至 Azure 監視器計量資料庫,以允許更複雜的警示。 深入瞭解您區域中的 Application Insights 定價模式和價格。

自訂計量定義

每個發佈的計量數據點都包含命名空間、名稱和維度資訊。 第一次向 Azure 監視器發出自訂計量時,系統會自動建立計量定義。 接著,任何透過計量定義發出計量的資源,即可探索這個新的計量定義。 在發出自定義計量之前,不需要在 Azure 監視器中預先定義自定義計量。

注意

Application Insights、診斷擴充功能和 InfluxData Telegraf 代理程式已設定為針對正確的區域端點發出計量值,並在每個排放中攜帶上述所有屬性。

使用自訂計量

將自定義計量提交至 Azure 監視器之後,您可以透過 Azure 入口網站 瀏覽這些計量,並透過 Azure 監視器 REST API 加以查詢。 您也可以建立警示,以在符合特定條件時通知您。

注意

您必須有讀者或參與者角色,才能檢視自定義計量。 請參閱 監視讀取器

透過 Azure 入口網站 瀏覽您的自訂計量

  1. 前往 Azure 入口網站
  2. 選取 [ 監視] 窗格。
  3. 選取 [計量]。
  4. 選取您發出自定義計量的資源。
  5. 選取自定義計量的計量命名空間。
  6. 選取自定義計量。

如需在 Azure 入口網站 中檢視計量的詳細資訊,請參閱使用 Azure 監視器計量總管分析計量。

延遲和記憶體保留

新加入的計量或新加入的度量維度最多可能需要 3 分鐘才會出現。 數據在系統中之後,應該會在 30 秒 99% 的時間出現。

如果您刪除計量或移除維度,變更可能需要一周到一個月的時間才能從系統中刪除。

配額和限制

Azure 監視器會對自定義計量施加下列使用限制:

類別 限制
每個區域訂用帳戶中的使用時間序列總計 50,000
每個計量的維度索引鍵 10
計量命名空間、計量名稱、維度索引鍵和維度值的字串長度 256 個字元
所有自定義計量名稱的合併長度,使用 utf-8 編碼 64 KB

使用中時間序列定義為計量、維度索引鍵或維度值的任何唯一組合,其計量值在過去12小時內發佈。

若要了解時間序列 50,000 的限制,請考慮下列計量:

維度的伺服器回應時間RegionDepartmentCustomerID

使用此計量時,如果您有10個區域、20個部門和100個客戶,可提供10 x 20 x 100 = 20,000個時間序列。

如果您有 100 個區域、200 個部門和 2,000 個客戶,可提供您 100 x 200 x 2,000 = 4000 萬個時間序列,這遠遠超出僅此計量的限制。

同樣地,此限制不適用於個別計量。 這是針對訂用帳戶和區域的所有這類計量的總和。

請遵循下列步驟來查看您目前的使用時間序列計量,以及協助您進行疑難解答的詳細資訊。

  1. 流覽至 Azure 入口網站 的 [監視] 區段。
  2. 選取 左側的 [計量 ]。
  3. 在 [選取範圍] 下,檢查適用的訂用帳戶和資源群組。
  4. 在 [精簡範圍] 下,選擇 [自定義計量使用方式] 和所需的位置。
  5. 選取 [套用] 按鈕。
  6. 選擇 [使用中時間序列]、[作用中時間序列限制] 或 [節流時間序列]。

所有自定義計量名稱的合併長度限製為64 KB,假設每個字元有 utf-8 或 1 個字節。 如果超過 64 KB 的限制,將無法使用其他計量的元數據。 其他自定義計量的計量名稱不會出現在選取欄位中的 Azure 入口網站 中,而且不會由 API 在計量定義的要求中傳回。 計量數據仍可供使用,而且可以查詢。

超過限制時,請減少您傳送或縮短其名稱長度的計量數目。 然後,新計量的名稱最多需要兩天的時間才能顯示。

若要避免達到限制,請勿在計量名稱中包含變數或維度層面。 例如,伺服器 CPU 使用量的計量,CPU_server_12345678-319d-4a50-b27e-1234567890ab應該定義為計量CPU和維度ServerCPU_server_abcdef01-319d-4a50-b27e-abcdef012345

設計限制和考慮

使用 Application Insights 進行稽核。 Application Insights 遙測管線已優化,可將效能影響降到最低,並限制網路流量監視您的應用程式。 因此,如果初始數據集太大,它會節流或樣本(只接受遙測百分比並忽略其餘部分)。 由於此行為,您無法將它用於稽核目的,因為可能會卸除某些記錄。

名稱中有變數的計量。 請勿使用變數作為計量名稱的一部分。 請改用常數。 每次變數變更其值時,Azure 監視器都會產生新的計量。 然後,Azure 監視器會快速達到計量數目的限制。 一般而言,當開發人員想要在計量名稱中包含變數時,他們真的想要在一個計量內追蹤多個時間序列,而且應該使用維度,而不是變數計量名稱。

高基數計量維度。 維度中具有太多有效值的計量( 高基數)更有可能達到50,000個限制。 一般而言,您絕對不應該在維度中使用不斷變更的值。 例如,時間戳不應該是維度。 您可以使用伺服器、客戶或產品識別碼,但前提是您擁有較少的每一種類型。

作為測試,詢問您是否曾經在圖表上繪製這類數據。 如果您有 10 部或甚至 100 部伺服器,在圖表上查看這些伺服器可能會很有用,以便進行比較。 但是,如果您有1,000個,產生的圖表可能會很難或不可能讀取。 最佳做法是將它保持在少於100個有效值。 最多300是灰色區域。 如果您需要超過此數量,請改用 Azure 監視器自定義記錄。

如果您在名稱或高基數維度中有變數,可能會發生下列問題:

  • 計量因為節流而變得不可靠。
  • 計量總管無法運作。
  • 警示和通知變得無法預測。
  • 成本可能會意外增加。 當這項功能處於公開預覽狀態時,Microsoft 不會針對具有維度的自定義計量收費。 未來收費開始之後,您將會產生非預期的費用。 此計劃是根據受監視的時間序列數目和已進行的API呼叫數目,收取計量耗用量的費用。

如果計量名稱或維度值錯誤地填入標識碼或高基數維度,您可以藉由移除變數部分來輕鬆修正它。

但是,如果高基數對於您的案例而言很重要,匯總的計量可能不是正確的選擇。 切換至使用自定義記錄 (也就是 trackEventtrackMetric API 呼叫)。 不過,請考慮記錄不會匯總值,因此會儲存每個單一專案。 因此,如果您在一小段時間內有大量的記錄(例如每秒 100 萬次),它可能會導致節流和擷取延遲。

下一步

使用各種服務的自訂計量: