Coletar métricas de processo com o plugin procstat
O plugin procstat permite coletar métricas de processos individuais. É compatível com servidores Linux e com servidores que executam versões compatíveis do Windows Server.
Tópicos
Configurar o atendente do CloudWatch para procstat
Para usar o plugin procstat, adicione uma seção procstat
à seção metrics_collected
do arquivo de configuração do atendente do CloudWatch. Existem três maneiras de especificar os processos a serem monitorados. Use apenas um desses métodos, embora possa usar esse método para especificar um ou mais processos a serem monitorados.
-
pid_file
: seleciona processos pelos nomes dos arquivos de Process Identification Number (PID – Número de identificação do processo) criados. -
exe
: seleciona os processos que tenham nomes de processos correspondentes à string especificada usando regras de correspondência de expressão regular. A correspondência é uma correspondência do tipo “contém”, o que significa que, se você especificaragent
como o termo a ser correspondido, os processos com nomes comocloudwatchagent
corresponderão ao termo. Para obter mais informações, consulte Sintaxe. -
pattern
: seleciona processos pelas linhas de comando usadas para iniciar os processos. Todos os processos são selecionados que tenham linhas de comando correspondentes à string especificada usando regras de correspondência de expressão regular. Toda a linha de comando é verificada, inclusive opções e parâmetros usados com o comando.A correspondência é uma correspondência do tipo “contém”, o que significa que, se você especificar
-c
como o termo a ser correspondido, os processos com parâmetros como-config
corresponderão ao termo. -
drop_original_metrics
: optional. Se você estiver usando o campoaggregation_dimensions
na seçãometrics
para agrupar métricas em resultados agregados, por padrão, o agente enviará as métricas agregadas e as métricas originais que são separadas para cada valor da dimensão. Se você não quiser que as métricas originais sejam enviadas ao CloudWatch, é possível especificar esse parâmetro com uma lista de métricas. As métricas especificadas junto a esse parâmetro não têm suas métricas por dimensão relatadas ao CloudWatch. Em vez disso, somente as métricas agregadas são relatadas. Isso reduz o número de métricas que o agente coleta, reduzindo seus custos.
O atendente do CloudWatch só usa um desses métodos, mesmo se você incluir mais de uma das seções acima. Se você especificar mais de uma seção, o atendente do CloudWatch usará a seção pid_file
se estiver presente. Do contrário, ele usa a seção exe
.
Em servidores Linux, as strings especificadas em uma seção pattern
ou exe
são avaliadas como expressões regulares. Em servidores nos quais o Windows Server esteja em execução, essas strings são avaliadas como consultas WMI. Um exemplo seria pattern: "%apache%"
. Para obter mais informações, consulte Operador LIKE
Independentemente do método, inclua um parâmetro metrics_collection_interval
opcional, que especifica a frequência em segundos para coletar essas métricas. Se você omitir esse parâmetro, o valor padrão de 60 segundos será usado.
Nos exemplos nas seções a seguir, a seção procstat
é a única seção incluída na seção metrics_collected
do arquivo de configuração do atendente. Os arquivos de configuração também podem incluir outras seções em metrics_collected
. Para ter mais informações, consulte Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch.
Configurar com pid_file
A seção procstat
do exemplo a seguir monitora os processos que criam os arquivos PID example1.pid
e example2.pid
. As métricas diferentes são coletadas de cada processo. As métricas coletadas do processo que cria example2.pid
são coletadas a cada 10 segundos, e as métricas coletadas do processo example1.pid
são coletadas a cada 60 segundos, o valor padrão.
{ "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 } ] } } }
Configurar com exe
A seção procstat
do exemplo a seguir monitora todos os processos com nomes correspondentes às strings agent
ou plugin
. As mesmas métricas são coletadas de cada processo.
{ "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" ] } ] } } }
Configurar com padrão
A seção procstat
do exemplo a seguir monitora todos os processos com linhas de comando correspondentes às strings config
ou -c
. As mesmas métricas são coletadas de cada processo.
{ "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" ] } ] } } }
Métricas coletadas pelo procstat
A tabela a seguir lista as métricas que é possível coletar com o plugin procstat
O atendente do CloudWatch adiciona procstat
ao início dos nomes de métrica a seguir. Há uma sintaxe diferente dependendo de ter sido coletada de um servidor Linux ou de um servidor no qual o Windows Server esteja em execução. Por exemplo, a métrica cpu_time
é exibida como procstat_cpu_time
quando coletada do Linux e como procstat cpu_time
quando coletada do Windows Server.
Nome da métrica | Disponível em | Descrição |
---|---|---|
|
Linux |
O tempo em que o processo usa a CPU. Essa métrica é medida em centésimos de segundo. Unidade: contagem |
|
Linux |
A quantidade de tempo em que o processo permanece em modo de usuário. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma |
|
Linux |
A quantidade de tempo em que o processo está sendo executado em um niced guest. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma |
|
Linux |
A quantidade de tempo em que o processo permanece em modo ocioso. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma |
|
Linux |
A quantidade de tempo em que o processo está aguardando a conclusão de operações de entrada/saída. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma |
|
Linux |
A quantidade de tempo em que o processo está atendendo a interrupções. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma |
|
Linux |
A quantidade de tempo em que o processo permanece em modo nice. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma |
|
Linux |
A quantidade de tempo em que o processo está atendendo a interrupções de software. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma |
|
Linux |
A quantidade de tempo gasto executando em outros sistemas operacionais quando executado em um ambiente virtualizado. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma |
|
Linux, Windows Server |
A quantidade de tempo em que o processo está em tempo roubado, que é o tempo gasto em outros sistemas operacionais em um ambiente virtualizado. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: nenhuma |
|
Linux, Windows Server, macOS |
O tempo em que o processo permanece em modo de sistema. Essa métrica é medida em centésimos de segundo. Tipo: float Unidade: contagem |
|
Linux, Windows Server, macOS |
O tempo em que o processo permanece em modo de usuário. Essa métrica é medida em centésimos de segundo. Unidade: contagem |
|
Linux, Windows Server, macOS |
A porcentagem de tempo em que o processo permanece ativo em qualquer capacidade. Unidade: Percentual |
|
Linux, macOS |
A quantidade de memória usada pelo processo em dados. Unidade: bytes |
|
Linux, macOS |
A quantidade de memória bloqueada pelo processo. Unidade: bytes |
|
Linux, Windows Server, macOS |
A quantidade de memória real (conjunto residente) que o processo está usando. Unidade: bytes |
|
Linux, macOS |
A quantidade de memória em pilha usada pelo processo. Unidade: bytes |
|
Linux, macOS |
A quantidade de memória swap usada pelo processo. Unidade: bytes |
|
Linux, Windows Server, macOS |
A quantidade de memória virtual usada pelo processo. Unidade: bytes |
|
Linux |
O número de descritores de arquivo abertos por esse processo. Unidade: nenhuma |
|
Linux, Windows, macOS |
O número de threads neste processo. Unidade: nenhuma |
|
Linux, Windows Server, macOS |
Process Identifier (ID – Identificador de processo). Unidade: nenhuma |
|
Linux, Windows Server, macOS |
O número de IDs de processo associados ao processo. Em servidores Linux e computadores macOC, o nome completo dessa métrica é Unidade: nenhuma |
|
Linux, Windows Server |
O número de bytes lidos de discos pelo processo. Unidade: bytes |
|
Linux, Windows Server |
O número de bytes gravados em discos pelo processo. Unidade: bytes |
|
Linux, Windows Server |
O número de operações de leitura em disco executadas pelo processo. Unidade: nenhuma |
|
Linux |
O limite rígido da prioridade em tempo real que pode ser definido para este processo. Unidade: nenhuma |
|
Linux |
O limite flexível da prioridade em tempo real que pode ser definido para este processo. Unidade: nenhuma |
|
Linux |
O limite rígido do número máximo de sinais que podem ser enfileirados por este processo. Unidade: nenhuma |
|
Linux |
O limite flexível do número máximo de sinais que podem ser enfileirados por este processo. Unidade: nenhuma |
|
Linux |
O limite rígido da prioridade de nice que pode ser definido para este processo. Unidade: nenhuma |
|
Linux |
O limite flexível da prioridade de nice que pode ser definido para este processo. Unidade: nenhuma |
|
Linux |
O limite rígido para o número máximo de descritores de arquivo que este processo pode ter em aberto. Unidade: nenhuma |
|
Linux |
O limite flexível para o número máximo de descritores de arquivo que este processo pode ter em aberto. Unidade: nenhuma |
|
Linux, Windows Server |
O número de operações de gravação em disco executadas pelo processo. Unidade: nenhuma |
|
Linux |
O número de vezes em que o contexto do processo foi alterado involuntariamente. Unidade: nenhuma |
|
Linux |
O número de vezes em que o contexto do processo foi alterado voluntariamente. Unidade: nenhuma |
|
Linux |
O uso atual da prioridade em tempo real para o processo. Unidade: nenhuma |
|
Linux |
O uso atual da prioridade boa para o processo. Unidade: nenhuma |
|
Linux |
O número de sinais pendentes a serem processados pelo processo. Unidade: nenhuma |
|
Linux |
O limite de recursos do tempo de CPU fixo para o processo. Unidade: nenhuma |
|
Linux |
O limite de recursos do tempo de CPU flexível para o processo. Unidade: nenhuma |
|
Linux |
O limite de recursos de bloqueios de arquivo fixo para o processo. Unidade: nenhuma |
|
Linux |
O limite de recursos de bloqueios de arquivo flexível para o processo. Unidade: nenhuma |
|
Linux |
O limite de recursos fixo no processo de memória usada em dados. Unidade: bytes |
|
Linux |
O limite de recursos flexível no processo de memória usada em dados. Unidade: bytes |
|
Linux |
O limite de recursos fixo no processo de memória bloqueada. Unidade: bytes |
|
Linux |
O limite de recursos flexível no processo de memória bloqueada. Unidade: bytes |
|
Linux |
O limite de recursos fixo no processo de memória física. Unidade: bytes |
|
Linux |
O limite de recursos flexível no processo de memória física. Unidade: bytes |
|
Linux |
O limite de recursos fixo na pilha de processos. Unidade: bytes |
|
Linux |
O limite de recursos flexível na pilha de processos. Unidade: bytes |
|
Linux |
O limite de recursos fixo no processo de memória virtual. Unidade: bytes |
|
Linux |
O limite de recursos flexível no processo de memória virtual. Unidade: bytes |
Visualizar métricas de processo importadas pelo atendente do CloudWatch
Depois de importar métricas de processo para o CloudWatch, é possível visualizar essas métricas como gráficos de séries temporais e criar alarmes que podem observar essas métricas e notificar você, se elas violarem um limite especificado. O procedimento a seguir mostra como visualizar métricas de processo como um gráfico de séries temporais. Para obter mais informações sobre configuração de alarmes, consulte Usar alarmes do Amazon CloudWatch.
Para exibir métricas de processo no console do CloudWatch
-
Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/
. -
No painel de navegação, selecione Métricas.
-
Escolha o namespace para as métricas coletadas pelo atendente. Por padrão, é CWAgent, mas você pode ter especificado um namespace diferente no arquivo de configuração do atendente do CloudWatch.
-
Escolha uma dimensão de métrica; por exemplo, Per-Instance Metrics (Métricas por instância).
-
A guia All metrics (Todas as métricas) exibe todas as métricas dessa dimensão no namespace. Você pode fazer o seguinte:
-
Para criar um gráfico de uma métrica, marque a caixa de seleção ao lado da métrica. Para selecionar todas as métricas, marque a caixa de seleção na linha de cabeçalho da tabela.
-
Para classificar a tabela, use o cabeçalho da coluna.
-
Para filtrar por recurso, escolha o ID do recurso e, em seguida, escolha Adicionar à pesquisa.
-
Para filtrar por métrica, selecione o nome da métrica e, em seguida, escolha Adicionar à pesquisa.
-
(Opcional) Para adicionar esse gráfico a um painel do CloudWatch, escolha Actions (Ações), Add to dashboard (Adicionar ao painel).