使用 procstat 外掛程式收集程序指標 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 procstat 外掛程式收集程序指標

procstat 外掛程式可讓您從個別的程序收集指標。它在 Linux 服務器和運行支持的 Windows 服務器版本的服務器上支持。

設定監測器的 CloudWatch 代理程式

若要使用 procstat 外掛程式,請在 CloudWatch 代理程式設定檔的metrics_collected區段中新增區段。procstat有三種方法可以指定要監控的程序。您只能使用其中一種方法,但您可以使用該方法來指定一或多個要監控的程序。

  • pid_file:根據處理程序建立的處理識別碼 (PID) 檔案的名稱來選取處理程序。

  • exe:使用規則表達式比對規則,選取程序名稱符合指定字串的程序。符合是「內含」的符合,表示如果指定必須符合的詞彚為 agent,則具有 cloudwatchagent 一類名稱的處理程序就符合該詞彙。如需詳細資訊,請參閱語法

  • pattern:依用於啟動程序的命令列來選取程序。系統會選取命令列符合以規則表達式比對規則所指定之字串的所有程序。整個命令列會經過檢查,包括命令中使用的參數和選項。

    符合是「內含」的符合,表示如果指定必須符合的詞彚為 -c,則含有 -config 一類參數的處理程序就符合該詞彙。

  • drop_original_metrics - 選用。如果您使用 metrics 區段中的 aggregation_dimensions 欄位,將指標彙總為彙總結果,則代理程式預設會同時傳送為每個維度值分開的彙總指標和原始指標。如果您不想將原始量度傳送至 CloudWatch,可以使用量度清單來指定此參數。與此參數一起指定的量度沒有依維度報告的量度 CloudWatch。而是只報告彙總指標。這樣可以減少代理程式收集的指標數量,降低您的成本。

CloudWatch 代理程式只會使用其中一種方法,即使您包含上述其中一個以上的章節也一樣。如果您指定多個區段, CloudWatch 代理程式會使用該pid_file區段 (如果存在)。如果不存在,則使用 exe 區段。

在 Linux 伺服器上,您在 exepattern 區段中指定的字串會當做規則表達式來評估。在執行 Windows 伺服器的伺服器上,這些字串會評估為WMI查詢。例如,即改為 pattern: "%apache%"。如需詳細資訊,請參閱LIKE運算子

無論您採用哪一種方法,您可以包含選用的 metrics_collection_interval 參數,以指定收集這些指標的頻率 (以秒為單位)。如果您省略此參數,則會使用預設值的 60 秒。

在以下幾節的範例中,procstat 區段是代理程式組態檔案的 metrics_collected 區段包含的唯一區段。實際組態檔案在 metrics_collected 中也可能包含其他區段。如需詳細資訊,請參閱 手動建立或編輯 CloudWatch 代理程式組態檔

使用 pid_file 來設定

下列範例procstat區段會監視建立PID檔案example1.pid和的程序example2.pid。從每個程序收集不同的指標。從建立 example2.pid 的程序收集的指標是每 10 秒收集一次,而從 example1.pid 程序收集的指標是每 60 秒 (預設值) 收集一次。

{ "metrics": { "metrics_collected": { "procstat": [ { "pid_file": "/var/run/example1.pid", "measurement": [ "cpu_usage", "memory_rss" ] }, { "pid_file": "/var/run/example2.pid", "measurement": [ "read_bytes", "read_count", "write_bytes" ], "metrics_collection_interval": 10 } ] } } }

使用 exe 來設定

以下範例 procstat 區段監控名稱符合字串 agentplugin 的所有程序。從每個程序收集相同的指標。

{ "metrics": { "metrics_collected": { "procstat": [ { "exe": "agent", "measurement": [ "cpu_time", "cpu_time_system", "cpu_time_user" ] }, { "exe": "plugin", "measurement": [ "cpu_time", "cpu_time_system", "cpu_time_user" ] } ] } } }

使用 pattern 來設定

以下範例 procstat 區段監控命令列符合字串 config-c 的所有程序。從每個程序收集相同的指標。

{ "metrics": { "metrics_collected": { "procstat": [ { "pattern": "config", "measurement": [ "rlimit_memory_data_hard", "rlimit_memory_data_soft", "rlimit_memory_stack_hard", "rlimit_memory_stack_soft" ] }, { "pattern": "-c", "measurement": [ "rlimit_memory_data_hard", "rlimit_memory_data_soft", "rlimit_memory_stack_hard", "rlimit_memory_stack_soft" ] } ] } } }

Procstat 收集的指標

下表列出您可以使用 procstat 外掛程式收集的指標。

CloudWatch 代理程式會新增procstat至下列測量結果名稱的開頭。根據從 Linux 伺服器或執行 Windows Server 的伺服器收集指標而定,而有不同的語法。例如,cpu_time 指標從 Linux 收集時會顯示為 procstat_cpu_time,而從 Windows Server 收集時會顯示為 procstat cpu_time

指標名稱 可用位置 描述

cpu_time

Linux

處理程序使用的時間量CPU。這個指標是以百分之一秒來測量。

單位:計數

cpu_time_guest

Linux

程序處於訪客模式的時間長度。這個指標是以百分之一秒來測量。

類型:浮點數

單位:無

cpu_time_guest_nice

Linux

程序以良好訪客狀態執行的時間長度。這個指標是以百分之一秒來測量。

類型:浮點數

單位:無

cpu_time_idle

Linux

程序處於閒置模式的時間長度。這個指標是以百分之一秒來測量。

類型:浮點數

單位:無

cpu_time_iowait

Linux

程序等待 I/O 操作完成所需的時間。這個指標是以百分之一秒來測量。

類型:浮點數

單位:無

cpu_time_irq

Linux

程序處於服務中斷狀態的時間長度。這個指標是以百分之一秒來測量。

類型:浮點數

單位:無

cpu_time_nice

Linux

程序處於良好模式的時間長度。這個指標是以百分之一秒來測量。

類型:浮點數

單位:無

cpu_time_soft_irq

Linux

程序處於服務軟體中斷狀態的時間長度。這個指標是以百分之一秒來測量。

類型:浮點數

單位:無

cpu_time_steal

Linux

在虛擬化環境中執行時,在其他作業系統上執行所花費的時間。這個指標是以百分之一秒來測量。

類型:浮點數

單位:無

cpu_time_stolen

Linux、Windows Server

程序處於遭竊時間狀態的時間長度,也是在虛擬化環境中的其他作業系統上所花費的時間。這個指標是以百分之一秒來測量。

類型:浮點數

單位:無

cpu_time_system

Linux、Windows Server、macOS

程序處於系統模式的時間量。這個指標是以百分之一秒來測量。

類型:浮點數

單位:計數

cpu_time_user

Linux、Windows Server、macOS

程序處於使用者模式的時間量。這個指標是以百分之一秒來測量。

單位:計數

cpu_usage

Linux、Windows Server、macOS

程序在任何容量中運作的時間百分比。

單位:百分比

memory_data

Linux、macOS

程序用在資料上的記憶體數量。

單位:位元組

memory_locked

Linux、macOS

程序已鎖定的記憶體數量。

單位:位元組

memory_rss

Linux、Windows Server、macOS

程序正在使用的真實記憶體 (常駐集) 數量。

單位:位元組

memory_stack

Linux、macOS

程序正在使用的堆疊記憶體數量。

單位:位元組

memory_swap

Linux、macOS

程序正在使用的切換記憶體數量。

單位:位元組

memory_vms

Linux、Windows Server、macOS

程序正在使用的虛擬記憶體數量。

單位:位元組

num_fds

Linux

此程序已開啟的檔案描述項數量。

單位:無

num_threads

Linux、Windows、macOS

程序中的執行緒數量。

單位:無

pid

Linux、Windows Server、macOS

程序識別符 (ID)。

單位:無

pid_count

Linux、Windows Server、macOS

與處理IDs相關聯的處理序數目。

在 Linux 伺服器和 macOS 電腦上,此指標的完整名稱是 procstat_lookup_pid_count,在 Windows Server 上則是 procstat_lookup pid_count

單位:無

read_bytes

Linux、Windows Server

程序已從磁碟讀取的位元組數目。

單位:位元組

write_bytes

Linux、Windows Server

程序已寫入磁碟的位元組數目。

單位:位元組

read_count

Linux、Windows Server

程序已執行的磁碟讀取操作次數。

單位:無

rlimit_realtime_priority_hard

Linux

可為此程序設定之即時優先順序的硬性限制。

單位:無

rlimit_realtime_priority_soft

Linux

可為此程序設定之即時優先順序的彈性限制。

單位:無

rlimit_signals_pending_hard

Linux

此程序可排入佇列之訊號數量上限的硬性限制。

單位:無

rlimit_signals_pending_soft

Linux

此程序可排入佇列之訊號數量上限的彈性限制。

單位:無

rlimit_nice_priority_hard

Linux

此程序可設定之最高良好優先順序的硬性限制。

單位:無

rlimit_nice_priority_soft

Linux

此程序可設定之最高良好優先順序的彈性限制。

單位:無

rlimit_num_fds_hard

Linux

此程序可開啟之檔案描述項數量上限的硬性限制。

單位:無

rlimit_num_fds_soft

Linux

此程序可開啟之檔案描述項數量上限的彈性限制。

單位:無

write_count

Linux、Windows Server

程序已執行的磁碟寫入操作次數。

單位:無

involuntary_context_switches

Linux

程序非自願切換內容的次數。

單位:無

voluntary_context_switches

Linux

程序自願切換內容的次數。

單位:無

realtime_priority

Linux

程序目前使用即時優先順序的情形。

單位:無

nice_priority

Linux

程序目前使用適當優先順序的情形。

單位:無

signals_pending

Linux

等待由程序處理的訊號數目。

單位:無

rlimit_cpu_time_hard

Linux

程序的困難CPU時間資源限制。

單位:無

rlimit_cpu_time_soft

Linux

流程的無效CPU時間資源限制。

單位:無

rlimit_file_locks_hard

Linux

程序的硬性檔案鎖定資源限制。

單位:無

rlimit_file_locks_soft

Linux

程序的彈性檔案鎖定資源限制。

單位:無

rlimit_memory_data_hard

Linux

程序上用於資料的記憶體方面的硬性資源限制。

單位:位元組

rlimit_memory_data_soft

Linux

程序上用於資料的記憶體方面的彈性資源限制。

單位:位元組

rlimit_memory_locked_hard

Linux

程序上關於鎖定記憶體的硬性資源限制。

單位:位元組

rlimit_memory_locked_soft

Linux

程序上關於鎖定記憶體的彈性資源限制。

單位:位元組

rlimit_memory_rss_hard

Linux

程序上關於實體記憶體的硬性資源限制。

單位:位元組

rlimit_memory_rss_soft

Linux

程序上關於實體記憶體的彈性資源限制。

單位:位元組

rlimit_memory_stack_hard

Linux

程序堆疊上的硬性資源限制。

單位:位元組

rlimit_memory_stack_soft

Linux

程序堆疊上的彈性資源限制。

單位:位元組

rlimit_memory_vms_hard

Linux

程序上關於虛擬記憶體的硬性資源限制。

單位:位元組

rlimit_memory_vms_soft

Linux

程序上關於虛擬記憶體的彈性資源限制。

單位:位元組

檢視 CloudWatch 代理程式匯入的程序測量結果

將流程指標匯入之後 CloudWatch,您可以將這些指標視為時間序列圖表,並建立警示以監視這些指標,並在超出您指定的臨界值時通知您。下列程序顯示如何以時間序列圖形檢視程序指標。如需設定警示的詳細資訊,請參閱 使用 Amazon CloudWatch 警報

若要在 CloudWatch 主控台中檢視程序指標
  1. 在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

  2. 在導覽窗格中,選擇 指標

  3. 選擇用於代理程式所收集指標的命名空間。依預設,這是 CWAgent,但您可能在 CloudWatch 代理程式組態檔中指定了不同的命名空間。

  4. 選擇指標維度 (例如 Per-Instance Metrics (每個執行個體指標))。

  5. All metrics (所有指標) 索引標籤會顯示命名空間中該維度的所有指標。您可以執行下列作業:

    1. 若要將指標圖形化,請勾選指標旁的核取方塊。若要選擇所有指標,請勾選表格標題列中的核取方塊。

    2. 若要將資料表排序,請使用直欄標題。

    3. 若要依資源篩選,請選擇資源 ID,然後選擇 Add to search (新增至搜尋)。

    4. 若要依指標篩選,請選擇指標名稱,然後選擇 Add to search (新增至搜尋)

  6. (選擇性) 若要將此圖形新增至 CloudWatch 儀表板,請選擇動作 > 新增至儀表板