JavaPlugin-Exporter

  • Linux

  • Windows

Mit dem Virtimo JavaPlugin-Exporter lassen sich eigene Plugins mit Java programmieren, ohne sich um die technische Einbindung in den VIMON Gedanken machen zu müssen. Derzeit sind folgende Plugins verfügbar und können dem JavaPlugin-Exporter hinzugefügt werden:

Konfiguration

In der Basisvariante des Exporters ist nur der HelloWorldExporter vorhanden, welcher ausschließlich während der Einrichtung des Exporters aktiv sein sollte und zu Testzwecken dient. Alle Weiteren Exporter werden als .jar-Datei im Ordner des Exporters (vimon/exporter/javaplugin_exporter/) abgelegt und müssen über die Konfiguration aktiviert werden.

Die Konfiguration für den JavaPlugin-Exporter befindet sich in der Datei vimon/config/javaplugin_exporter/javaplugin_exporter.yml.

Hier wird festgelegt, welche der verfügbaren Plugins auf welchen Ports gestartet werden sollen. Allein ist der JavaPlugin-Exporter nicht lauffähig, sondern dient nur als Basis für die konkreten Plugins.

logLevel: FINE # ALL, CONFIG, FINE, FINER, FINEST, INFO, SEVERE, WARNING, OFF
host: localhost

plugins:
  - name: HelloWorldExporter
    active: true
    port: 9106

  - name: xxxExporter
    active: false
    port: 9103

Diese Konfiguration würde dazu führen, dass das Plugin HelloWorldExporter auf dem Port 9106 bereitgestellt wird. Der xxxExporter wird hier nicht benötigt, steht auf active: false und wird daher nicht gestartet.

Konfiguration der Plugins

Neben den Konfigurationen für den JavaPlugin-Exporter erhält jedes Plugin seine individuelle Konfigurationsdatei. Die Konfigurationen aller Plugins werden im Verzeichnis vimon/config/javaplugin_exporter/plugins abgelegt und im Beispiel des HelloWorldExporters helloworld_exporter.yml genannt. Die Plugin-Konfigurationen sind in den jeweiligen Unterseiten der Plugins beschrieben.

Prometheus Konfiguration

Der JavaPlugin-Exporter öffnet für jedes Plugin einen eigenen Port auf dem Server. Daher ist die Prometheus Scrape Config in den Unterseiten der jeweiligen Exporter beschrieben.

Logging

Der JavaPlugin-Exporter schreibt seine Logs in die Datei vimon/data/logs/javaplugin_exporter.log. Wie auch bei den Konfigurationen erhält jedes gestartete Plugin seine eigene Logdatei im Ordner vimon/data/logs/javaplugins/.

Eigenentwicklung von Plugins

Des JavaPlugin-Exporters ermöglicht für Anwendungsfälle, die nicht durch andere Exporter abgedeckt werden können, den Bau eigener Plugins. Hierzu folgt eine kurze Beschreibung, wie diese Plugins gebaut werden können.

Vorbereitung

Folgende Dinge werden für die Entwicklung eigener Plugins benötigt:

  • javaplugin_exporter.jar

  • JDK 11

  • Maven

  • Entwicklungsumgebung (z.B. IntelliJ)

  • CustomPluginTemplate Repository

In der pom.xml des CustomPluginTemplates muss der Pfad zum javaplugin_exporter.jar angegeben werden, damit die Dependencies aufgelöst werden können.

Entwicklung

  1. Klassen, Ordner und Konfigurationsdateien umbenennen.
    Es empfiehlt sich, die bestehenden Namenskonventionen auch für das neue Plugin einzuhalten, da der JavaPlugin-Exporter diese an einigen Stellen benötigt, um das selbst entwickelte Plugin zu starten.

  2. Die Klasse CustomPluginTemplate (welche nun anders heißt) enthält eine Funktion execute. Diese Methode wird bei jedem Request an den Exporter ausgeführt, innerhalb dieser Funktion wird die Fachlogik implementiert. Wichtig ist, dass die Methode immer ein Set von Prometheusmetriken zurückgibt.

  3. Das neue Plugin über die Main Methode testen.
    Eine passende RunConfiguration ist im Repository vorhanden (für IntelliJ). Zum Start müssen der Pfad zum Config- und Log-Ordner als Argument übergeben werden.

Bereitstellung des Plugins

Nachdem die Entwicklung abgeschlossen ist, wird das Plugin mit dem Befehl mvn clean package gebaut. Das erstellte Jar muss entsprechend der Namenskonvention umbenannt werden und kann anschließend mit der entsprechenden Konfiguration auf einem Server abgelegt werden, auf dem der JavaPlugin-Exporter bereits installiert ist.