GEDOPLAN
QuarkusCloud Computing

So sieht’s aus: Telemetry für Quarkus-Anwendungen

QuarkusCloud Computing
camera 19223 640

In Cloud-Anwendungen – aber durchaus nicht nur dort – interessieren wir uns dafür, wie die Anwendungen laufen, ob es ihnen „gut“ geht und wie sie sich untereinander aufrufen. Technisch sind das die Aspekte Metrics und Tracing.

Die CNCF (Cloud Native Computing Foundation) hat dafür schon seit Jahren ein Open-Source-Projekt namens Open Telemery, das u. a. APIs bereitstellt, mit denen diese sog. Telemetriedaten in Anwendungen erfasst und exportiert werden können. Für Java nimmt sich nun MicroProfile Telemetry des Themas an und für Quarkus gibt es passende Extensions!

Die Extension quarkus-opentelemetry unterstützt u. a. Tracing, d. h. die Verfolgung von Requests über ggf. mehrere Anwendungen hinweg. Solange man sich im Bereich von RESTful Services befindet, die mit Jakarta RESTful Webservices implementiert sind und die andere Services bei Bedarf mit MicroProfile Rest Client aufrufen, muss die Anwendung dafür kaum konfiguriert werden. Einzig die Adresse des Tracing Collectors ist (bspw. in application.properties) anzugeben:

quarkus.otel.exporter.otlp.endpoint=http://localhost:4317

Noch bequemer wird es während der Entwicklung, wenn man den für Quarkus ebenfalls verfügbaren Dev Service nutzt, d. h. die Adresse im Dev Mode nicht definiert und mittels der Extension quarkus-observability-devservices-lgtm einen Telemetry Collector aus dem Grafana-Projekt in einem Container hochfahren lässt. Grafana LGTM ist eine All-in-One-Lösung für L(ogging), G(rafana), T(races) und M(etrics), die aus einem Open Telemetry Collector, den Backends Loki für Logging, Tempo für Tracing und Prometeus für Metrics, sowie Grafana zur Visualisierung besteht.

grafana lgtm png

Sind in derart ausgerüstenen Anwendungen einige Requests durchgelaufen, kann man sich diese in ihrem zeitlichen Zusammenhang in Grafana aus der angebundenen Tempo-Datenbank visualisieren lassen.

tempo tracing png

Die Spezifikation MicroProfile Telemetry verlangt derzeit nur die Implementierung von Tracing, aber Quarkus unterstützt auch Metrics und Logging. Bei der oben genannten Extension müssen diese Aspekte in der Konfiguration eingeschaltet werden:

quarkus.otel.metrics.enabled=true
quarkus.otel.logs.enabled=true

Die von den Anwendungen exportierten Daten können dann in Grafana in den Datenbanken Prometeus bzw. Loki zentral eingesehen werden.

prometeus metrics
loki logging png

Schon ohne wesentliche Konfiguration und ganz ohne spezielle Programmierung werden Quarkus-Anwendungen so mit ganz niedriger Einstiegshürde „observable“. Man kann aber auch recht leicht Tracing-Daten anreichern oder eigene sog. Spans einbringen. Ebenso lassen sich anwendungsspezifische Metriken bspw. als Counter oder Histogramme programmieren.

Mehr Details finden Sie in Open Telemetry und MicroProfile Telemetry – oder noch besser: Kommen Sie doch zu einem unserer Quarkus-Seminare!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

IT-Training - GEDOPLAN
Java SE

Is 1.0 equals 1.00?

If you use BigDecimal for floating point numbers, you may want to compare them by equals. But beware: BigDecimal.equals takes…
jackson views
Jakarta EE (Java EE)

Jackson JSON Prozessor

Jackson ist eine OpenSource Bibliothek zur Umwandlung von Java Objekten in JSON-Strings und von JSON-Strings in Java Objekte. Jackson kann…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!