Monitorar processos em VMs

Por padrão, o agente de operações e o agente do Monitoring legado são configurados para coletar métricas que capturam informações sobre os processos em execução nas máquinas virtuais (VMs) do Compute Engine. Também é possível coletar essas métricas em VMs do Amazon Elastic Compute Cloud (EC2) usando o agente do Monitoring. Esse conjunto de métricas, chamado de métricas de processo, é identificável pelo prefixo agent.googleapis.com/processes. Essas métricas não são coletadas no Google Kubernetes Engine (GKE).

A partir de 6 de agosto de 2021, essas métricas serão introduzidas, conforme descrito em Métricas sujeitas a cobrança. O conjunto de métricas do processo é classificado como faturável, mas as cobranças nunca foram implementadas.

Neste documento, descrevemos ferramentas para visualizar métricas de processo, determinar a quantidade de dados que você está processando a partir dessas métricas e como minimizar as cobranças relacionadas.

Como trabalhar com métricas de processo

Visualize os dados da métrica do processo com gráficos criados por meio do Metrics Explorer ou de painéis personalizados. Para mais informações, consulte Como usar painéis e gráficos. Além disso, o Cloud Monitoring inclui dados das métricas do processo em dois painéis predefinidos:

  • Painel Instâncias de VM no Monitoring
  • Painel Detalhes da instância de VM no Compute Engine

As seções a seguir descrevem esses painéis.

Monitoramento: visualizar métricas de processo agregadas

Para visualizar métricas de processo agregadas em um escopo de métricas, acesse a guia Processos no painel Instâncias de VM:

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Painéis:

    Acessar Painéis

  2. Selecione o painel Instâncias de VM na lista.

  3. Clique em Processos.

Veja na captura de tela a seguir um exemplo da página Processos do Monitoring:

A página **Processos** no Monitoring mostra métricas de processo
agregadas.

Use os gráficos da guia Processos para identificar os processos no escopo de métricas que estão consumindo mais CPU e memória e que têm a maior utilização de disco.

Compute Engine: confira as métricas de desempenho das principais VMs que consomem recursos

Para visualizar os gráficos de desempenho que mostram as cinco VMs que consomem a maior parte de um recurso no projeto do Google Cloud, acesse a guia Observabilidade das suas instâncias de VM:

  1. No painel de navegação do console do Google Cloud, selecione Compute Engine e, depois, Instâncias de VM:

    Acessar Instâncias de VM

  2. Clique em Observabilidade.

A captura de tela a seguir mostra um exemplo da página Observabilidade do Compute Engine.

A página **Observabilidade** no Compute Engine mostra
as cinco principais VMs que consomem um determinado recurso.

Para informações sobre como usar essas métricas para diagnosticar problemas com suas VMs, consulte Como solucionar problemas de desempenho da VM.

Compute Engine: visualizar métricas de processos por VM

Para ver uma lista dos processos em execução em uma única máquina virtual (VM) do Compute Engine e gráficos dos processos com maior consumo de recursos, acesse a guia Observabilidade da VM.

  1. No painel de navegação do console do Google Cloud, selecione Compute Engine e, depois, Instâncias de VM:

    Acessar Instâncias de VM

  2. Na guia Instâncias, clique no nome de uma VM a ser inspecionada.

  3. Clique em Observabilidade para visualizar as métricas da VM.

  4. No painel de navegação da guia Observabilidade, selecione Processos.

Veja na captura de tela a seguir um exemplo da página Processos do Compute Engine:

A página **Processos** no Compute Engine mostra métricas de processo
por VM.

As métricas do processo são mantidas por até 24 horas. Assim, é possível usá-las para analisar o tempo e atribuir anomalias no consumo de recursos a processos específicos ou identificar seus consumidores de recursos mais caros. Por exemplo, o gráfico a seguir mostra os processos que consomem as maiores porcentagens de recursos da CPU. É possível usar o seletor de intervalo de tempo para alterar o intervalo do gráfico. O seletor de período oferece valores predefinidos, como a hora mais recente, e também permite inserir um período personalizado.

É possível usar métricas de processo para identificar os processos que consomem
mais um recurso.

A tabela Processos em execução fornece uma lista do consumo de recursos semelhante à saída do comando top do Linux. Por padrão, a tabela mostra um snapshot dos dados mais recentes. No entanto, se você selecionar um intervalo de tempo em um gráfico que termina no passado, a tabela mostrará os processos em execução no final desse intervalo.

Para informações sobre como usar essas métricas para diagnosticar problemas com suas VMs, consulte Como solucionar problemas de desempenho da VM.

Métricas do processo coletadas pelo agente

Os agentes do Linux coletam todas as métricas listadas na tabela a seguir dos processos em execução nas VMs do Compute Engine e, usando o agente do Monitoring, o Amazon Elastic Compute Cloud (EC2). É possível desativar a coleta pelo agente de operações (versões 2.0.0 e posteriores) e pelo agente legado do Monitoring.

Também é possível desativar a coleta de métricas de processo no Agente de operações (versões 2.0.0 e mais recentes) em execução nas VMs do Windows.

Para mais informações, consulte Como desativar métricas de processo.

Se você quiser desativar a coleta dessas métricas no Windows, recomendamos fazer upgrade para o agente de operações versão 2.0.0 ou mais recente. Para mais informações, consulte Como instalar o agente de operações.

Tabela de métricas do processo

As strings "tipo de métrica" nesta tabela precisam ser prefixadas com agent.googleapis.com/processes/. Esse prefixo foi omitido das entradas na tabela. Ao consultar um rótulo, use o prefixo metric.labels.. por exemplo, metric.labels.LABEL="VALUE".

Tipo de métrica Etapa do lançamento
Nome de exibição
Classe, Tipo, Unidade
Recursos monitorados
Descrição
Rótulos
count_by_state GA
Processos
GAUGEDOUBLE1
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Contagem de processos no estado especificado. Somente no Linux. Amostras coletadas a cada 60 segundos.
state: corrida, suspensão, zumbi etc.
cpu_time GA
Processar CPU
CUMULATIVEINT64us{CPU}
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Tempo de CPU do processo especificado. Amostras coletadas a cada 60 segundos.
process: Nome do processo.
user_or_syst: processo do usuário ou do sistema
command: Processar comando.
command_line: Processe a linha de comando, no máximo 1.024 caracteres.
owner: Proprietário do processo.
pid: ID do processo
disk/read_bytes_count GA
Processar E/S de leitura do disco
CUMULATIVEINT64By
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Processar E/S de leitura de disco. Somente no Linux. Amostras coletadas a cada 60 segundos.
process: Nome do processo.
command: Processar comando.
command_line: Processe linha de comando, no máximo 1.024 caracteres.
owner: Proprietário do processo.
pid: ID do processo.
disk/write_bytes_count GA
Processar E/S de gravação do disco
CUMULATIVEINT64By
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Processar E/S de gravação do disco. Somente no Linux. Amostras coletadas a cada 60 segundos.
process: Nome do processo.
command: Processar comando.
command_line: Processe linha de comando, no máximo 1.024 caracteres.
owner: Proprietário do processo.
pid: ID do processo.
fork_count GA
Contagem de bifurcações
CUMULATIVEINT641
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Número total de processos bifurcados. Somente no Linux. Amostras coletadas a cada 60 segundos.
rss_usage GA
Processar memória residente
GAUGEDOUBLEBy
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Uso de memória residente do processo fornecido. Somente no Linux. Amostras coletadas a cada 60 segundos.
process: Nome do processo.
command: Processar comando.
command_line: Processe linha de comando, no máximo 1.024 caracteres.
owner: Proprietário do processo.
pid: ID do processo.
vm_usage GA
Processar memória virtual
GAUGEDOUBLEBy
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Uso de VM do processo fornecido. Amostras coletadas a cada 60 segundos.
process: Nome do processo.
command: Processar comando.
command_line: Processe linha de comando, no máximo 1.024 caracteres.
owner: Proprietário do processo.
pid: ID do processo.

Tabela gerada em 01-02-2024 18:05:28 UTC.

Como determinar a ingestão atual

Use o Metrics Explorer para ver a quantidade de dados que você está ingerindo para métricas de processo. Use o procedimento a seguir:

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Metrics Explorer:

    Acesse o Metrics explorer

  2. Na barra de ferramentas do painel do criador de consultas, selecione o botão  MQL ou  PromQL.

  3. Verifique se MQL está selecionado na opção de ativar/desativar Idioma. A alternância de idiomas está na mesma barra de ferramentas que permite formatar sua consulta.

  4. Para ver o número total de pontos de métrica do processo para os recursos gce_instance e aws_ec2_instance, faça o seguinte:

    1. Digite a seguinte consulta:

      def tagged_process_metric name = metric 'agent.googleapis.com/processes/'$name
      | add [metric_suffix: $name];
      
      def process_metrics resource_type = fetch $resource_type
      | { @tagged_process_metric 'cpu_time'
        ; @tagged_process_metric 'disk/read_bytes_count'
        ; @tagged_process_metric 'disk/write_bytes_count'
        ; @tagged_process_metric 'rss_usage'
        ; @tagged_process_metric 'vm_usage'
        ; @tagged_process_metric 'count_by_state'
        ; @tagged_process_metric 'fork_count' }
      | within 1d
      | group_by [metric_suffix], 1m, [row_count: row_count()]
      | union;
      
      { @process_metrics 'gce_instance'
      ; @process_metrics 'aws_ec2_instance' }
      | outer_join 0, 0
      | { rename [], [out: val(0)] | add [resource_type: 'gce_instance']
        ; rename [], [out: val(1)] | add [resource_type: 'aws_ec2_instance'] }
      | union
      | group_by drop[metric_suffix], 1d, .sum
      
    2. Clique em Run. O gráfico resultante mostra os valores de cada tipo de recurso.

Como estimar o custo das métricas

Os exemplos de preços do Monitoring ilustram como estimar o custo da ingestão de métricas. Esses exemplos podem ser aplicados para processar métricas.

  • Todas as métricas do processo são amostradas a cada 60 segundos, e todas elas gravam pontos de dados que são contabilizados como oito bytes para fins de definição de preços.

  • Os preços das métricas do processo são definidos como 5% do custo do volume padrão usado nos exemplos de preços. Portanto, se você considerar que todas as métricas nos cenários descritos nesses exemplos são de processo, será possível usar 5% do custo total de cada cenário como uma estimativa do custo do processo. métricas.

Desativar a coleta de métricas de processo

Há várias maneiras de desativar a coleta dessas métricas pelo agente de operações (versões 2.0.0 e posteriores) e pelo agente legado do Monitoring no Linux.

Os agentes são executados apenas em VMs do Compute Engine e, no caso do agente do Monitoring, VMs do Amazon Elastic Compute Cloud (EC2), esses procedimentos se aplicam apenas a essas plataformas.

Não é possível desativar a coleta pelo agente de operações se você estiver executando versões anteriores a 2.0.0 ou o agente do Monitoring legado no Windows. Se você quiser desativar a coleta dessas métricas no Windows, recomendamos fazer upgrade para o agente de operações versão 2.0.0 ou mais recente. Para mais informações, consulte Como instalar o agente de operações.

O procedimento geral é semelhante a este:

  1. Conecte-se à VM.

  2. Faça uma cópia do arquivo de configuração atual como um backup. Armazene a cópia de backup fora do diretório de configuração do agente para que o agente não tente carregar os dois arquivos. Por exemplo, o comando a seguir faz uma cópia do arquivo de configuração do agente do Monitoring no Linux:

    cp /etc/stackdriver/collectd.conf BACKUP_DIR/collectd.conf.bak
    
  3. Altere a configuração usando uma das opções descritas na seguinte:

  4. Reinicie o agente para escolher a nova configuração:

    • Agente do Monitoring: sudo service stackdriver-agent restart
    • Agente de operações: sudo service google-cloud-ops-agent restart
  5. Verifique se as métricas do processo não estão mais sendo coletadas para essa VM:

    1. Selecione Metrics Explorer.

    2. Clique em MQL.

    3. Para um recurso gce_instance, insira a seguinte consulta, substituindo VM_NAME pelo nome desta VM:

      fetch gce_instance
      | metric 'agent.googleapis.com/processes/cpu_time'
      | filter (metadata.system_labels.name == 'VM_NAME')
      | align rate(1m)
      | every 1m
      

      Para um recurso aws_ec2_instance, substitua gce_instance na consulta.

    4. Clique em Run.

Agente de operações no Linux ou no Windows

O local do arquivo de configuração do agente de operações depende do sistema operacional:

  • No Linux: /etc/google-cloud-ops-agent/config.yaml
  • No Windows: C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml

Para desativar a coleta de todas as métricas de processo pelo agente de operações, adicione o seguinte ao arquivo config.yaml:

metrics:
  processors:
    metrics_filter:
      type: exclude_metrics
      metrics_pattern:
      - agent.googleapis.com/processes/*

Isso exclui as métricas de processo da coleta no processador metrics_filter que se aplica ao pipeline padrão no serviço metrics.

Para mais informações sobre as opções de configuração do agente de operações, consulte Como configurar o agente de operações.

Agente do Monitoring no Linux

Você tem as opções a seguir para desativar a coleta de métricas de processos com o agente do Monitoring legado:

As seções a seguir descrevem cada opção e listam os benefícios e riscos associados a ela.

Modificar o arquivo de configuração do agente

Essa opção permite editar diretamente o arquivo de configuração principal do agente, /etc/stackdriver/collectd.conf, para remover as seções que permitem a coleta das métricas do processo.

Procedimento

Há três grupos de exclusões que você precisa fazer no arquivo collectd.conf:

  1. Exclua a seguinte diretiva LoadPlugin e a configuração do plug-in:

    LoadPlugin processes
    
    <Plugin "processes">
      ProcessMatch "all" ".*"
      Detail "ps_cputime"
      Detail "ps_disk_octets"
      Detail "ps_rss"
      Detail "ps_vm"
    </Plugin>
    
  2. Exclua a seguinte diretiva PostCacheChain e a configuração da cadeia PostCache:

    PostCacheChain "PostCache"
    
    <Chain "PostCache">
      <Rule "processes">
        <Match "regex">
          Plugin "^processes$"
          Type "^(ps_cputime|disk_octets|ps_rss|ps_vm)$"
        </Match>
        <Target "jump">
          Chain "MaybeThrottleProcesses"
        </Target>
        Target "stop"
      </Rule>
    
      <Rule "otherwise">
        <Match "throttle_metadata_keys">
          OKToThrottle false
          HighWaterMark 5700000000  # 950M * 6
          LowWaterMark 4800000000  # 800M * 6
        </Match>
        <Target "write">
           Plugin "write_gcm"
        </Target>
      </Rule>
    </Chain>
    
  3. Exclua a cadeia MaybeThrottleProcesses usada pela cadeia PostCache:

    <Chain "MaybeThrottleProcesses">
      <Rule "default">
        <Match "throttle_metadata_keys">
          OKToThrottle true
          TrackedMetadata "processes:pid"
          TrackedMetadata "processes:command"
          TrackedMetadata "processes:command_line"
          TrackedMetadata "processes:owner"
        </Match>
        <Target "write">
           Plugin "write_gcm"
        </Target>
      </Rule>
    </Chain>
    
Benefícios e riscos
  • Benefícios
    • Você reduz os recursos consumidos pelo agente porque as métricas nunca são coletadas.
    • Se você fez outras mudanças no arquivo collectd.conf, talvez consiga preservar essas mudanças facilmente.
  • Riscos
    • Use a conta root para editar este arquivo de configuração.
    • Você corre o risco de introduzir erros tipográficos no arquivo.

Substituir o arquivo de configuração do agente

Com essa opção, você substitui o arquivo de configuração principal do agente por uma versão pré-editada com as seções relevantes removidas para você.

Procedimento
  1. Faça o download do arquivo pré-editado, collectd-no-process-metrics.conf, do repositório do GitHub para o diretório /tmp e faça o seguinte:

    cd /tmp && curl -sSO https://raw.githubusercontent.com/Stackdriver/agent-packaging/master/collectd-no-process-metrics.conf
    
  2. Substitua o arquivo collectd.conf atual pelo arquivo pré-editado:

    cp /tmp/collectd-no-process-metrics.conf /etc/stackdriver/collectd.conf
    
Benefícios e riscos
  • Benefícios
    • Você reduz os recursos consumidos pelo agente porque as métricas nunca são coletadas.
    • Não é necessário editar manualmente o arquivo como root.
    • As ferramentas de gerenciamento de configuração podem facilmente substituir um arquivo.
  • Riscos
    • Se você tiver feito outras alterações no arquivo collectd.conf, será necessário mesclar essas alterações no arquivo de substituição.

Solução de problemas

Os procedimentos descritos neste documento são alterações na configuração do agente. Portanto, os problemas a seguir são mais prováveis:

  • Privilégio insuficiente para editar os arquivos de configuração. Os arquivos de configuração precisam ser editados na conta root.
  • Introdução de erros tipográficos no arquivo de configuração, se você editá-lo diretamente.

Para informações sobre como resolver outros problemas, consulte Como solucionar problemas do agente do Monitoring.

Agente do Monitoring no Windows

Não é possível desativar a coleta de métricas do processo pelo agente do Monitoring legado em execução em VMs do Windows. Este agente não é configurável. Se você quiser desativar a coleta dessas métricas no Windows, recomendamos fazer upgrade para o agente de operações versão 2.0.0 ou mais recente. Para mais informações, consulte Como instalar o agente de operações.

Se você estiver executando o agente de operações, consulte Agente de operações no Linux ou no Windows.