Recueillir des attributs JMX composites

JMXFetch

Dans l’Agent, les fichiers yaml des intégrations suivantes sont tous lus par JMXFetch :

Attributs JMXFetch

JMXFetch peut recueillir deux types d’attributs JMX (simples et composites).

Attributs simples

Il s’agit des attributs integer, float, double, long, boolean, etc.

Remarque : pour les valeurs booléennes, 1 correspond à « true » et 0 correspond à « false ». Consultez la liste des types pris en charge.

Vous pouvez utiliser les commandes list pour obtenir un aperçu de ce que votre intégration JMX actuelle recueille. Voici un extrait de sortie pour un attribut simple :

Matching: x/350. Bean name: java.lang - Attribute name: attribute_1 - Attribute type: java.lang.Integer

Cela correspond à la configuration suivante :

- include:
     domain: java.lang
     attribute:
       attribute_1:
         metric_type: counter
         alias: java.lang.Integer

JMXFetch extrait directement la valeur de l’attribut et l’utilise comme valeur de métrique. Consultez la documentation relative à JMX pour savoir comment la recueillir.

Attributs composites

Ces attributs peuvent être vus comme un tableau, une table de hachage ou encore un objet composé d’attributs « simples ».

Matching: x/350. Bean name: java.lang - Attribute name: HeapMemoryUsage - Attribute type: javax.management.openmbean.CompositeData

Dans ce cas, vous devez fournir plus de détails à JMXFetch pour indiquer comment utiliser cet attribut « composite » en vue de créer une valeur numérique pour une métrique.

Pour ce faire, utilisez un . pour spécifier le composant :

- include:
    domain: java.lang
    type: Memory
    attribute:
      HeapMemoryUsage.used:
        alias: jvm.heap_memory
        metric_type: gauge
      HeapMemoryUsage.committed:
        alias: jvm.heap_memory_committed
        metric_type: gauge

      # (...)

Comment afficher le niveau suivant de ces attributs composites ?

Le meilleur moyen d’afficher le niveau suivant consiste à utiliser JMXterm (voir ci-dessous).

java -jar /opt/datadog-agent/agent/checks/libs/jmxterm-1.0-DATADOG-uber.jar -l localhost:<PORT> -u <UTILISATEUR> -p <MOT_DE_PASSE>

Remarque : pour les versions 5.32.8 et ultérieures de l’Agent, le JAR jmxterm n’est pas intégré à l’Agent. Pour télécharger et utiliser jmxterm, référez-vous au projet upstream.

Utilisez ensuite la commande get pour extraire une métrique précise.