tremor-rs / tremor-runtime

Main Tremor Project Rust Codebase
https://www.tremor.rs
Apache License 2.0
842 stars 127 forks source link

Consider adding tracing facilities to tremor for developer debugging #2021

Open darach opened 1 year ago

darach commented 1 year ago

Describe the problem you are trying to solve

As tremor-based applications and systems become richer and more complex the logging, metrics and other facilities available via tremor-cli or the rust toolchains aren't always efficient for diagnosting or troubleshooting.

Trace debugging would be a useful addition so that tremor developers can selectively trace into parts of the tremor runtime to analyse issues with their applications.

Describe the solution you'd like

As above.

Notes

Depending on how invasive trace debugging facilities at an internal/implementation ( rust ) the facility would need to be an RFC may be required if/where language support for tracing is desireable.

This is a high level tracking ticket. Folk interested in trace support in tremor should comment this ticket accordingly.

AllMight2099 commented 1 year ago

Hi there! I was hoping I could get some more context on the issue. I'd like to work on this issue

Licenser commented 1 year ago

This is a fairly hefti ticket:

it involves (at least) two rather big parts:

1) investigate the debugger interfaces used by systems like lldb and VSCode / language servers and how to integrate them in rust.

2) implement that interface for tremor script which will be a massive (at least my guess) change to the language interpreter

and do that in a way that has virtually zero runtime performance impact

AllMight2099 commented 1 year ago

Wow, that does sound like a lot. I'd still like to work on it tho cause it's something that would help me grow as a Rust developer. I'll try reading up a bit and playing around with tremor and then discuss possible approaches over discord, if that's fine with you?

Licenser commented 1 year ago

yes please :) discord is always open and we're happy to discuss and chat there. If you don't get to the full implementation and just do a bit of R&D to build a prototype that this can be based on later, or just to learn that's fine too - we'll learn in the process as well :D