Skip to content

weorbitant/OTeL-TUI

Repository files navigation

πŸš€ OtelTUI

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)             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

✨ Features

  • πŸ”„ 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

πŸ“¦ Installation

πŸš€ Using uv (recommended)

git clone https://github.com/yourusername/oteltui.git
cd oteltui
uv sync

πŸ› οΈ Development Installation

For development with linting and testing tools:

git clone https://github.com/yourusername/oteltui.git
cd oteltui
uv sync --extra dev
uv run pre-commit install

πŸ“‹ Using pip

git clone https://github.com/yourusername/oteltui.git
cd oteltui
pip install -e .

πŸš€ Usage

🎯 Quick Start

# Using uv
uv run oteltui

# Or if installed globally
oteltui

The TUI will start and listen for OpenTelemetry traces on localhost:4317.

πŸ“‘ Sending traces

Configure your OpenTelemetry instrumented application to send traces to:

  • Endpoint: localhost:4317
  • Protocol: gRPC (OpenTelemetry Protocol)
  • Transport: HTTP/2 (gRPC)

πŸ§ͺ Test with the included client

# Start the TUI in one terminal
uv run oteltui

# In another terminal, send test traces
uv run python client.py

πŸ› οΈ Development

πŸš€ Setup

git clone https://github.com/yourusername/oteltui.git
cd oteltui
uv sync --extra dev

πŸ” Code quality

# 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 formatter

πŸ—οΈ Project Structure

oteltui/
β”œβ”€β”€ πŸ“ src/oteltui/          # Main source code
β”œβ”€β”€ πŸ“ tests/                # Test files
β”œβ”€β”€ πŸ“ docs/                 # Documentation
β”œβ”€β”€ πŸ“„ pyproject.toml        # Project configuration
β”œβ”€β”€ πŸ“„ README.md             # This file
└── πŸ“„ client.py             # Test client

🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

🎯 How to Contribute

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. πŸ’Ύ Commit your changes (git commit -m 'Add amazing feature')
  4. πŸ“€ Push to the branch (git push origin feature/amazing-feature)
  5. πŸ”„ Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ”— Related Projects

  • 🌐 OpenTelemetry - Observability framework
  • 🎨 Textual - Python TUI framework
  • πŸ” Jaeger - Distributed tracing platform
  • πŸ“Š Grafana - Monitoring and observability
  • πŸ› Sentry - Error tracking and performance monitoring

πŸ†˜ Support

If you encounter any issues or have questions:

  1. πŸ” Check the existing issues
  2. πŸ†• Create a new issue with details about your problem
  3. πŸ“‹ Include your Python version and operating system
  4. πŸ“ Provide logs and error messages

πŸ—ΊοΈ Roadmap

  • πŸ” 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

πŸ† Acknowledgments

  • πŸ™ Thanks to the OpenTelemetry community
  • 🎨 Thanks to Textual for the amazing TUI framework
  • πŸ’‘ Inspired by Jaeger UI and other tracing tools

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors