A modern Terminal User Interface (TUI) for monitoring OpenTelemetry traces in real-time. Built with Python and Textual, OtelTUI provides a clean, interactive interface for viewing and analyzing distributed traces.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π OtelTUI - OpenTelemetry Trace Monitor β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π Real-time trace monitoring β
β π gRPC trace collection on port 4317 β
β π±οΈ Interactive trace details β
β π¨ Clean TUI interface with Textual β
β π Trace filtering and search β
β π Multiple view modes (structured/raw JSON) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- π Real-time trace monitoring - Watch OpenTelemetry traces as they arrive
- π gRPC trace collection - Receives traces via OpenTelemetry gRPC protocol on port 4317
- π±οΈ Interactive trace details - Click on traces to view detailed span information
- π¨ Clean TUI interface - Built with Textual for a modern terminal experience
- π Trace filtering and search - Easily navigate through trace data
- π Multiple view modes - Switch between structured and raw JSON views
- π Dark mode support - Toggle between light and dark themes
- β‘ High performance - Efficient trace processing and display
git clone https://github.com/yourusername/oteltui.git
cd oteltui
uv syncFor development with linting and testing tools:
git clone https://github.com/yourusername/oteltui.git
cd oteltui
uv sync --extra dev
uv run pre-commit installgit clone https://github.com/yourusername/oteltui.git
cd oteltui
pip install -e .# Using uv
uv run oteltui
# Or if installed globally
oteltuiThe TUI will start and listen for OpenTelemetry traces on localhost:4317.
Configure your OpenTelemetry instrumented application to send traces to:
- Endpoint:
localhost:4317 - Protocol: gRPC (OpenTelemetry Protocol)
- Transport: HTTP/2 (gRPC)
# Start the TUI in one terminal
uv run oteltui
# In another terminal, send test traces
uv run python client.pygit clone https://github.com/yourusername/oteltui.git
cd oteltui
uv sync --extra dev# Run all pre-commit hooks
uv run pre-commit run --all-files
# Individual tools
uv run ruff format # Format code
uv run ruff check # Lint code
uv run mypy src/ # Type checking
uv run black src/ # Alternative formatteroteltui/
βββ π src/oteltui/ # Main source code
βββ π tests/ # Test files
βββ π docs/ # Documentation
βββ π pyproject.toml # Project configuration
βββ π README.md # This file
βββ π client.py # Test client
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/amazing-feature) - πΎ Commit your changes (
git commit -m 'Add amazing feature') - π€ Push to the branch (
git push origin feature/amazing-feature) - π Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- π OpenTelemetry - Observability framework
- π¨ Textual - Python TUI framework
- π Jaeger - Distributed tracing platform
- π Grafana - Monitoring and observability
- π Sentry - Error tracking and performance monitoring
If you encounter any issues or have questions:
- π Check the existing issues
- π Create a new issue with details about your problem
- π Include your Python version and operating system
- π Provide logs and error messages
- π Trace search and filtering - Advanced search capabilities
- π€ Export/import functionality - Export/import traces to/from various formats
- π Multiple protocol support
- π Performance metrics and statistics - Real-time performance data
- π Thanks to the OpenTelemetry community
- π¨ Thanks to Textual for the amazing TUI framework
- π‘ Inspired by Jaeger UI and other tracing tools