本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 伺服器上,您在 exe
或 pattern
區段中指定的字串會當做規則表達式來評估。在執行 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
區段監控名稱符合字串 agent
或 plugin
的所有程序。從每個程序收集相同的指標。
{ "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
。
指標名稱 | 可用位置 | 描述 |
---|---|---|
|
Linux |
處理程序使用的時間量CPU。這個指標是以百分之一秒來測量。 單位:計數 |
|
Linux |
程序處於訪客模式的時間長度。這個指標是以百分之一秒來測量。 類型:浮點數 單位:無 |
|
Linux |
程序以良好訪客狀態執行的時間長度。這個指標是以百分之一秒來測量。 類型:浮點數 單位:無 |
|
Linux |
程序處於閒置模式的時間長度。這個指標是以百分之一秒來測量。 類型:浮點數 單位:無 |
|
Linux |
程序等待 I/O 操作完成所需的時間。這個指標是以百分之一秒來測量。 類型:浮點數 單位:無 |
|
Linux |
程序處於服務中斷狀態的時間長度。這個指標是以百分之一秒來測量。 類型:浮點數 單位:無 |
|
Linux |
程序處於良好模式的時間長度。這個指標是以百分之一秒來測量。 類型:浮點數 單位:無 |
|
Linux |
程序處於服務軟體中斷狀態的時間長度。這個指標是以百分之一秒來測量。 類型:浮點數 單位:無 |
|
Linux |
在虛擬化環境中執行時,在其他作業系統上執行所花費的時間。這個指標是以百分之一秒來測量。 類型:浮點數 單位:無 |
|
Linux、Windows Server |
程序處於遭竊時間狀態的時間長度,也是在虛擬化環境中的其他作業系統上所花費的時間。這個指標是以百分之一秒來測量。 類型:浮點數 單位:無 |
|
Linux、Windows Server、macOS |
程序處於系統模式的時間量。這個指標是以百分之一秒來測量。 類型:浮點數 單位:計數 |
|
Linux、Windows Server、macOS |
程序處於使用者模式的時間量。這個指標是以百分之一秒來測量。 單位:計數 |
|
Linux、Windows Server、macOS |
程序在任何容量中運作的時間百分比。 單位:百分比 |
|
Linux、macOS |
程序用在資料上的記憶體數量。 單位:位元組 |
|
Linux、macOS |
程序已鎖定的記憶體數量。 單位:位元組 |
|
Linux、Windows Server、macOS |
程序正在使用的真實記憶體 (常駐集) 數量。 單位:位元組 |
|
Linux、macOS |
程序正在使用的堆疊記憶體數量。 單位:位元組 |
|
Linux、macOS |
程序正在使用的切換記憶體數量。 單位:位元組 |
|
Linux、Windows Server、macOS |
程序正在使用的虛擬記憶體數量。 單位:位元組 |
|
Linux |
此程序已開啟的檔案描述項數量。 單位:無 |
|
Linux、Windows、macOS |
程序中的執行緒數量。 單位:無 |
|
Linux、Windows Server、macOS |
程序識別符 (ID)。 單位:無 |
|
Linux、Windows Server、macOS |
與處理IDs相關聯的處理序數目。 在 Linux 伺服器和 macOS 電腦上,此指標的完整名稱是 單位:無 |
|
Linux、Windows Server |
程序已從磁碟讀取的位元組數目。 單位:位元組 |
|
Linux、Windows Server |
程序已寫入磁碟的位元組數目。 單位:位元組 |
|
Linux、Windows Server |
程序已執行的磁碟讀取操作次數。 單位:無 |
|
Linux |
可為此程序設定之即時優先順序的硬性限制。 單位:無 |
|
Linux |
可為此程序設定之即時優先順序的彈性限制。 單位:無 |
|
Linux |
此程序可排入佇列之訊號數量上限的硬性限制。 單位:無 |
|
Linux |
此程序可排入佇列之訊號數量上限的彈性限制。 單位:無 |
|
Linux |
此程序可設定之最高良好優先順序的硬性限制。 單位:無 |
|
Linux |
此程序可設定之最高良好優先順序的彈性限制。 單位:無 |
|
Linux |
此程序可開啟之檔案描述項數量上限的硬性限制。 單位:無 |
|
Linux |
此程序可開啟之檔案描述項數量上限的彈性限制。 單位:無 |
|
Linux、Windows Server |
程序已執行的磁碟寫入操作次數。 單位:無 |
|
Linux |
程序非自願切換內容的次數。 單位:無 |
|
Linux |
程序自願切換內容的次數。 單位:無 |
|
Linux |
程序目前使用即時優先順序的情形。 單位:無 |
|
Linux |
程序目前使用適當優先順序的情形。 單位:無 |
|
Linux |
等待由程序處理的訊號數目。 單位:無 |
|
Linux |
程序的困難CPU時間資源限制。 單位:無 |
|
Linux |
流程的無效CPU時間資源限制。 單位:無 |
|
Linux |
程序的硬性檔案鎖定資源限制。 單位:無 |
|
Linux |
程序的彈性檔案鎖定資源限制。 單位:無 |
|
Linux |
程序上用於資料的記憶體方面的硬性資源限制。 單位:位元組 |
|
Linux |
程序上用於資料的記憶體方面的彈性資源限制。 單位:位元組 |
|
Linux |
程序上關於鎖定記憶體的硬性資源限制。 單位:位元組 |
|
Linux |
程序上關於鎖定記憶體的彈性資源限制。 單位:位元組 |
|
Linux |
程序上關於實體記憶體的硬性資源限制。 單位:位元組 |
|
Linux |
程序上關於實體記憶體的彈性資源限制。 單位:位元組 |
|
Linux |
程序堆疊上的硬性資源限制。 單位:位元組 |
|
Linux |
程序堆疊上的彈性資源限制。 單位:位元組 |
|
Linux |
程序上關於虛擬記憶體的硬性資源限制。 單位:位元組 |
|
Linux |
程序上關於虛擬記憶體的彈性資源限制。 單位:位元組 |
檢視 CloudWatch 代理程式匯入的程序測量結果
將流程指標匯入之後 CloudWatch,您可以將這些指標視為時間序列圖表,並建立警示以監視這些指標,並在超出您指定的臨界值時通知您。下列程序顯示如何以時間序列圖形檢視程序指標。如需設定警示的詳細資訊,請參閱 使用 Amazon CloudWatch 警報。
若要在 CloudWatch 主控台中檢視程序指標
-
在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/
。 -
在導覽窗格中,選擇 指標。
-
選擇用於代理程式所收集指標的命名空間。依預設,這是 CWAgent,但您可能在 CloudWatch 代理程式組態檔中指定了不同的命名空間。
-
選擇指標維度 (例如 Per-Instance Metrics (每個執行個體指標))。
-
All metrics (所有指標) 索引標籤會顯示命名空間中該維度的所有指標。您可以執行下列作業:
-
若要將指標圖形化,請勾選指標旁的核取方塊。若要選擇所有指標,請勾選表格標題列中的核取方塊。
-
若要將資料表排序,請使用直欄標題。
-
若要依資源篩選,請選擇資源 ID,然後選擇 Add to search (新增至搜尋)。
-
若要依指標篩選,請選擇指標名稱,然後選擇 Add to search (新增至搜尋)。
-
(選擇性) 若要將此圖形新增至 CloudWatch 儀表板,請選擇動作 > 新增至儀表板。