JVM

La integración de JVM recoge métricas de JVM expuestas a través de Java Management Extensions (JMX). La integración recoge principalmente métricas sobre la memoria y la recolección de elementos no utilizados. También hay disponibles métricas de tiempo de ejecución adicionales, como el recuento de subprocesos y las clases cargadas.

Para obtener más información sobre JVM, consulta la documentación de JVM.

Requisitos previos

Para recoger la telemetría de JVM, debes instalar el Agente de operaciones:

  • Para las métricas, instala la versión 2.2.0 o una posterior.

Esta integración es compatible con las versiones de JVM Java 16 y Java 11.

Configurar la instancia de JVM

Para exponer un endpoint JMX, debes definir la propiedad del sistema com.sun.management.jmxremote.port al iniciar la JVM. También recomendamos asignar el mismo puerto a la propiedad del sistema com.sun.management.jmxremote.rmi.port.

Para exponer un endpoint JMX de forma remota, también debe definir la propiedad del sistema java.rmi.server.hostname.

Para definir las propiedades del sistema mediante argumentos de línea de comandos, añade el prefijo -D al nombre de la propiedad al iniciar la JVM.

Por ejemplo, para asignar el valor 9999 al puerto com.sun.management.jmxremote.port, especifica lo siguiente al iniciar la JVM:

-Dcom.sun.management.jmxremote.port=9999

Configurar el agente de operaciones para JVM

Sigue la guía para configurar el agente de operaciones, añade los elementos necesarios para recoger telemetría de las instancias de JVM y reinicia el agente.

Configuración de ejemplo

Los siguientes comandos crean la configuración para recoger e ingerir telemetría de JVM:

set -e

# Check if the file exists
if [ ! -f /etc/google-cloud-ops-agent/config.yaml ]; then
  # Create the file if it doesn't exist.
  sudo mkdir -p /etc/google-cloud-ops-agent
  sudo touch /etc/google-cloud-ops-agent/config.yaml
fi

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    jvm:
      type: jvm
      endpoint: service:jmx:rmi:///jndi/rmi://127.0.0.1:9010/jmxrmi
  service:
    pipelines:
      jvm:
        receivers:
          - jvm
EOF

Para que estos cambios se apliquen, debes reiniciar el agente de Ops:

Linux

  1. Para reiniciar el agente, ejecuta el siguiente comando en tu instancia:
    sudo systemctl restart google-cloud-ops-agent
    
  2. Para confirmar que el agente se ha reiniciado, ejecuta el siguiente comando y verifica que los componentes "Metrics Agent" y "Logging Agent" se han iniciado:
    sudo systemctl status "google-cloud-ops-agent*"
    

Windows

  1. Conéctate a tu instancia mediante RDP o una herramienta similar e inicia sesión en Windows.
  2. Abre un terminal de PowerShell con privilegios de administrador haciendo clic con el botón derecho en el icono de PowerShell y seleccionando Ejecutar como administrador.
  3. Para reiniciar el agente, ejecuta el siguiente comando de PowerShell:
    Restart-Service google-cloud-ops-agent -Force
    
  4. Para confirmar que el agente se ha reiniciado, ejecuta el siguiente comando y verifica que los componentes "Metrics Agent" y "Logging Agent" se han iniciado:
    Get-Service google-cloud-ops-agent*
    

Configurar recogida de métricas

Para ingerir métricas de JVM, debe crear un receptor para las métricas que produce JVM y, a continuación, crear una canalización para el nuevo receptor.

Este receptor no admite el uso de varias instancias en la configuración, por ejemplo, para monitorizar varios endpoints. Todas estas instancias escriben en la misma serie temporal y Cloud Monitoring no tiene forma de distinguirlas.

Para configurar un receptor de sus métricas de jvm, especifique los siguientes campos:

Campo Predeterminado Descripción
collection_interval 60s Un valor de duración, como 30s o 5m.
endpoint localhost:9999 La URL del servicio JMX o el host y el puerto que se han usado para crear la URL del servicio. Este valor debe tener el formato service:jmx:<protocol>:<sap> o host:port. Los valores con el formato host:port se usan para crear una URL de servicio service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi.
password La contraseña configurada si JMX está configurado para requerir autenticación.
type Este valor debe ser jvm.
username El nombre de usuario configurado si JMX está configurado para requerir autenticación.

Qué se monitoriza

En la siguiente tabla se muestra la lista de métricas que recoge el agente de Ops de la instancia de JVM.

Tipo de métrica 
Tipo
Recursos monitorizados
Etiquetas
workload.googleapis.com/jvm.classes.loaded
GAUGEINT64
gce_instance
 
workload.googleapis.com/jvm.gc.collections.count
CUMULATIVEINT64
gce_instance
name
workload.googleapis.com/jvm.gc.collections.elapsed
CUMULATIVEINT64
gce_instance
name
workload.googleapis.com/jvm.memory.heap.committed
GAUGEINT64
gce_instance
 
workload.googleapis.com/jvm.memory.heap.init
GAUGEINT64
gce_instance
 
workload.googleapis.com/jvm.memory.heap.max
GAUGEINT64
gce_instance
 
workload.googleapis.com/jvm.memory.heap.used
GAUGEINT64
gce_instance
 
workload.googleapis.com/jvm.memory.nonheap.committed
GAUGEINT64
gce_instance
 
workload.googleapis.com/jvm.memory.nonheap.init
GAUGEINT64
gce_instance
 
workload.googleapis.com/jvm.memory.nonheap.max
GAUGEINT64
gce_instance
 
workload.googleapis.com/jvm.memory.nonheap.used
GAUGEINT64
gce_instance
 
workload.googleapis.com/jvm.memory.pool.committed
GAUGEINT64
gce_instance
name
workload.googleapis.com/jvm.memory.pool.init
GAUGEINT64
gce_instance
name
workload.googleapis.com/jvm.memory.pool.max
GAUGEINT64
gce_instance
name
workload.googleapis.com/jvm.memory.pool.used
GAUGEINT64
gce_instance
name
workload.googleapis.com/jvm.threads.count
GAUGEINT64
gce_instance
 

Verificar la configuración

En esta sección se describe cómo verificar que has configurado correctamente el receptor JVM. El agente de Ops puede tardar uno o dos minutos en empezar a recoger datos de telemetría.

Para verificar que las métricas de JVM se envían a Cloud Monitoring, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página  Explorador de métricas:

    Ve al explorador de métricas.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. En la barra de herramientas del panel de creación de consultas, selecciona el botón cuyo nombre sea  MQL o  PromQL.
  3. Verifica que PromQL esté seleccionado en el interruptor Idioma. El interruptor de idioma se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.
  4. Introduce la siguiente consulta en el editor y haz clic en Ejecutar consulta:
    {"workload.googleapis.com/jvm.memory.heap.used", monitored_resource="gce_instance"}
    

Ver panel de control

Para ver las métricas de JVM, debe tener configurado un gráfico o un panel de control. La integración de JVM incluye uno o varios paneles de control. Los paneles de control se instalan automáticamente después de configurar la integración y cuando el agente de Ops ha empezado a recoger datos de métricas.

También puedes ver vistas previas estáticas de los paneles de control sin instalar la integración.

Para ver un panel de control instalado, siga estos pasos:

  1. En la Google Cloud consola, ve a la página  Paneles de control:

    Ve a Paneles.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. Seleccione la pestaña Lista de paneles de control y, a continuación, elija la categoría Integraciones.
  3. Haga clic en el nombre del panel de control que quiera ver.

Si has configurado una integración, pero el panel de control no se ha instalado, comprueba que el agente de operaciones se esté ejecutando. Si no hay datos de métricas para un gráfico del panel de control, no se podrá instalar el panel. Una vez que el agente de Ops empiece a recoger métricas, se instalará el panel de control.

Para ver una vista previa estática del panel de control, siga estos pasos:

  1. En la Google Cloud consola, ve a la página  Integraciones:

    Ve a Integraciones.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. Haz clic en el filtro de plataforma de implementación Compute Engine.
  3. Busca la entrada de JVM y haz clic en Ver detalles.
  4. Seleccione la pestaña Paneles para ver una vista previa estática. Si el panel de control está instalado, puedes acceder a él haciendo clic en Ver panel de control.

Para obtener más información sobre los paneles de control de Cloud Monitoring, consulta Paneles de control y gráficos.

Para obtener más información sobre cómo usar la página Integraciones, consulta el artículo Gestionar integraciones.

Instalar políticas de alertas

Las políticas de alertas indican a Cloud Monitoring que te envíe una notificación cuando se produzcan las condiciones especificadas. La integración de JVM incluye una o varias políticas de alertas que puedes usar. Puedes ver e instalar estas políticas de alertas desde la página Integraciones de Monitoring.

Para ver las descripciones de las políticas de alertas disponibles e instalarlas, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página  Integraciones:

    Ve a Integraciones.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. Busca la entrada de JVM y haz clic en Ver detalles.
  3. Selecciona la pestaña Alertas. En esta pestaña se ofrecen descripciones de las políticas de alertas disponibles y se proporciona una interfaz para instalarlas.
  4. Instala las políticas de alertas. Las políticas de alertas necesitan saber dónde enviar las notificaciones de que se ha activado una alerta, por lo que requieren información para la instalación. Para instalar políticas de alertas, haz lo siguiente:
    1. En la lista de políticas de alertas disponibles, selecciona las que quieras instalar.
    2. En la sección Configurar notificaciones, selecciona uno o varios canales de notificación. Puedes inhabilitar el uso de canales de notificación, pero si lo haces, tus políticas de alertas se activarán de forma silenciosa. Puedes consultar su estado en Monitorización, pero no recibirás ninguna notificación.

      Para obtener más información sobre los canales de notificación, consulta el artículo Gestionar canales de notificación.

    3. Haz clic en Crear políticas.

Para obtener más información sobre las políticas de alertas en Cloud Monitoring, consulta la introducción a las alertas.

Para obtener más información sobre cómo usar la página Integraciones, consulta el artículo Gestionar integraciones.

Siguientes pasos

Para ver una guía sobre cómo usar Ansible para instalar el Agente de operaciones, configurar una aplicación de terceros e instalar un panel de control de ejemplo, consulta el vídeo Instalar el Agente de operaciones para solucionar problemas con aplicaciones de terceros.