Automatic Instrumentation of C++ Applications in a Kubernetes Cluster using eBPF

  • Maximilian Johannes Bauer

    Student thesis: Master's Thesis

    Abstract

    The collection of telemetry data like metrics, logs and traces has become an important part of modern software development as it simplifies the process of identifying performance issues or unexpected application behavior. It is of significant importance to detect failures as early as possible to avoid costly down-times. To detect failures and unexpected behavior, two approaches can be used: automatic and manual instrumentation. The disadvantage of manual instrumentation is the fact, that it requires deep integration within the application, which may lead to inconsistent telemetry collection across multiple services. OpenTelemetry is an observability framework used to collect telemetry data from applications. Currently, it only supports the manual instrumentation of C++ applications. This thesis, shows how the technology eBPF can be leveraged to automatically instrument C++ applications to collect telemetry data in a Kubernetes environment. Additionally, the thesis provides a comprehensive comparison of the eBPF-based automatic instrumentation solution and the traditional manual instrumentation approach using OpenTelemetry. This comparison analyzes the performance, based on request latency, and the resource requirements of each method. This thesis demonstrates that manual instrumentation with OpenTelemetry provides better performance than the automatic instrumentation approach with eBPF. The manual instrumentation approach not only has lower request latencies, but also lower resource requirements than the eBPF approach.
    Date of Award2025
    Original languageEnglish
    SupervisorStefan Hinterholzer (Supervisor)

    Studyprogram

    • Software Engineering

    Cite this

    '