Monitora i processi sulle VM

Per impostazione predefinita, Ops Agent e l'agente Monitoring legacy sono configurati per raccogliere metriche che acquisiscono informazioni sui processi in esecuzione sulle tue macchine virtuali (VM) Compute Engine. Puoi raccogliere queste metriche anche sulle VM Amazon Elastic Compute Cloud (EC2) utilizzando l'agente Monitoring. Questo insieme di metriche, chiamato metriche di processo, è identificabile dal prefisso agent.googleapis.com/processes. Queste metriche non vengono raccolte su Google Kubernetes Engine (GKE).

A partire dal 6 agosto 2021, verranno introdotti addebiti per queste metriche, come descritto in Metriche addebitabili. Il set di metriche di processo è classificato come addebitabile, ma gli addebiti non sono mai stati implementati.

Questo documento descrive gli strumenti per visualizzare le metriche di processo, come determinare la quantità di dati importata da queste metriche e come ridurre al minimo gli addebiti correlati.

Lavorare con le metriche di processo

Puoi visualizzare i dati delle metriche di processo con grafici creati utilizzando Metrics Explorer o dashboard personalizzate. Per ulteriori informazioni, consulta la pagina relativa all'utilizzo di dashboard e grafici. Inoltre, Cloud Monitoring include dati delle metriche di processo su due dashboard predefinite:

  • Dashboard delle istanze VM in Monitoring
  • Dashboard Dettagli dell'istanza VM in Compute Engine

Le sezioni seguenti descrivono le dashboard.

Monitoraggio: visualizza metriche di processo aggregate

Per visualizzare le metriche di processo aggregate all'interno di un ambito delle metriche, vai alla scheda Processi nella dashboard Istanze VM:

  1. Nella console Google Cloud, vai alla pagina  Dashboard:

    Vai a Dashboard

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.

  2. Seleziona la dashboard Istanze VM dall'elenco.

  3. Fai clic su Processi.

Il seguente screenshot mostra un esempio della pagina Processi di monitoraggio:

La pagina **Processi** in Monitoring mostra metriche dei processi aggregate.

Puoi utilizzare i grafici nella scheda Processi per identificare i processi nell'ambito delle metriche che utilizzano la maggior quantità di CPU e memoria e che hanno l'utilizzo del disco più elevato.

Compute Engine: visualizza le metriche delle prestazioni per le VM che consumano più risorse

Per visualizzare i grafici delle prestazioni che mostrano le cinque VM che utilizzano la maggior parte di una risorsa nel tuo progetto Google Cloud, vai alla scheda Osservabilità per le tue istanze VM:

  1. Nella console Google Cloud, vai alla pagina Istanze VM:

    Vai a Istanze VM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Compute Engine.

  2. Fai clic su Osservabilità.

Il seguente screenshot mostra un esempio della pagina Osservabilità di Compute Engine.

La pagina **Osservabilità** in Compute Engine mostra le prime cinque VM che utilizzano una determinata risorsa.

Per informazioni sull'utilizzo di queste metriche per diagnosticare i problemi delle VM, consulta Risoluzione dei problemi di prestazioni delle VM.

Compute Engine: visualizzazione delle metriche dei processi per VM

Per visualizzare un elenco dei processi in esecuzione su una singola macchina virtuale (VM) Compute Engine e i grafici relativi ai processi con il consumo di risorse più elevato, vai alla scheda Osservabilità della VM:

  1. Nella console Google Cloud, vai alla pagina Istanze VM:

    Vai a Istanze VM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Compute Engine.

  2. Nella scheda Istanze, fai clic sul nome di una VM da ispezionare.

  3. Fai clic su Osservabilità per visualizzare le metriche per questa VM.

  4. Nel riquadro di navigazione della scheda Osservabilità, seleziona Processi.

Il seguente screenshot mostra un esempio della pagina Processi di Compute Engine:

Nella pagina **Processi** in Compute Engine vengono visualizzate le metriche dei processi per VM.

Le metriche dei processi vengono conservate per un massimo di 24 ore, quindi puoi utilizzarle per tornare indietro nel tempo e attribuire anomalie nel consumo delle risorse a processi specifici o identificare i consumer delle risorse più costosi. Ad esempio, il grafico seguente mostra i processi che utilizzano le percentuali più elevate di risorse della CPU. Con il selettore dell'intervallo di tempo, puoi modificare l'intervallo di tempo del grafico. Il selettore dell'intervallo di tempo offre valori preimpostati, come l'ora più recente, e consente di inserire un intervallo di tempo personalizzato.

Puoi utilizzare le metriche di processo per identificare i processi che utilizzano la maggior parte di una risorsa.

La tabella Processi in esecuzione fornisce un elenco del consumo di risorse analogo all'output del comando top di Linux. Per impostazione predefinita, la tabella mostra un'istantanea dei dati più recenti. Tuttavia, se su un grafico selezioni un intervallo di tempo che termina nel passato, la tabella mostra i processi in esecuzione alla fine di quell'intervallo.

Per informazioni sull'utilizzo di queste metriche per diagnosticare i problemi delle VM, consulta Risoluzione dei problemi di prestazioni delle VM.

Elabora le metriche raccolte dall'agente

Gli agenti Linux raccolgono tutte le metriche elencate nella seguente tabella dai processi in esecuzione sulle VM di Compute Engine e, utilizzando l'agente Monitoring, le VM Amazon Elastic Compute Cloud (EC2). Puoi disabilitarne la raccolta da parte di Ops Agent (versioni 2.0.0 e successive) e dall'agente Monitoring legacy.

Puoi anche disabilitare la raccolta di metriche di processo per l'Ops Agent (versioni 2.0.0 e successive) in esecuzione sulle VM Windows.

Per saperne di più, consulta Disabilitare le metriche di processo.

Se vuoi disabilitare la raccolta di queste metriche su Windows, ti consigliamo di eseguire l'upgrade a Ops Agent versione 2.0.0 o successiva. Per ulteriori informazioni, consulta la sezione Installazione di Ops Agent.

Tabella delle metriche dei processi

Le stringhe "tipo di metrica" in questa tabella devono avere il prefisso agent.googleapis.com/processes/. Il prefisso è stato omesso dalle voci della tabella. Quando esegui una query su un'etichetta, utilizza il prefisso metric.labels., ad esempio metric.labels.LABEL="VALUE".

Tipo di metrica Fase di lancio
Nome visualizzato
Tipo, tipo, unità
Risorse monitorate
Descrizione
Etichette
count_by_state GA
Processi
GAUGEDOUBLE1
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Numero di processi nello stato specificato. Solo per Linux. Campionamento eseguito ogni 60 secondi.
state: corsa, sonno, zombie ecc.
cpu_time GA
CPU di processo
CUMULATIVEINT64us{CPU}
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Tempo CPU del processo specificato. Campionamento eseguito ogni 60 secondi.
process: nome del processo.
user_or_syst: Sia un processo utente o di sistema.
command: Elabora il comando.
command_line: riga di comando dell'elaborazione, massimo 1024 caratteri.
owner: Proprietario del processo.
pid: ID processo.
disk/read_bytes_count GA
I/O lettura disco di processo
CUMULATIVEINT64By
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
I/O lettura disco di processo. Solo per Linux. Campionamento eseguito ogni 60 secondi.
process: nome del processo.
command: Elabora il comando.
command_line: riga di comando dell'elaborazione, massimo 1024 caratteri.
owner: Proprietario del processo.
pid: ID processo.
disk/write_bytes_count GA
I/O scrittura disco processo
CUMULATIVEINT64By
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
I/O di scrittura su disco di processo. Solo per Linux. Campionamento eseguito ogni 60 secondi.
process: nome del processo.
command: Elabora il comando.
command_line: riga di comando dell'elaborazione, massimo 1024 caratteri.
owner: Proprietario del processo.
pid: ID processo.
fork_count GA
Conteggio fork
CUMULATIVEINT641
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Numero totale di processi di cui è stato eseguito il fork. Solo per Linux. Campionamento eseguito ogni 60 secondi.
rss_usage GA
Elabora la memoria residente
GAUGEDOUBLEBy
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Utilizzo della memoria residente del processo specificato. Solo per Linux. Campionamento eseguito ogni 60 secondi.
process: nome del processo.
command: Elabora il comando.
command_line: riga di comando dell'elaborazione, massimo 1024 caratteri.
owner: Proprietario del processo.
pid: ID processo.
vm_usage GA
Elabora la memoria virtuale
GAUGEDOUBLEBy
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Utilizzo da parte delle VM del processo specificato. Campionamento eseguito ogni 60 secondi.
process: nome del processo.
command: Elabora il comando.
command_line: riga di comando dell'elaborazione, massimo 1024 caratteri.
owner: Proprietario del processo.
pid: ID processo.

Tabella generata alle ore 18:05:28 UTC del 1° febbraio 2024.

Determinazione dell'importazione attuale

Puoi utilizzare Metrics Explorer per visualizzare la quantità di dati attualmente importata per le metriche di processo. Segui questa procedura:

  1. Nella console Google Cloud, vai alla pagina Metrics Explorer :

    Vai a Metrics Explorer

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.

  2. Nella barra degli strumenti del riquadro del generatore di query, seleziona il pulsante il cui nome è  MQL o  PromQL.

  3. Verifica che sia selezionato MQL nel pulsante di attivazione/disattivazione Lingua. Il pulsante di attivazione/disattivazione della lingua si trova nella stessa barra degli strumenti che consente di formattare la query.

  4. Per visualizzare il numero totale di punti delle metriche di processo per le risorse gce_instance e aws_ec2_instance:

    1. Inserisci la seguente query:

      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. Fai clic su Esegui query. Il grafico risultante mostra i valori di ciascun tipo di risorsa.

Stima del costo delle metriche

Gli esempi di prezzi di Monitoring mostrano come stimare il costo dell'importazione delle metriche. Questi esempi possono essere applicati alle metriche di processo.

  • Tutte le metriche di processo vengono campionate ogni 60 secondi e tutte scrivono punti dati che vengono conteggiati come otto byte ai fini della determinazione del prezzo.

  • I prezzi per le metriche di processo vengono impostati al 5% del costo del volume standard utilizzato negli esempi di prezzi. Pertanto, se presupponi che tutte le metriche negli scenari descritti in questi esempi siano metriche di processo, puoi utilizzare il 5% del costo totale per ogni scenario come stima del costo delle metriche del processo.

Disabilita la raccolta di metriche dei processi

Esistono diversi modi per disabilitare la raccolta di queste metriche da parte di Ops Agent (versioni 2.0.0 e successive) e dell'agente Monitoring legacy su Linux.

Gli agenti vengono eseguiti solo sulle VM di Compute Engine e, per l'agente Monitoring, sulle VM Amazon Elastic Compute Cloud (EC2); queste procedure si applicano solo a queste piattaforme.

Non puoi disabilitare la raccolta da parte di Ops Agent se esegui versioni precedenti alla 2.0.0 o all'agente Monitoring legacy su Windows. Se vuoi disabilitare la raccolta di queste metriche su Windows, ti consigliamo di eseguire l'upgrade a Ops Agent versione 2.0.0 o successiva. Per ulteriori informazioni, consulta la sezione Installazione di Ops Agent.

La procedura generale è la seguente:

  1. Connettiti alla VM.

  2. Crea una copia del file di configurazione esistente come backup. Archivia la copia di backup al di fuori della directory di configurazione dell'agente, in modo che non tenti di caricare entrambi i file. Ad esempio, il seguente comando crea una copia del file di configurazione per l'agente Monitoring su Linux:

    cp /etc/stackdriver/collectd.conf BACKUP_DIR/collectd.conf.bak
    
  3. Modifica la configurazione utilizzando una delle opzioni descritte di seguito:

  4. Riavvia l'agente per recuperare la nuova configurazione:

    • Agente Monitoring: sudo service stackdriver-agent restart
    • Agente operativo: sudo service google-cloud-ops-agent restart
  5. Verifica che le metriche di processo non vengano più raccolte per questa VM:

    1. Seleziona Metrics Explorer.

    2. Fai clic su MQL.

    3. Per una risorsa gce_instance, inserisci la query seguente, sostituendo VM_NAME con il nome di questa VM:

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

      Per una risorsa aws_ec2_instance, sostituisci gce_instance nella query.

    4. Fai clic su Esegui query.

Ops Agent su Linux o Windows

La posizione del file di configurazione per Ops Agent dipende dal sistema operativo:

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

Per disabilitare la raccolta di tutte le metriche di processo da parte di Ops Agent, aggiungi quanto segue al file config.yaml:

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

Ciò esclude le metriche di processo dalla raccolta nel processore metrics_filter che si applica alla pipeline predefinita nel servizio metrics.

Per saperne di più sulle opzioni di configurazione per Ops Agent, consulta Configurazione di Ops Agent.

Agente Monitoring su Linux

Per disabilitare la raccolta di metriche di processo con l'agente Monitoring legacy hai a disposizione le seguenti opzioni:

Le seguenti sezioni descrivono ciascuna opzione ed elencano i vantaggi e i rischi associati a tale opzione.

Modifica il file di configurazione dell'agente

Con questa opzione, puoi modificare direttamente il file di configurazione principale dell'agente, /etc/stackdriver/collectd.conf, per rimuovere le sezioni che consentono la raccolta delle metriche di processo.

Procedura

Devi eseguire tre gruppi di eliminazioni nel file collectd.conf:

  1. Elimina la seguente istruzione LoadPlugin e configurazione plug-in:

    LoadPlugin processes
    
    <Plugin "processes">
      ProcessMatch "all" ".*"
      Detail "ps_cputime"
      Detail "ps_disk_octets"
      Detail "ps_rss"
      Detail "ps_vm"
    </Plugin>
    
  2. Elimina la seguente istruzione PostCacheChain e la configurazione della catena 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. Elimina la catena MaybeThrottleProcesses utilizzata dalla catena 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>
    
Vantaggi e rischi
  • Vantaggi
    • Riduci il numero di risorse utilizzate dall'agente, poiché le metriche non vengono mai raccolte.
    • Se hai apportato altre modifiche al file collectd.conf, potresti riuscire a mantenerle facilmente.
  • Rischi
    • Per modificare questo file di configurazione, devi utilizzare l'account root.
    • Rischi di introdurre errori tipografici nel file.

Sostituisci il file di configurazione dell'agente

Con questa opzione, sostituisci il file di configurazione principale dell'agente con una versione pre-modificata in cui le sezioni pertinenti vengono rimosse.

Procedura
  1. Scarica il file pre-modificato, collectd-no-process-metrics.conf, dal repository GitHub alla directory /tmp, quindi procedi nel seguente modo:

    cd /tmp && curl -sSO https://raw.githubusercontent.com/Stackdriver/agent-packaging/master/collectd-no-process-metrics.conf
    
  2. Sostituisci il file collectd.conf esistente con il file pre-modificato:

    cp /tmp/collectd-no-process-metrics.conf /etc/stackdriver/collectd.conf
    
Vantaggi e rischi
  • Vantaggi
    • Riduci le risorse utilizzate dall'agente perché le metriche non vengono mai raccolte.
    • Non è necessario modificare manualmente il file come root.
    • Gli strumenti di gestione della configurazione possono sostituire facilmente un file.
  • Rischi
    • Se hai apportato altre modifiche al file collectd.conf, devi unirle nel file sostitutivo.

Risoluzione dei problemi

Le procedure descritte in questo documento riguardano modifiche alla configurazione dell'agente, pertanto molto probabilmente si verificano i seguenti problemi:

  • Privilegi insufficienti per modificare i file di configurazione. I file di configurazione devono essere modificati dall'account root.
  • Introduzione degli errori tipografici nel file di configurazione, se lo modifichi direttamente.

Per informazioni sulla risoluzione di altri problemi, consulta la sezione Risoluzione dei problemi dell'agente Monitoring.

Agente Monitoring su Windows

Non puoi disabilitare la raccolta di metriche di processo da parte dell'agente Monitoring legacy in esecuzione sulle VM Windows. Questo agente non è configurabile. Se vuoi disabilitare la raccolta di queste metriche su Windows, ti consigliamo di eseguire l'upgrade a Ops Agent versione 2.0.0 o successiva. Per ulteriori informazioni, consulta la sezione Installazione di Ops Agent.

Se esegui Ops Agent, consulta Ops Agent su Linux o Windows.