Interoperability From OpenTelemetry to Kieker: Demonstrated as Export from the Astronomy Shop
David Georg Reichelt, Shinhyung Yang, Wilhelm Hasselbring
TL;DR
The paper addresses interoperability between Kieker and OpenTelemetry by enabling the transformation of OpenTelemetry traces into Kieker's analysis-ready format. A key challenge is reconciling Kieker's synchronous trace model with OpenTelemetry's asynchronous, multi-parent traces, which is handled by marking traces as asynchronous (via a flag) and encoding execution context using $eoi$ and $ess$. The authors demonstrate the approach on the Astronomy Shop OpenTelemetry demo, using the kieker-otel-transformer to produce traces and visualizing a call-tree segment with Kieker's analysis tools. Future work includes full OpenTelemetry data-format support within Kieker and exploring a hybrid tracing strategy that combines Kieker-instrumented code with external OpenTelemetry traces to minimize overhead.
Abstract
The observability framework Kieker provides a range of analysis capabilities, but it is currently only able to instrument a smaller selection of languages and technologies, including Java, C, Fortran, and Python. The OpenTelemetry standard aims for providing reference implementations for most programming languages, including C# and JavaScript, that are currently not supported by Kieker. In this work, we describe how to transform OpenTelemetry tracing data into the Kieker framework. Thereby, it becomes possible to create for example call trees from OpenTelemetry instrumentations. We demonstrate the usability of our approach by visualizing trace data of the Astronomy Shop, which is an OpenTelemetry demo application.
