A TUI for viewing and debugging with OTEL signals locally. Built with bubbletea, lipgloss, Go OTEL SDK.
A lot of inspiration has been taken from otel-tui by @ymtdzzz. You should check out that project for a much more complete alternative to this. They've done an amazing job.
By running this project using go run cmd/app/main.go or task run a
collector will start listening on 0.0.0.0:4317 for OTLP gRPC
messages. It's also listening on HTTP on port 4318 with CORS
configured to allow all domains and all headers.
This project uses Taskfile.dev to simplify running commands.
If you want to install all deps on MacOS:
brew install krzko/tap/otelgen # just to seed with dummy data
brew install go-taskAnd then the different tasks:
task run # Builds and runs the app
task debug # Builds and runs the app for attaching debugger from neovim
task test # Run tests
task ingest-dummy-data # Uses otelgen to send some data for testing
task logs # Tail (follow) logsSince the TUI takes up the main window, we write logs to debug.log.
During testing, to avoid having to re-seed my development environment all the time,
the application state is persisted to local.db. You can remove this to clear the
state. This will be changed before the first release so you can choose if you want
persistence or not.
Spans
- View all root spans (traces) on the front page
- View a summmary of the span's attributes and resource
- See a flamegraph of the trace's spans
- Add detail page for spans to see more information
- Filters and searching
- Metrics & Logs
- Add screenshots
Contributions are very welcome!
Note
This projects is partially intended as a learning project, and as such use of AI is kept to a minimum. I consult it from time to time to brainstorm or fix my SQL queries, but an attempt is made to keep the project "hand made in Denmark" (other countries are encounraged to contribute).