Konfigurieren von JMX-Metriken

Application Insights Java 3.x erfasst standardmäßig einige der Java Management Extensions (JMX)-Metriken, allerdings ist dies in vielen Fällen unzureichend. In dieser Dokumentation werden die JMX-Konfigurationsoptionen ausführlich beschrieben.

Wie werden zusätzliche JMX-Metriken erfasst?

Die Erfassung von JMX-Metriken kann durch Hinzufügen eines "jmxMetrics"-Abschnitts zur Datei „applicationinsights.json“ konfiguriert werden. Geben Sie einen Namen für die Metrik auf die Weise an, wie er im Azure-Portal in der Application Insights-Ressource angezeigt werden soll. Objektname und -attribut sind für jede der Metriken erforderlich, die Sie sammeln möchten. Sie können * in Objektnamen für Platzhalter im Glob-Format (Details) verwenden.

Wie erfahre ich, welche Metriken konfiguriert werden können?

Diese Frage trifft den Nagel auf den Kopf: Sie müssen die Objektnamen und Attribute kennen, deren Eigenschaften sich für verschiedene Bibliotheken, Frameworks und Anwendungsserver unterscheiden sowie häufig unzureichend dokumentiert sind. Glücklicherweise ist es einfach, genau zu ermitteln, welche JMX-Metriken für Ihre spezielle Umgebung unterstützt werden.

Um die verfügbaren Metriken anzuzeigen, legen Sie die Selbstdiagnoseebene in Ihrer applicationinsights.json-Konfigurationsdatei auf DEBUG fest, z. B.:

{
  "selfDiagnostics": {
    "level": "DEBUG"
  }
}

Verfügbare JMX-Metriken mit Objektnamen und Attributnamen werden in der Application Insights-Protokolldatei angezeigt.

Die Protokolldateiausgabe ähnelt den folgenden Beispielen. In einigen Fällen kann sie sehr umfangreich sein.

Screenshot der verfügbaren JMX-Metriken in der Protokolldatei

Sie können auch ein Befehlszeilentool verwenden, um die verfügbaren JMX-Metriken zu überprüfen.

Konfigurationsbeispiel

Wenn Sie wissen, welche Metriken verfügbar sind, können Sie den Agent für die Erfassung dieser Metriken konfigurieren. Bei der ersten Konfiguration handelt es sich um ein Beispiel für eine geschachtelte Metrik namens LastGcInfo, die mehrere Eigenschaften umfasst. Das Ziel besteht darin, GcThreadCount zu erfassen.

"jmxMetrics": [
      {
        "name": "Demo - GC Thread Count",
        "objectName": "java.lang:type=GarbageCollector,name=PS MarkSweep",
        "attribute": "LastGcInfo.GcThreadCount"
      },
      {
        "name": "Demo - GC Collection Count",
        "objectName": "java.lang:type=GarbageCollector,name=PS MarkSweep",
        "attribute": "CollectionCount"
      },
      {
        "name": "Demo - Thread Count",
        "objectName": "java.lang:type=Threading",
        "attribute": "ThreadCount"
      }
],

Wo finde ich die JMX-Metriken in Application Insights?

Sie können die während der Ausführung Ihrer Anwendung gesammelten JMX-Metriken anzeigen, indem Sie zu Ihrer Application Insights-Ressource im Azure-Portal navigieren. Wählen Sie wie unten gezeigt auf der Registerkarte „Metriken“ das Dropdownmenü aus, um die Metriken anzuzeigen.

Screenshot: Metriken im Portal