使用 procstat 插件收集流程指标 - Amazon CloudWatch
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

使用 procstat 插件收集流程指标

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

配置 CloudWatch 代理用于 procstat

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

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

  • exe: :使用正则表达式匹配规则,选择进程名称与您指定的字符串相匹配的进程。匹配是“包含”匹配,这意味着如果您指定 agent 作为要匹配的术语,则具有类似于 cloudwatchagent 的名称的进程将匹配该术语。有关更多信息,请参阅语法

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

    匹配是“包含”匹配,这意味着如果您指定 -c 作为要匹配的术语,则具有类似于 -config 的参数的进程将匹配该术语。

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 章节会使用与strings匹配的名称监控所有流程 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": [ { "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 的服务器收集指标。例如,从 Linux 中收集时,cpu_time 指标显示为 procstat_cpu_time;从 Windows Server 中收集时,它显示为 procstat cpu_time

指标名称 可用于 Description

cpu_time

(Linux)

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

Unit Count

cpu_time_system

Linux、Windows Server

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

Type Float

Unit Count

cpu_time_user

Linux、Windows Server

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

Unit Count

cpu_usage

Linux、Windows Server

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

Unit 百分比

memory_data

(Linux)

进程用于数据的内存量。

Unit 字节

memory_locked

(Linux)

进程已锁定的内存量。

Unit 字节

memory_rss

Linux、Windows Server

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

Unit 字节

memory_stack

(Linux)

进程使用的堆栈内存量。

Unit 字节

memory_swap

(Linux)

进程使用的交换内存量。

Unit 字节

memory_vms

Linux、Windows Server

进程使用的虚拟内存量。

Unit 字节

pid

Linux、Windows Server

进程标识符 (ID)。

Unit Count

pid_count

Linux、Windows Server

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

在 Linux 服务器上,此指标的完整名称为 procstat_lookup_pid_count;在 Windows 服务器上则为 procstat_lookup pid_count

Unit Count

read_bytes

Linux、Windows Server

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

Unit 字节

write_bytes

Linux、Windows Server

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

Unit 字节

read_count

Linux、Windows Server

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

Unit Count

write_count

Linux、Windows Server

进程已执行的磁盘写入操作的数目。

Unit Count

involuntary_context_switches

(Linux)

进程不自觉上下文切换的次数。

Unit Count

voluntary_context_switches

(Linux)

进程自觉上下文切换的次数。

Unit Count

realtime_priority

(Linux)

进程的实时优先级的当前使用率。

Unit Count

nice_priority

(Linux)

进程的良好状态优先级的当前使用率。

Unit Count

signals_pending

(Linux)

等待由进程处理的信号数量。

Unit Count

rlimit_cpu_time_hard

(Linux)

进程的硬 CPU 时间资源限制。

Unit Count

rlimit_cpu_time_soft

(Linux)

进程的软 CPU 时间资源限制。

Unit Count

rlimit_file_locks_hard

(Linux)

进程的硬文件锁资源限制。

Unit Count

rlimit_file_locks_soft

(Linux)

进程的软文件锁资源限制。

Unit Count

rlimit_memory_data_hard

(Linux)

进程上用于数据的内存的硬资源限制。

Unit 字节

rlimit_memory_data_soft

(Linux)

进程上用于数据的内存的软资源限制。

Unit 字节

rlimit_memory_locked_hard

(Linux)

进程上用于锁定的内存的硬资源限制。

Unit 字节

rlimit_memory_locked_soft

(Linux)

进程上用于锁定的内存的软资源限制。

Unit 字节

rlimit_memory_rss_hard

(Linux)

进程上用于物理内存的硬资源限制。

Unit 字节

rlimit_memory_rss_soft

(Linux)

进程上用于物理内存的软资源限制。

Unit 字节

rlimit_memory_stack_hard

(Linux)

进程堆栈的硬资源限制。

Unit 字节

rlimit_memory_stack_soft

(Linux)

进程堆栈的软资源限制。

Unit 字节

rlimit_memory_vms_hard

(Linux)

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

Unit 字节