Supervisa procesos en VMs

De forma predeterminada, el agente de operaciones y el agente de Monitoring heredado están configurados para recopilar métricas que capturan información sobre los procesos que se ejecutan en tus máquinas virtuales (VM) de Compute Engine. También puedes recopilar estas métricas en las VM de Amazon Elastic Compute Cloud (EC2) mediante el agente de Monitoring. Este conjunto de métricas, llamadas métricas de proceso, se identifica con el prefijo agent.googleapis.com/processes. Estas métricas no se recopilan en Google Kubernetes Engine (GKE).

A partir del 6 de agosto de 2021, se presentarán cargos por estas métricas, como se describe en la página sobre métricas cobrables. El conjunto de métricas de procesos se clasifica como cobrable, pero los cargos nunca se implementaron.

En este documento, se describen herramientas para visualizar métricas de procesos, cómo determinar la cantidad de datos que transfieres desde estas métricas y cómo minimizar los cargos relacionados.

Trabaja con métricas de procesos

Puedes visualizar tus datos de métricas del proceso con gráficos creados mediante el Explorador de métricas o los paneles personalizados. Para obtener más información, consulta Usa los paneles y gráficos. Además, Cloud Monitoring incluye datos de métricas de procesos en dos paneles predefinidos:

  • Panel Instancias de VM en Monitoring
  • Panel Detalles de la instancia de VM en Compute Engine

En las siguientes secciones, se describen estos paneles.

Monitoring: Consulta métricas de procesos agregadas

Para ver las métricas de procesos agregadas dentro de un alcance de métricas, ve a la pestaña Procesos en el panel de Instancias de VM:

  1. En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Paneles:

    Ir a Paneles

  2. Selecciona el panel de Instancias de VM de la lista.

  3. Haz clic en Procesos.

En la siguiente captura de pantalla, se muestra un ejemplo de la página Procesos de Monitoring:

La página **Procesos** en Monitoring muestra métricas de proceso agregadas.

Puedes usar los gráficos de la pestaña Procesos para identificar los procesos en tu alcance de métricas que consumen más CPU y memoria, y que tienen el mayor uso de disco.

Compute Engine: Consulta las métricas de rendimiento de las VMs que consumen más recursos

Para ver los gráficos de rendimiento que muestran las cinco VM que consumen más recursos en tu proyecto de Google Cloud, ve a la pestaña Observabilidad de tus instancias de VM:

  1. En el panel de navegación de la consola de Google Cloud, elige Compute Engine y, luego, Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en Observabilidad.

En la siguiente captura de pantalla, se muestra un ejemplo de la página Observabilidad de Compute Engine.

En la página **Observabilidad** de Compute Engine, se muestran las cinco VM principales que consumen un recurso determinado.

Si deseas obtener información sobre el uso de estas métricas para diagnosticar problemas con tus VM, consulta Soluciona problemas de rendimiento de VM.

Compute Engine: Visualiza métricas de procesos por VM

Para ver una lista de los procesos que se ejecutan en una sola máquina virtual (VM) de Compute Engine y los gráficos de los procesos con el mayor consumo de recursos, ve a la pestaña Observabilidad de la VM:

  1. En el panel de navegación de la consola de Google Cloud, elige Compute Engine y, luego, Instancias de VM.

    Ir a Instancias de VM

  2. En la pestaña Instancias, haz clic en el nombre de una VM que se inspeccionará.

  3. Haz clic en Observabilidad para ver las métricas de esta VM.

  4. En el panel de navegación de la pestaña Observabilidad, selecciona Procesos.

En la siguiente captura de pantalla, se muestra un ejemplo de la página Procesos de Compute Engine:

En la página **Procesos** de Compute Engine, se muestran las métricas del proceso por VM.

Las métricas de procesos se retienen por hasta 24 horas, por lo que puedes usarlas para retroceder en el tiempo y atribuir anomalías en el consumo de recursos a procesos específicos o identificar a tus consumidores de recursos más costosos. Por ejemplo, en el siguiente gráfico, se muestran los procesos que consumen los porcentajes más altos de recursos de CPU. Puedes usar el selector de intervalo de tiempo para cambiar el intervalo de tiempo del gráfico. El selector de intervalo de tiempo ofrece valores predeterminados, como la hora más reciente y también te permite ingresar un intervalo de tiempo personalizado.

Puedes usar métricas de procesos para identificar los procesos que consumen más recursos.

En la tabla Running procesos, se proporciona una lista de consumo de recursos analógicos al resultado del comando top de Linux. De forma predeterminada, en la tabla se muestra una instantánea de los datos más recientes. Sin embargo, si seleccionas un intervalo de tiempo en un gráfico que finaliza en el pasado, la tabla mostrará los procesos que se ejecutan al final de ese rango.

Si deseas obtener información sobre el uso de estas métricas para diagnosticar problemas con tus VM, consulta Soluciona problemas de rendimiento de VM.

Métricas de procesos que recopila el agente

Los agentes de Linux recopilan todas las métricas que se enumeran en la siguiente tabla a partir de los procesos que se ejecutan en las VM de Compute Engine y mediante el agente de Monitoring, las VM de Amazon Elastic Compute Cloud (EC2). Puedes inhabilitar la recopilación mediante el agente de operaciones (versiones 2.0.0 y posteriores) y el agente de Monitoring heredado.

También puedes inhabilitar la recopilación de métricas de procesos para el agente de operaciones (versiones 2.0.0 y posteriores) que se ejecutan en las VM de Windows.

Para obtener más información, consulta Inhabilita las métricas de procesos.

Si quieres inhabilitar la recopilación de estas métricas en Windows, te recomendamos que actualices a la versión 2.0.0 o posterior del agente de operaciones. Para obtener más información, consulta Instala el agente de operaciones.

Tabla de métricas de procesos

Las strings de “tipo de métrica” de esta tabla deben tener el prefijo agent.googleapis.com/processes/. Este prefijo se omitió en las entradas de la tabla. Cuando consultes una etiqueta, usa el prefijo metric.labels.. Por ejemplo, metric.labels.LABEL="VALUE".

Tipo de métrica Etapa de lanzamiento
Nombre visible
Clase, tipo, unidad
Recursos supervisados
Descripción
Etiquetas
count_by_state GA
Procesos
GAUGEDOUBLE1
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Recuento de procesos en el estado determinado. Solo en Linux. Se tomaron muestras cada 60 segundos.
state: ejecución, suspensión, zombis, etcétera.
cpu_time GA
Procesamiento de CPU
CUMULATIVEINT64us{CPU}
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Tiempo de CPU de un proceso determinado. Se tomaron muestras cada 60 segundos.
process: Nombre del proceso.
user_or_syst: Un usuario o proceso del sistema.
command: Procesar comando.
command_line: Línea de comandos de proceso, 1,024 caracteres como máximo.
owner: Propietario del proceso.
pid: ID de proceso.
disk/read_bytes_count GA
Procesa E/S de lectura en el disco
CUMULATIVEINT64By
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
E/S de lectura del disco de un proceso. Solo en Linux. Se tomaron muestras cada 60 segundos.
process: Nombre del proceso.
command: Procesar comando.
command_line: Línea de comandos de proceso, 1,024 caracteres como máximo.
owner: Propietario del proceso.
pid: ID de proceso.
disk/write_bytes_count GA
Procesa E/S de escritura en el disco
CUMULATIVEINT64By
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
E/S de escritura del disco de un proceso. Solo en Linux. Se tomaron muestras cada 60 segundos.
process: Nombre del proceso.
command: Procesar comando.
command_line: Línea de comandos de proceso, 1,024 caracteres como máximo.
owner: Propietario del proceso.
pid: ID de proceso.
fork_count GA
Recuento de bifurcaciones
CUMULATIVEINT641
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Cantidad total de procesos bifurcados. Solo en Linux. Se tomaron muestras cada 60 segundos.
rss_usage GA
Procesa la memoria residente
GAUGEDOUBLEBy
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Uso de memoria residente de un proceso determinado. Solo en Linux. Se tomaron muestras cada 60 segundos.
process: Nombre del proceso.
command: Procesar comando.
command_line: Línea de comandos de proceso, 1,024 caracteres como máximo.
owner: Propietario del proceso.
pid: ID de proceso.
vm_usage GA
Procesa memoria virtual
GAUGEDOUBLEBy
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Uso de VM del proceso determinado. Se tomaron muestras cada 60 segundos.
process: Nombre del proceso.
command: Procesar comando.
command_line: Línea de comandos de proceso, 1,024 caracteres como máximo.
owner: Propietario del proceso.
pid: ID de proceso.

Tabla generada el 1 de febrero de 2024 a las 18:05:28 UTC.

Determina la transferencia actual

Puedes usar el Explorador de métricas a fin de ver cuántos datos transfieres actualmente para las métricas de procesos. Usa el siguiente procedimiento:

  1. En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Explorador de métricas:

    Ir al Explorador de métricas

  2. En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea  MQL o  PromQL.

  3. Verifica que MQL esté seleccionado en el botón de activación Lenguaje. El botón de activación de lenguaje se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.

  4. Para ver la cantidad total de puntos de métrica de proceso de tus recursos gce_instance y aws_ec2_instance, haz lo siguiente:

    1. Ingrese la siguiente 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. Haga clic en Ejecutar consulta. En el gráfico resultante, se muestran los valores para cada tipo de recurso.

Estima el costo de las métricas

En los ejemplos de precios de Monitoring, se ilustra cómo puedes estimar el costo de la transferencia de métricas. Estos ejemplos se pueden aplicar a las métricas de procesos.

  • Se realizan muestras de todas las métricas de procesos cada 60 segundos y todas escriben datos que se cuentan como ocho bytes para la determinación de los precios.

  • Los precios de las métricas de procesos se establecen en un 5% del costo de volumen estándar usado en los ejemplos de precios. Por lo tanto, si suponemos que todas las métricas en las situaciones descritas en esos ejemplos son métricas de procesos, puedes usar el 5% del costo total para cada situación como una estimación del costo de métricas de procesos.

Inhabilita la recopilación de métricas de proceso

Existen varias maneras de inhabilitar la recopilación de estas métricas por el agente de operaciones (versiones 2.0.0 y posteriores) y por el agente de Monitoring heredado en Linux.

Los agentes se ejecutan solo en las VM de Compute Engine y, en el agente de Monitoring, las VM de Amazon Elastic Compute Cloud (EC2). Estos procedimientos se aplican solo a esas plataformas.

No puedes inhabilitar la recopilación mediante el agente de operaciones si ejecutas versiones anteriores a la 2.0.0 o el agente de Monitoring heredado en Windows. Si quieres inhabilitar la recopilación de estas métricas en Windows, te recomendamos que actualices a la versión 2.0.0 o posterior del agente de operaciones. Para obtener más información, consulta Instala el agente de operaciones.

El procedimiento general se ve de la siguiente manera:

  1. Conéctate a la VM.

  2. Haz una copia del archivo de configuración existente como una copia de seguridad. Almacena la copia de seguridad fuera del directorio de configuración del agente, de modo que el agente no intente cargar ambos archivos. Por ejemplo, con el siguiente comando, se crea una copia del archivo de configuración para el agente de Monitoring en Linux:

    cp /etc/stackdriver/collectd.conf BACKUP_DIR/collectd.conf.bak
    
  3. Cambia la configuración mediante una de las opciones que se describen a continuación:

  4. Reinicia el agente para recoger la configuración nueva:

    • Agente de supervisión: sudo service stackdriver-agent restart
    • Agente de operaciones: sudo service google-cloud-ops-agent restart
  5. Verifica que las métricas del proceso ya no se recopilen para esta VM:

    1. Selecciona Explorador de métricas.

    2. Haz clic en MQL.

    3. Para un recurso gce_instance, ingresa la siguiente consulta y reemplaza VM_NAME por el nombre de esta VM:

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

      Para un recurso aws_ec2_instance, reemplaza gce_instance en la consulta.

    4. Haga clic en Ejecutar consulta.

Agente de operaciones en Linux o Windows

La ubicación del archivo de configuración del agente de operaciones depende del sistema operativo:

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

Para inhabilitar la recopilación de todas las métricas de procesos del agente de operaciones, agrega lo siguiente al archivo config.yaml:

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

Esto excluye las métricas de procesos de la recopilación en el procesador metrics_filter que se aplica a la canalización predeterminada en el servicio metrics.

Si deseas obtener más información sobre las opciones de configuración para el agente de operaciones, consulta Configura el agente de operaciones.

Agente de supervisión en Linux

Tienes las siguientes opciones para inhabilitar la recopilación de métricas de procesos con el agente heredado de Monitoring:

En las siguientes secciones, se describe cada opción y se enumeran los beneficios y riesgos asociados con ella.

Modifica el archivo de configuración del agente

Con esta opción, editas de forma directa el archivo de configuración principal del agente, /etc/stackdriver/collectd.conf, para quitar las secciones que habilitan la recopilación de las métricas del proceso.

Procedimiento

Hay tres grupos de eliminaciones que debes realizar en el archivo collectd.conf:

  1. Borra la siguiente directiva LoadPlugin y la configuración del complemento:

    LoadPlugin processes
    
    <Plugin "processes">
      ProcessMatch "all" ".*"
      Detail "ps_cputime"
      Detail "ps_disk_octets"
      Detail "ps_rss"
      Detail "ps_vm"
    </Plugin>
    
  2. Borra la siguiente directiva PostCacheChain y la configuración de la cadena 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. Borra la cadena MaybeThrottleProcesses que usa la cadena 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>
    
Beneficios y riesgos
  • Beneficios
    • Reduces los recursos que consume el agente, ya que las métricas nunca se recopilan.
    • Si realizaste otros cambios en tu archivo collectd.conf, es posible que puedas conservar esos cambios con facilidad.
  • Riesgos
    • Debes usar la cuenta root para editar este archivo de configuración.
    • Corres el riesgo de ingresar errores tipográficos en el archivo.

Reemplaza el archivo de configuración del agente

Con esta opción, reemplazarás el archivo de configuración principal del agente por una versión editada con las secciones relevantes que se quitaron.

Procedimiento
  1. Descarga el archivo editado previamente, collectd-no-process-metrics.conf, del repositorio de GitHub al directorio /tmp y, luego, haz lo siguiente:

    cd /tmp && curl -sSO https://raw.githubusercontent.com/Stackdriver/agent-packaging/master/collectd-no-process-metrics.conf
    
  2. Reemplaza el archivo collectd.conf existente por el archivo editado previamente:

    cp /tmp/collectd-no-process-metrics.conf /etc/stackdriver/collectd.conf
    
Beneficios y riesgos
  • Beneficios
    • Reduces los recursos que consume el agente, ya que las métricas nunca se recopilan.
    • No es necesario que edites el archivo de forma manual como root.
    • Las herramientas de administración de configuración pueden reemplazar fácilmente un archivo.
  • Riesgos
    • Si realizaste otros cambios en el archivo collectd.conf, debes combinar esos cambios en el archivo de reemplazo.

Soluciona problemas

Los procedimientos que se describen en este documento son cambios en la configuración del agente, por lo que los siguientes problemas son los más probables:

  • No hay privilegios suficientes para editar los archivos de configuración. Los archivos de configuración deben editarse desde la cuenta root.
  • Introducción de errores tipográficos en el archivo de configuración, si lo editas directamente.

Para obtener más información para resolver otros problemas, consulta Solución de problemas del agente de Monitoring.

Agente de supervisión en Windows

No puedes inhabilitar la recopilación de métricas del proceso mediante el agente de Monitoring heredado que se ejecuta en las VM de Windows. Este agente no se puede configurar. Si quieres inhabilitar la recopilación de estas métricas en Windows, te recomendamos que actualices a la versión 2.0.0 o posterior del agente de operaciones. Para obtener más información, consulta Instala el agente de operaciones.

Si ejecutas el agente de operaciones, consulta Agente de operaciones en Linux o Windows.