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

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

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

procstat 外掛程式可讓您從個別的程序收集指標。Linux 伺服器和執行 Windows Server 支援版本的伺服器上支援 外掛程式。本節說明如何為 procstat 設定 CloudWatch 代理程式,並檢視 CloudWatch 代理程式匯入的指標。它還列出了 procstat 收集的指標。

注意

Amazon ECS 環境中的 Fargate 啟動類型不支援 procstat 外掛程式。

設定 procstat 的 CloudWatch 代理程式

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

  • pid_file:依程序所建立的程序識別碼 (PID) 檔案的名稱來選取程序。

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

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

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

即使您包含上述一個以上的區段,CloudWatch 代理程式只會使用其中一種方法。如果您指定一個以上的區段,只要 pid_file 區段存在,CloudWatch 代理程式會使用此區段。如果不存在,則使用 exe 區段。

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

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

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

使用 pid_file 設定

以下範例 procstat 區段監控 PID 檔案 example1.pidexample2.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

與程序相關聯的程序 ID 數目。

在 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. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 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 儀表板,請選擇 Actions (動作)、Add to dashboard (新增至儀表板)。