JVM

Le récepteur JVM peut récupérer des métriques à partir d'une machine virtuelle Java (JVM) via des extensions de gestion Java (JMX).

Ce récepteur ne collecte que les métriques de la JVM. Actuellement, l'agent Ops ne collecte pas de métriques provenant d'applications Java, telles que Cassandra et Tomcat.

Prérequis

Pour collecter des métriques JVM, vous devez installer l'agent Ops, version 2.2.0 ou ultérieure.

Configurer votre JVM

Pour exposer un point de terminaison JMX, vous devez définir la propriété système com.sun.management.jmxremote.port lors du démarrage de la JVM. Nous vous recommandons également de définir la propriété système com.sun.management.jmxremote.rmi.port sur le même port.

Pour exposer un point de terminaison JMX à distance, vous devez également définir la propriété système java.rmi.server.hostname.

Pour définir les propriétés système à l'aide d'arguments de ligne de commande, ajoutez le préfixe -D au nom de la propriété lors du démarrage de la JVM.

Par exemple, pour définir com.sun.management.jmxremote.port sur le port 9999, spécifiez les éléments suivants lors du démarrage de la JVM :

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

Configurer l'agent Ops pour la JVM

En suivant le guide de configuration de l'agent Ops, ajoutez les éléments requis pour collecter les métriques de vos instances JVM, puis redémarrez l'agent.

Collecte de métriques

Pour collecter les métriques d'instances JVM, vous devez créer un récepteur pour les métriques JVM, puis créer un pipeline pour le nouveau récepteur. Pour configurer un récepteur pour vos métriques JVM, spécifiez les champs suivants :

Champ Par défaut Description
type La valeur doit être égale à jvm.
endpoint localhost:9999 URL du service JMX : hôte ou port utilisé pour créer l'URL du service. Cette valeur doit respecter le format service:jmx:<protocol>:<sap> ou host:port. Les valeurs du formulaire host:port sont utilisées pour créer l'URL d'un service de service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi.
username Nom d'utilisateur configuré si JMX est configuré de façon à exiger une authentification.
password Mot de passe configuré si JMX est configuré pour exiger une authentification.
collection_interval 60s Une valeur time.Duration, telle que 30s ou 5m.

Exemple de configuration :

Dans cet exemple, les propriétés système com.sun.management.jmxremote.port et com.sun.management.jmxremote.rmi.port ont été définies sur 9999 et la propriété système java.rmi.server.hostname sur 127.0.0.1.

metrics:
  receivers:
    jvm_metrics:
      type: jvm
      endpoint: localhost:9999
      collection_interval: 60s
  service:
    pipelines:
      jvm_pipeline:
        receivers:
          - jvm_metrics

Métriques surveillées

Le tableau suivant fournit la liste des métriques que l'agent Ops collecte à partir de l'instance JVM.

Type de métrique
Genre, type
Ressources surveillées
Libellés
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