共用方式為


使用 Azure 監視器從虛擬機收集性能計數器

性能計數器提供虛擬硬體元件、作系統和工作負載效能的深入解析。 使用 數據收集規則 (DCR) 搭配 性能計數器 數據源,從 Windows 和 Linux 虛擬機收集計數器。

如需建立 DCR 的詳細數據,請參閱 使用 Azure 監視器從 VM 用戶端收集數據。 本文提供性能計數器數據源類型的其他詳細數據。

已為 OpenTelemetry 效能計數器新增資料來源,支援 Azure 監視器工作區作為目的地。 閱讀有關使用此新數據源的好處的更多信息 請點擊這裡.

備註

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

設定 OpenTelemetry 效能計數器資料來源 (預覽版)

使用 Azure 監視器中的從虛擬機用戶端收集數據程式建立 DCR。 在 DCR 的 [ 收集和傳遞 ] 索引標籤上,從 [資料來源類型 ] 下拉式清單中選取 [ OpenTelemetry 效能計數器]。 從預先定義的物件集中選取要收集的物件及其取樣率。 取樣率越低,收集值的頻率就越高。

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

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

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

設定效能計數器資料來源

使用 Azure 監視器中的從虛擬機用戶端收集數據程式建立 DCR。 在 DCR 的 [收集和傳遞] 索引標籤上,從 [數據源類型] 下拉式清單中選取 [性能計數器]。 從預先定義的物件集中選取要收集的物件及其取樣率。 取樣率越低,收集值的頻率就越高。

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

選取 自訂 以指定 XPath,以收集任何無法透過基本選取使用的性能計數器。 請使用 \PerfObject(ParentInstance/ObjectInstance#InstanceIndex)\Counter 格式。

小提示

如果計數器名稱包含 & 符號,請將其取代為 &。 例如: \Memory\Free & Zero Page List Bytes

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

警告

手動定義與 Windows 和 Linux 計算機相關聯之 DCR 的計數器時請小心,因為某些 Windows 和 Linux 樣式計數器名稱可以解析為相同的計量,並造成重複的集合。 例如,在相同的 DCR 中同時指定 \LogicalDisk(*)\Disk Transfers/sec (Windows) 和 Logical Disk(*)\Disk Transfers/sec (Linux) 會導致每個取樣期間收集兩次磁碟傳輸計量。

可以藉由在未指定 平臺類型 的 DCR 中不收集性能計數器來避免這種行為。 確定 Windows 計數器只包含在與 Windows 機器相關聯的 DCR 中,而 Linux 計數器只會包含在與 Linux 機器相關聯的 DCR 中。

備註

Microsoft.HybridCompute (已啟用 Azure Arc 的伺服器) 資源目前無法在 計量總管中檢視,但是其計量數據可以透過計量 REST API 取得(計量命名空間 - 列表、計量定義 - 列表和計量 - 列表)。

新增目的地

OpenTelemetry 效能計數器可以傳送至 Azure 監視器工作區,以便透過 PromQl 進行查詢。 這是所有使用者建議的資料目的地,因為 Container Insights、Application Insights 和 VM Insights 都會移至 Azure 監視器工作區作為計量的來源,而不是 Log Analytics 工作區。

螢幕擷取畫面,顯示資料收集規則中 Azure 監視器工作區目的地的設定。

效能計數器仍可傳送至 Log Analytics 工作區,儲存在 Perf 資料表和/或 Azure 監視器計量 (預覽) 中,可在 計量總管中使用。 新增 Azure 監視器記錄 類型的目的地,然後選取 Log Analytics 工作區。 雖然您可以新增多個工作區,但請注意,這會將重複的數據傳送至每個工作區,這會導致額外的成本。 Azure 監控指標(預覽) 不需要進一步的詳細資訊,因為這會儲存在受監視資源的訂閱層級。

顯示資料收集規則中 Azure 監視器記錄目的地設定的螢幕擷取畫面。

確認資料收集

若要確認是否正在 Azure 監視器工作區中收集 OpenTelemetry 效能計數器,您可以先將查詢範圍限定於被選作 DCR 目的地的 AMW,並檢查任何 System. 計量是否如預期般順利收集。

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

如果 AMW 已設定為 資源內容存取模式,您也可以瀏覽至入口網站中的 [VM 計量] 刀鋒視窗,然後選擇 [使用編輯器新增] 下拉式清單,或選擇 [計量命名空間] 底下的 [在編輯器中檢視 AMW 計量] 下拉式清單,以確認範圍限定為 VM 本身時,相同的查詢是否如預期般運作。

螢幕擷取畫面,顯示如何從 VM 計量刀鋒視窗流覽至 AMW PromQl 編輯器。

這兩個進入點都應該會產生 PromQl 編輯器,其查詢範圍現在限定為 VM 資源,其中相同的查詢將與以前一樣運作,但不需要篩選 VM microsoft.resourceid 維度。

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

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

若要確認是否在 Log Analytics 工作區中收集舊版效能計數器資料來源,請檢查 Perf 資料表中的記錄。 從虛擬機或 Azure 入口網站中的 Log Analytics 工作區,選取 [ 記錄 ],然後按兩下 [ 資料表] 按鈕。 在 [虛擬機器] 類別下,點選 [執行] 按鈕,在 [Perf] 旁。

顯示從 Perf 資料表傳回之記錄的螢幕快照。

若要確認是否正在 Azure 監視器效能計量中收集舊版效能計數器資料來源,請從 Azure 入口網站的虛擬機器中選取 [計量]。 選取命名空間的 虛擬機客體 (Windows) 或 azure.vm.linux.guestmetrics ,然後選取要新增至檢視的計量。

顯示計量總管中用戶端計量的螢幕快照。

效能計數器

下列性能計數器可供適用於 Windows 和 Linux 的 Azure 監視器代理程式收集。 建立或更新資料收集規則時,可以變更取樣頻率。

OTel 效能計數器 類型 單位 Aggregation 單調 尺寸 Description
系統.CPU.利用率 量測計 1 N/A FALSE cpu:從0開始的邏輯CPU數(值:Any Str)
state:按類型劃分的 CPU 使用率明細(值:idle、interrupt、nice、softirq、steal、system、user、wait)
自上次測量後,將每個邏輯 CPU 的 system.cpu.time 差異除以所經過的時間(範圍為 0 至 1)。
system.cpu.time 總和 s 累積 TRUE cpu:從0開始的邏輯CPU數(值:Any Str)
state:按類型劃分的 CPU 使用率明細(值:idle、interrupt、nice、softirq、steal、system、user、wait)
每個邏輯 CPU 在每個模式上花費的總秒數。
system.cpu.physical.count 總和 {中央處理器} 累積 FALSE (無) 可用的實體 CPU 數目。
系統. CPU. 邏輯處理器. 數量 總和 {中央處理器} 累積 FALSE cpu:從0開始的邏輯CPU數(值:Any Str) 可用的邏輯 CPU 數目。
system.cpu.load_average.5m 量測計 {thread} N/A FALSE (無) 超過 5 分鐘的平均 CPU 負載。
system.cpu.load_average.1m 量測計 {thread} N/A FALSE (無) 超過 1 分鐘的平均 CPU 負載。
system.cpu.load_average.15m 量測計 {thread} N/A FALSE (無) 超過 15 分鐘的平均 CPU 負載。
system.cpu.frequency 量測計 赫茲 N/A FALSE (無) CPU 核心的目前頻率,以 Hz 為單位。
process.uptime 量測計 s N/A FALSE (無) 程序執行的時間。
process.threads 總和 {線程} 累積 FALSE (無) 進程執行緒數量。
process.signals_pending 總和 {信號} 累積 FALSE (無) 處理程序的擱置訊號數目 (僅限 Linux)。
process.paging.faults 總和 {錯誤} 累積 TRUE type:故障類型(值:主要、次要) 進程所犯的頁面錯誤數目 (僅限 Linux)。
process.open_file_descriptors 總和 {count} 累積 FALSE (無) 處理程序正在使用的檔案描述子數目。
處理程序.記憶體.虛擬 總和 依據 累積 FALSE (無) 虛擬記憶體大小。
進程記憶體使用率 量測計 1 N/A FALSE (無) 進程所使用的實體記憶體總計百分比。
進程.記憶體.用量 總和 依據 累積 FALSE (無) 使用中的實體記憶體數量。
system.disk.weighted_io_time 總和 s 累積 FALSE device:磁碟名稱(值:Any Str) 啟動耗費的時間磁碟乘以佇列長度。
system.disk.pending_operations 總和 {操作} 累積 FALSE device:磁碟名稱(值:Any Str) 待處理 I/O 作業的佇列大小。
系統.磁碟作業 總和 {操作} 累積 TRUE device:磁碟名稱(值:Any Str)
direction:流動方向(值:讀取、寫入)
磁碟作業次數。
系統.磁碟.操作時間 總和 s 累積 TRUE device:磁碟名稱(值:Any Str)
direction:流動方向(值:讀取、寫入)
磁碟讀寫作業時間。
系統.磁碟.已合併 總和 {操作} 累積 TRUE device:磁碟名稱(值:Any Str)
direction:流動方向(值:讀取、寫入)
磁碟讀取/寫入合併為單一實體作業。
system.disk.io_time 總和 s 累積 TRUE device:磁碟名稱(值:Any Str) 啟用磁碟所花費的時間。
system.disk.io 總和 依據 累積 TRUE device:磁碟名稱(值:Any Str)
direction:流動方向(值:讀取、寫入)
傳輸的磁碟位元組。
process.handles 總和 {count} 累積 FALSE (無) 開啟控制代碼數目 (僅限 Windows)。
process.disk.operations 總和 {操作} 累積 TRUE direction:流動方向(值:讀取、寫入) 進程所執行的磁碟作業。
process.disk.io 總和 依據 累積 TRUE direction:流動方向(值:讀取、寫入) 傳輸的磁碟位元組。
處理程序 CPU 使用率 量測計 1 N/A FALSE state:CPU 使用率明細(值:system、user、wait) 自上次抓取後,程序使用的總 CPU 時間百分比 (0-1)。
process.cpu.時間 總和 s 累積 TRUE state:CPU 使用率明細(值:system、user、wait) 按狀態細分的 CPU 總秒數。
process.context_switches 總和 {count} 累積 TRUE type:上下文開關的類型(值:任何 Str) 處理程序已切換內容的次數(僅限 Linux)。
系統記憶體使用率 量測計 1 N/A FALSE state:記憶體使用明細(值:緩衝、快取、非作用中、可用、slab_reclaimable、slab_unreclaimable、已使用) 使用中的記憶體位元組百分比。
系統.記憶體.使用 總和 依據 累積 FALSE state:記憶體使用明細(值:緩衝、快取、非作用中、可用、slab_reclaimable、slab_unreclaimable、已使用) 使用中的記憶體位元組數。
system.memory.page_size 量測計 依據 N/A FALSE (無) 系統設定的頁面大小。
系統內存限制 總和 依據 累積 FALSE (無) 可用的記憶體位元組總數。
system.linux.memory.dirty 總和 依據 累積 FALSE (無) 髒記憶體量 (/proc/meminfo)。
system.linux.memory.available(系統.linux.記憶體.可用) 總和 依據 累積 FALSE (無) 可用記憶體的估計值 (僅限 Linux)。
系統.網路.封包 總和 封包 累積 TRUE 裝置:網路介面名稱(值:任何 Str)
direction:流動方向(值:接收、發送)
傳輸的封包數。
system.network.io 總和 依據 累積 TRUE (無) 傳輸和接收的位元組數。
系統.網路錯誤 總和 {錯誤} 累積 FALSE 裝置:網路介面名稱(值:任何 Str)
direction:流動方向(值:接收、發送)
遇到的錯誤數目。
system.network.dropped 總和 封包 累積 TRUE 裝置:網路介面名稱(值:任何 Str)
direction:流動方向(值:接收、發送)
捨棄的封包數目。
system.network.conntrack.max 總和 {條目} 累積 FALSE (無) conntrack 表中的條目限制。
system.network.conntrack.count 總和 {條目} 累積 FALSE (無) conntrack 表中的條目計數。
系統.網路連線 總和 {連接} 累積 FALSE protocol:網路協定(值:tcp)
state:連線狀態(值:Any Str)
連線數。
系統正常運行時間 量測計 s N/A FALSE (無) 系統運行的時間。
system.processes.created 總和 {進程} 累積 TRUE (無) 已建立的處理程序總數。
system.processes.count 總和 {進程} 累積 FALSE 狀態:程序狀態 (值:blocked、daemon、detached、idle、locked、orphan、paging、running、sleeping、stopped、system、unknown、zombies) 每個狀態中的進程總數。
系統分頁利用率 量測計 1 N/A FALSE device:頁面檔案名稱(值:Any Str)
state:分頁使用類型(值:快取、免費、已使用)
交換 (Unix) 或分頁檔 (Windows) 使用率。
system.paging.usage 總和 依據 累積 FALSE device:頁面檔案名稱(值:Any Str)
state:分頁使用類型(值:快取、免費、已使用)
交換 (Unix) 或分頁檔 (Windows) 使用量。
system.paging.operations 總和 {操作} 累積 TRUE direction:頁面流程(值:page_in、page_out)
type:故障類型(值:major、minor)
分頁作業。
系統分頁錯誤 總和 {錯誤} (無) TRUE type:故障類型(值:major、minor) 頁面錯誤數。
system.filesystem.utilization (系統檔案系統使用率) 量測計 1 N/A FALSE device:檔案系統識別碼
mode:掛載模式(值:ro、rw)
mountpoint:路徑
type:檔案系統類型(值:ext4、tmpfs等)
檔案系統儲存空間使用率。
system.filesystem.usage(系統檔案系統使用情況) 總和 依據 累積 FALSE device:檔案系統識別碼
mode:掛載模式
mountpoint:路徑
type:檔案系統類型
state:使用類型(值:free、reserved、used)
使用的檔案系統位元組。
system.filesystem.inodes.usage 總和 {inode} 累積 FALSE device:檔案系統識別碼
mode:掛載模式
mountpoint:路徑
type:檔案系統類型
state:使用類型(值:free、reserved、used)
使用的檔案系統 Inode。

後續步驟