本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 procstat 外掛程式收集程序指標
procstat 外掛程式可讓您從個別的程序收集指標。Linux 伺服器和執行支援版本 Windows Server 的伺服器上支援的外掛程式。本節說明如何為 procstat 設定 CloudWatch 代理程式,並檢視 CloudWatch 代理程式匯入的指標。它也會列出 procstat 收集的指標。
注意
Amazon ECS環境中的 Fargate 啟動類型不支援procstat
此外掛程式。
設定 procstat 的 CloudWatch 代理程式
若要使用 procstat 外掛程式,請在 CloudWatch 代理程式組態檔案的 procstat
區段中新增 metrics_collected
區段。有三種方法可以指定要監控的程序。您只能使用其中一種方法,但您可以使用該方法來指定一或多個要監控的程序。
-
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 Server 的伺服器上,這些字串會評估為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 儀表板,請選擇動作 ,新增至儀表板 。