Skip to content

Contribution Challenge! Add OpenTelementry to Eclipse eCAL to help with debugging inter-process communication πŸ›

License

Notifications You must be signed in to change notification settings

Eclipse-SDV-Hackathon-Accenture/trace-debugging-for-eclipse-ecal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Trace Debugging for Eclipse eCALβ„’ πŸ›

This is a contribution challenge. The goal is to add trace debugging to Eclipse eCALβ„’ using Open Telemetry.

πŸ“š About

Eclipse eCAL is a publish subscribe Middleware with the main focus on research and development of autonomous driving algorithms.

  • A Publisher publishes data to a topic, identified by a name.
  • A Subscriber subscribes to a topic, identified by a name. When it received data, it calls a callback function.

In a 1:1 connection, that looks like follows:

As you can think, with more nodes, it is getting complicated! Especially, when a callback is still running while new data is being published, that data has to be dropped.

Let's look at another example:

The PubSub2 node may now ask:

Why wasn't I informed about msg A? πŸ€”

Well, nobody knows, because the charts you are seeing above don't exist, yet. 😣

Debugging this inter-process time-related behavior is hard. You cannot use traditional debuggers like gdb, as that would modify the behavior That's why we want to add trace debugging to eCAL.

🎯 Goal

The goal is to know: What is happening when? And why?

  • When was the data published?
  • How long did it take to transmit the data?
  • How long did the callback need to process the data?
  • Who triggered the callback?

OpenTelemetry is a library that can be used to generate traces at runtime without actually debugging and/or stopping the process. These traces can be visualized using a tool like Jaeger:

Jaeger

πŸ’‘ Need to know

  • C++
  • CMake

We recommend using Windows or Linux. MacOS may work too, but eCAL is poorly tested on that OS.

πŸ‘¨β€πŸ« Hack-Coaches

  • Kerstin Keller
  • Florian Reimold
  • Kristof Hannemann
  • Rex Schilasky

πŸ›  Template Setup

  1. Checkout eCAL

    git clone https://github.com/eclipse-ecal/ecal.git
    cd ecal
    git submodule init
    git submodule update
  2. CMake and build a minimalistic eCAL configuration

    mkdir _build
    cd _build
    
    cmake .. -DBUILD_APPS=OFF -DHAS_QT5=OFF -DHAS_HDF5=OFF -DECAL_THIRDPARTY_BUILD_FINEFTP=OFF -DECAL_THIRDPARTY_BUILD_CURL=OFF -DECAL_THIRDPARTY_BUILD_HDF5=OFF -DECAL_THIRDPARTY_BUILD_QWT=OFF -DCMAKE_BUILD_TYPE=Debug
    
    cmake --build . --config Debug
  3. Start Samples

    • Start ecal_sample_person_snd and ecal_sample_person_rec from the _build/bin/ directory:

      eCAL Person samples

  4. Add Open Telementry

    • Well, you are on your own on this one, but we are here to help! 😊

πŸ‘€ All necessary links

Eclipse eCAL:

Open Telemetry

Jaeger:

About

Contribution Challenge! Add OpenTelementry to Eclipse eCAL to help with debugging inter-process communication πŸ›

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published