OpenTelemetry

OpenTelemetry ist ein moderner, offener Standard für Protokolle zur Erzeugung und Übertragung von Telemetriedaten wie Logs, Traces und Metriken. Schleupen.CS-Services, die als .NET Web-API implementiert sind, können Telemetriedaten per OpenTelemetry an einen konfigurierbaren Collector übertragen. Aufgrund der weitgreifenden Integration in diverse Software-Bibliotheken/Frameworks und des verfügbaren Toolings, löst OpenTelemetry im Rahmen von Schleupen.CS Web-APIs den bisherigen Technologie-Stack basierend auf Jaeger und OpenSearch (siehe Diagnose / Observability) ab.

Im Zuge der sogenannten Containerisierung werden die Schleupen.CS-Services sukzessive auf OpenTelementry umgestellt. Derzeit (Stand 27.1.2026) unterstützen unser API-Gateway sowie die privilegierte Hauptbuchschnittstelle und der CRM Konnektor OpenTelemetry wie hier beschrieben.

Verfügbare Telemetriedaten

OpenTelemetry kennt verschiedene Kategorien von Telemetriedaten, in der OpenTelemetry-Terminology Signals genannt. Eine Teilmenge dieser Signals wird durch die OpenTelemetry-Integration im Package Schleupen.CS.PI.SB.WebApi.OpenTelemetry.Net unterstützt. Im Folgenden sind die relevanten Signals beschrieben.

Metriken

Metriken sind Kennzahlen einer Anwendung, die zu deren Laufzeit erhoben und in periodischen Abständen an den konfigurierten Collector übermittelt werden. Einfache Beispiele sind die CPU- oder RAM-Auslastung.

Derzeit werden vordefinierte Metriken zu den folgenden Bereichen übertragen:

  • ASP.NET Core Server
  • HTTP Clients
  • Event Counters
  • .NET Runtime
  • Anwendungsprozess

Die Definition und Einbindung von benutzerdefinierten Metriken wird derzeit nicht unterstützt, auch wenn es technisch grundsätzlich möglich ist. Bei Bedarf müsste diese Funktionalität noch in das Package integriert werden.

Traces

Traces sind eine Sammlung von sogenannten Spans, die jeweils logisch zu einer übergreifenden Operation einer Anwendung gehören. Ein einzelner Span beschreibt dabei den zeitlichen Ablauf einer Teiloperation und verknüpft diesen zudem mit weiteren Metainformationen, wie z.B. den verwendeten Parametern oder Ergebnissen der Teiloperation. In Summe stellen die Spans eines einzelnen Traces den Ablauf und die zeitlichen Zusammenhänge einer einzelnen Operation, bestehend aus der Menge ihrer Teiloperationen, dar. Ein Beispiel dazu zeigt der folgende Screenshot des Aspire Dashboards für einen einzelnen Trace einer sehr einfachen Webanwendung.

Derzeit werden vordefinierte Instrumentationen zur Erzeugung der übertragenen Spans verwendet. Die Instrumentationen finden in den folgenden Bereichen statt:

  • ASP.NET Core Server
  • HTTP Clients
  • WCF-Aufrufe (SOAP Webservices)
  • Datenbankzugriff

Die benutzerdefinierte Generierung von Spans oder die Annotation der erzeugten Spans mit benutzerspezifischen Attributen werden derzeit nicht unterstützt, auch wenn es technisch grundsätzlich möglich ist. Bei Bedarf müsste diese Funktionalität noch in das Package integriert werden.

Gegenüber dem Jaeger-basierten Tracing bestehen derzeit zwei Einschränkungen bzgl. der übermittelten Span-Inhalte. Weder die Größe der Ergebnismenge von Datenbankabfragen noch die serverseitig generierten HTTP Response Bodies werden durch den OpenTelemetry Traces Exporter erfasst; clientseitig empfangene HTTP Response Bodies hingegen schon.

Logs

Logs umfassen strukturierte und unstrukturierte Meldungen zu bestimmten Anwendungsereignissen, die von den genutzten Frameworks/Bibliotheken oder den Entwicklern selbst erstellt werden.

Aktuell findet keine Übertragung von Logs per OpenTelemetry, sondern ausschließlich über die Diagnoseprotokollierung statt. Für eine zukünftige Version des Packages ist es jedoch geplant, auch Logs als Signal via OpenTelemetry zu unterstützen.

Chatbot not allowed
Cookie Consent mit Real Cookie Banner