在 Azure 監視器中自訂虛擬機器的 OpenTelemetry 計量收集

當你 啟用以指標為 基礎的體驗來監控 Azure 虛擬機器時,會收集一組預設的指標。 視您的上線選項而定,OpenTelemetry 每處理序計量可能已啟用。 您可以透過修改資料收集規則(DCR)來自訂您的收藏,新增或移除各程序效能、邏輯磁碟使用率、檔案系統利用率及其他特定工作負載的指標。

DCR 建立的詳細資料請參閱 「從 Azure 監視器 的虛擬機器用戶端收集資料」。 本文提供 OpenTelemetry 效能計數器資料來源類型的更多細節。

備註

若要直接使用 DCR 定義,或使用 ARM 範本等其他方法進行部署,請參閱 Azure 監視器中的數據收集規則 (DCR) 範例

Cost

預設的 OpenTelemetry 指標集是免費收集的。 收集任何超出預設集合的額外 OTel 指標會產生額外費用。 請參閱 Azure 監視器 價格 詳情。

先決條件

  • 一個 Azure 監視器 工作空間用來儲存 OpenTelemetry 的指標。 請參見 「建立 Azure 監視器 工作區」。
  • 建立資料收集規則的權限。 請參閱 權限
  • 如果你在 OpenTelemetry 指標上建立以查詢為基礎的指標警示,請使用具有必要權限的使用者指派受控識別。 請參閱 基於查詢的指標警示總覽

識別資料收集規則(DCR)

要識別與虛擬機相關的 DCR,請從 Azure portal 中的 Monitor 選單開啟 Data Collection Rules。 選取 [資源] 索引標籤,然後找出您的 VM。

資料收集規則功能表項目的資源索引標籤的螢幕擷取畫面。

按一下 [資料收集規則 ] 資料行中的數字,以列出與 VM 相關聯的 DCR。 OTel DCR 的名稱將採用 MSVMOtel-<region>-<name> 的形式。 點擊 DCR 即可開啟。

與所選資源相關聯的 DCR 螢幕擷取畫面。

設定資料來源

在 DCR 的 資料來源 分頁中,點擊 OpenTelemetry 效能計數器 資料來源。 從預先定義的物件集中選取要收集的物件及其取樣率。 取樣率越低,收集值的頻率就越高。

螢幕擷取畫面顯示 Azure 入口網站表單,以在資料收集規則中選取基本 OpenTelemetry 效能計數器。

選取 [自訂] 以更精細地選取 OpenTelemetry 效能計數器。

螢幕擷取畫面,顯示 Azure 入口網站表單,以在資料收集規則中選取自訂 OpenTelemetry 效能計數器。

確認資料收集

為了確認 OpenTelemetry 效能計數器是否正在被收集,請對 Azure 監視器 工作區進行查詢,並檢查所選指標的資料是否被回傳。

顯示從 AMW 傳回的記錄的螢幕擷取畫面。

如果工作區設定為 資源內容存取模式,你也可以透過 VM Metrics 面板來確認查詢在指定到 VM 本身時是否如預期運作。 選擇「與編輯器新增」下拉選單,或在「指標命名空間」下選單中「查看 AMW 指標」。

截圖顯示如何從虛擬機 Metrics 面板進入 AMW PromQL 編輯器。

兩個入口點都應該會產生一個 PromQL 編輯器,查詢範圍現在是虛擬機資源,這樣同樣的查詢就能正常運作,但不需要在虛擬機 microsoft.resourceid 維度上進行篩選。

螢幕擷取畫面,顯示從 VM 傳回的記錄,儲存在 AMW 中。

螢幕擷取畫面顯示查詢範圍設定為 VM 而非 AMW。

指標參考

以下表格列出虛擬機可用的 OpenTelemetry 指標。

預設計量

下表中的指標預設會收集,且不收取額外費用。

度量名稱 說明
系統正常運行時間 自上次重新啟動以來的時間(以秒為單位)
system.cpu.time 耗用的 CPU 時間總計 (使用者 + 系統 + 閒置),以秒為單位
系統.記憶體.使用 使用中的記憶體 (位元組)
system.network.io 傳輸/接收的位元組數
system.network.dropped 丟棄的封包
系統.網路錯誤 網路錯誤
system.disk.io 磁碟 I/O:讀取/寫入的位元組數
系統.磁碟作業 磁碟作業 (讀取/寫入計數)
system.filesystem.usage(系統檔案系統使用情況) 檔案系統使用量(以位元組為單位)
系統.磁碟.操作時間 平均磁碟作業時間

其他指標

下表中的指標可透過修改虛擬機的 DCR 來收集,如上所述。 除了預設的指標集之外,收集這些指標還需支付額外費用。

度量名稱 說明
系統.CPU.利用率 CPU 使用率 %
系統. CPU. 邏輯處理器. 數量 邏輯處理器數目
system.cpu.physical.count 實體 CPU 數目
system.cpu.frequency CPU 頻率
system.cpu.load_average.1m 系統平均負載(1 分鐘)
system.cpu.load_average.5m 系統平均負載(5 分鐘)
system.cpu.load_average.15m 系統平均負載(15 分鐘)
系統記憶體使用率 使用的 % 記憶體
系統內存限制 總記憶體限制
system.memory.page_size 頁面大小 (位元組)
system.linux.memory.available(系統.linux.記憶體.可用) 可用的記憶體
system.linux.memory.dirty 髒記憶體頁面
系統分頁錯誤 頁面錯誤
system.paging.operations 分頁作業(讀取/寫入)
system.paging.usage 分頁/交換使用量 (位元組)
系統分頁利用率 分頁/交換的已使用百分比
system.disk.io_time 用於 I/O 的時間
系統.磁碟.已合併 合併作業數目
system.disk.pending_operations 擱置中的 I/O 作業
system.disk.weighted_io_time 加權 I/O 時間 (考慮佇列深度)
system.filesystem.utilization (系統檔案系統使用率) 檔案系統使用 %
system.filesystem.inodes.usage Inodes 使用量
系統.網路.封包 傳輸/接收的封包
系統.網路連線 活動的網路連線
system.network.conntrack.count 目前的 conntrack 表格項目
system.network.conntrack.max Conntrack 資料表的最大大小
process.uptime 流程正常運行時間
process.cpu.時間 進程所耗用的 CPU 時間
處理程序 CPU 使用率 每個進程的 CPU 使用率 %
進程.記憶體.用量 記憶體使用量 (RSS)
處理程序.記憶體.虛擬 虛擬記憶體使用量
進程記憶體使用率 記憶體 % 使用量
process.disk.io 磁碟 I/O (每個處理程序的位元組數)
process.disk.operations 每個程序的磁碟操作
process.paging.faults 處理頁面錯誤
process.open_file_descriptors 開啟檔案描述子
process.threads 執行緒數目
process.handles 使用中控制代碼 (Windows)
process.context_switches 上下文切換
process.signals_pending 擱置訊號
system.processes.count 處理程序總數
system.processes.created 建立的流程

如需完整的參考資料,包括類型、單位、維度及其他元資料,請參見 OpenTelemetry 指標參考

下一步