Coletar métricas de processo com o plugin procstat - Amazon CloudWatch

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.

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ê especificar agent como o termo a ser correspondido, os processos com nomes como cloudwatchagent 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 campo aggregation_dimensions na seção metrics 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

cpu_time

Linux

O tempo em que o processo usa a CPU. Essa métrica é medida em centésimos de segundo.

Unidade: Contagem

cpu_time_guest

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

cpu_time_guest_nice

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

cpu_time_idle

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

cpu_time_iowait

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

cpu_time_irq

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

cpu_time_nice

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

cpu_time_soft_irq

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

cpu_time_steal

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

cpu_time_stolen

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

cpu_time_system

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

cpu_time_user

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

cpu_usage

Linux, Windows Server, macOS

A porcentagem de tempo em que o processo permanece ativo em qualquer capacidade.

Unidade: Percentual

memory_data

Linux, macOS

A quantidade de memória usada pelo processo em dados.

Unidade: bytes

memory_locked

Linux, macOS

A quantidade de memória bloqueada pelo processo.

Unidade: bytes

memory_rss

Linux, Windows Server, macOS

A quantidade de memória real (conjunto residente) que o processo está usando.

Unidade: bytes

memory_stack

Linux, macOS

A quantidade de memória em pilha usada pelo processo.

Unidade: bytes

memory_swap

Linux, macOS

A quantidade de memória swap usada pelo processo.

Unidade: bytes

memory_vms

Linux, Windows Server, macOS

A quantidade de memória virtual usada pelo processo.

Unidade: bytes

num_fds

Linux

O número de descritores de arquivo abertos por esse processo.

Unidade: nenhuma

num_threads

Linux, Windows, macOS

O número de threads neste processo.

Unidade: nenhuma

pid

Linux, Windows Server, macOS

Process Identifier (ID – Identificador de processo).

Unidade: nenhuma

pid_count

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 é procstat_lookup_pid_count e no Windows Server é procstat_lookup pid_count.

Unidade: nenhuma

read_bytes

Linux, Windows Server

O número de bytes lidos de discos pelo processo.

Unidade: bytes

write_bytes

Linux, Windows Server

O número de bytes gravados em discos pelo processo.

Unidade: bytes

read_count

Linux, Windows Server

O número de operações de leitura em disco executadas pelo processo.

Unidade: nenhuma

rlimit_realtime_priority_hard

Linux

O limite rígido da prioridade em tempo real que pode ser definido para este processo.

Unidade: nenhuma

rlimit_realtime_priority_soft

Linux

O limite flexível da prioridade em tempo real que pode ser definido para este processo.

Unidade: nenhuma

rlimit_signals_pending_hard

Linux

O limite rígido do número máximo de sinais que podem ser enfileirados por este processo.

Unidade: nenhuma

rlimit_signals_pending_soft

Linux

O limite flexível do número máximo de sinais que podem ser enfileirados por este processo.

Unidade: nenhuma

rlimit_nice_priority_hard

Linux

O limite rígido da prioridade de nice que pode ser definido para este processo.

Unidade: nenhuma

rlimit_nice_priority_soft

Linux

O limite flexível da prioridade de nice que pode ser definido para este processo.

Unidade: nenhuma

rlimit_num_fds_hard

Linux

O limite rígido para o número máximo de descritores de arquivo que este processo pode ter em aberto.

Unidade: nenhuma

rlimit_num_fds_soft

Linux

O limite flexível para o número máximo de descritores de arquivo que este processo pode ter em aberto.

Unidade: nenhuma

write_count

Linux, Windows Server

O número de operações de gravação em disco executadas pelo processo.

Unidade: nenhuma

involuntary_context_switches

Linux

O número de vezes em que o contexto do processo foi alterado involuntariamente.

Unidade: nenhuma

voluntary_context_switches

Linux

O número de vezes em que o contexto do processo foi alterado voluntariamente.

Unidade: nenhuma

realtime_priority

Linux

O uso atual da prioridade em tempo real para o processo.

Unidade: nenhuma

nice_priority

Linux

O uso atual da prioridade boa para o processo.

Unidade: nenhuma

signals_pending

Linux

O número de sinais pendentes a serem processados pelo processo.

Unidade: nenhuma

rlimit_cpu_time_hard

Linux

O limite de recursos do tempo de CPU fixo para o processo.

Unidade: nenhuma

rlimit_cpu_time_soft

Linux

O limite de recursos do tempo de CPU flexível para o processo.

Unidade: nenhuma

rlimit_file_locks_hard

Linux

O limite de recursos de bloqueios de arquivo fixo para o processo.

Unidade: nenhuma

rlimit_file_locks_soft

Linux

O limite de recursos de bloqueios de arquivo flexível para o processo.

Unidade: nenhuma

rlimit_memory_data_hard

Linux

O limite de recursos fixo no processo de memória usada em dados.

Unidade: bytes

rlimit_memory_data_soft

Linux

O limite de recursos flexível no processo de memória usada em dados.

Unidade: bytes

rlimit_memory_locked_hard

Linux

O limite de recursos fixo no processo de memória bloqueada.

Unidade: bytes

rlimit_memory_locked_soft

Linux

O limite de recursos flexível no processo de memória bloqueada.

Unidade: bytes

rlimit_memory_rss_hard

Linux

O limite de recursos fixo no processo de memória física.

Unidade: bytes

rlimit_memory_rss_soft

Linux

O limite de recursos flexível no processo de memória física.

Unidade: bytes

rlimit_memory_stack_hard

Linux

O limite de recursos fixo na pilha de processos.

Unidade: bytes

rlimit_memory_stack_soft

Linux

O limite de recursos flexível na pilha de processos.

Unidade: bytes

rlimit_memory_vms_hard

Linux

O limite de recursos fixo no processo de memória virtual.

Unidade: bytes

rlimit_memory_vms_soft

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
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, selecione Métricas.

  3. 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.

  4. Escolha uma dimensão de métrica; por exemplo, Per-Instance Metrics (Métricas por instância).

  5. A guia All metrics (Todas as métricas) exibe todas as métricas dessa dimensão no namespace. Você pode fazer o seguinte:

    1. 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.

    2. Para classificar a tabela, use o cabeçalho da coluna.

    3. Para filtrar por recurso, escolha o ID do recurso e, em seguida, escolha Adicionar à pesquisa.

    4. Para filtrar por métrica, selecione o nome da métrica e, em seguida, escolha Adicionar à pesquisa.

  6. (Opcional) Para adicionar esse gráfico a um painel do CloudWatch, escolha Actions (Ações), Add to dashboard (Adicionar ao painel).