Amazon CloudWatch
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用 procstat 插件收集流程指标

procstat 插件让您能够从各个流程收集指标。这在 Linux 服务器以及运行 Windows Server 2008 或更高版本的服务器上受支持。

配置 CloudWatch 代理用于 procstat

要使用 procstat 插件,请在 CloudWatch 代理配置文件的 metrics_collected 部分中添加 procstat 部分。您可以通过以下三种方式指定要监控的进程。您可以仅使用其中一个方法,但您可以使用该方法来指定一个或多个要监控的进程。

  • pid_file:按照它们创建的进程标识号 (PID) 文件的名称选择进程。

  • exe:使用正则表达式匹配规则,选择进程名称与您指定的字符串相匹配的进程。有关更多信息,请参阅语法

  • pattern:通过用于启动进程的命令行选择进程。将使用正则表达式匹配规则选择命令行与指定的字符串匹配的所有进程。将检查整个命令行,包括用于命令行的参数和选项。

CloudWatch 代理仅使用其中一个方法,即使您包含多个以上部分。如果您指定多个部分,CloudWatch 代理将使用 pid_file 部分(如果存在)。否则,它使用 exe 部分。

在 Linux 服务器上,您在 exepattern 部分中指定的字符串的计算结果为正则表达式。在运行 Windows Server 的服务器上,这些字符串的计算结果为 WMI 查询。有关更多信息,请参阅 LIKE 运算符

无论使用哪种方法,您都可以包含一个可选 metrics_collection_interval 参数,该参数以秒为单位指定收集这些指标的频率。如果省略该参数,则使用 60 秒的默认值。

在以下部分的示例中,procstat 部分是唯一包含在代理配置文件的 metrics_collected 部分中的部分。实际配置文件也在 metrics_collected 中包含其他部分。有关更多信息,请参阅 手动创建或编辑 CloudWatch 代理配置文件

使用 pid_file 进行配置

以下示例 procstat 部分监控创建 PID 文件 example1.pidexample2.pid 的进程。从每个进程收集不同的指标。默认情况下,每 10 秒收集一次从创建 example2.pid 的进程中收集的指标,而每 60 秒收集一次从 example1.pid 进程中收集的指标。

{ "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" ] } ] } } }

使用模式进行配置

以下示例 procstat 部分监控命令行与字符串 config-c 相匹配的所有进程。从每个进程收集相同的指标。

{ "metrics": { "metrics_collected": { "procstat": [ { "exe": "config", "measurement": [ "rlimit_memory_data_hard", "rlimit_memory_data_soft", "rlimit_memory_stack_hard", "rlimit_memory_stack_soft" ] }, { "exe": "-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 的服务器收集指标。例如,从 Linux 收集时,cpu_time 指标显示为 procstat_cpu_time;从 Windows Server 收集时,此指标显示为 procstat cpu_time

指标名称 可用于 说明

cpu_time

Linux

进程使用 CPU 的时间量。该指标以百分之一秒为单位。

单位:计数

cpu_time_system

Linux、Windows Server

进程处于系统模式的时间量。该指标以百分之一秒为单位。

类型:浮点值

单位:计数

cpu_time_user

Linux、Windows Server

进程处于用户模式的时间量。该指标以百分之一秒为单位。

单位:计数

cpu_usage

Linux、Windows Server

进程在任何容量中处于活动状态的时间百分比。

单位:百分比

memory_data

Linux

进程用于数据的内存量。

单位:字节

memory_locked

Linux

进程已锁定的内存量。

单位:字节

memory_rss

Linux、Windows Server

进程使用的实际内存量(驻留集)。

单位:字节

memory_stack

Linux

进程使用的堆栈内存量。

单位:字节

memory_swap

Linux

进程使用的交换内存量。

单位:字节

memory_vms

Linux、Windows Server

进程使用的虚拟内存量。

单位:字节

read_bytes

Linux、Windows Server

进程已从磁盘中读取的字节数。

单位:字节

write_bytes

Linux、Windows Server

进程已写入到磁盘的字节数。

单位:字节

read_count

Linux、Windows Server

进程执行的磁盘读取操作的数目。

单位:计数

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

进程上用于虚拟内存的软资源限制。

单位:字节

rlimit_nice_priority_hard

Linux

进程的良好状态优先级值上限的硬资源限制。

单位:计数

rlimit_nice_priority_soft

Linux

进程的良好状态优先级值上限的软资源限制。

单位:计数

rlimit_num_fds_hard

Linux

进程的文件描述符的硬资源限制。

单位:计数

rlimit_num_fds_soft

Linux

进程的文件描述符的软资源限制。

单位:计数

rlimit_realtime_priority_hard

Linux

进程的实时优先级值上限的硬资源限制。

单位:计数

rlimit_realtime_priority_soft

Linux

进程的实时优先级值上限的软资源限制。

单位:计数

rlimit_signals_pending_hard

Linux

等待交付给线程的信号数目的硬资源限制。

单位:计数

rlimit_signals_pending_soft

Linux

等待交付给线程的信号数目的软资源限制。

单位:计数

num_fds

Linux

进程使用的文件描述符的数目。

单位:计数

num_threads

Linux、Windows Server

进程中的线程数。

单位:计数

pid

Linux、Windows Server

进程标识符 (ID)。

单位:计数

pid_count

Linux、Windows Server

与此进程关联的进程 ID 的数量。

在 Linux 服务器上,此指标命名为 procstat_lookup_pid_count,在 Windows Server 上,此指标命名为 procstat_lookup pid_count

单位:计数