A terminal OpenTelemetry viewer inspired by otel-desktop-viewer.
This tool currently supports OpenTelemetry, Zipkin (Traces) and Prometheus (Metrics) formats.
Currently, this tool exposes the ports:
4317
to receive OpenTelemetry signals (gRPC)4318
to receive OpenTelemetry signals (HTTP)9411
to receive Zipkin traces (enabled by--enable-zipkin
option)
Options:
Usage:
otel-tui [flags]
Flags:
--enable-prom Enable the prometheus receiver
--enable-zipkin Enable the zipkin receiver
--grpc int The port number on which we listen for OTLP grpc payloads (default 4317)
-h, --help help for otel-tui
--host string The host where we expose our OTLP endpoints (default "0.0.0.0")
--http int The port number on which we listen for OTLP http payloads (default 4318)
--prom-target stringArray The target endpoints for the prometheus receiver (--prom-target "localhost:9000" --prom-target "other-host:9000")
-v, --version version for otel-tui
$ brew install ymtdzzz/tap/otel-tui
$ go install github.com/ymtdzzz/otel-tui@latest
Run in the container simply:
$ docker run --rm -it --name otel-tui ymtdzzz/otel-tui:latest
Or, run as a background process and attach it:
# Run otel-tui as a background process
$ docker run --rm -dit --name otel-tui ymtdzzz/otel-tui:latest
# Show TUI in your current terminal session
$ docker attach otel-tui
# Detach by pressing Ctrl+p -> Ctrl+q
First, add service to your manifest (docker-compose.yaml
) for the instrumanted app
oteltui:
image: ymtdzzz/otel-tui:latest
container_name: otel-tui
stdin_open: true
tty: true
# Override entrypoint if you want use options
entrypoint: ["/otel-tui", "--enable-zipkin"]
Modify configuration for otelcol
exporters:
otlp:
endpoint: oteltui:4317
service:
pipelines:
traces:
exporters: [otlp]
logs:
exporters: [otlp]
Run as a background process and attach it:
# Run services as usual
$ docker compose up -d
# Show TUI in your current terminal session
$ docker compose attach oteltui
# Detach by pressing Ctrl+p -> Ctrl+q
/~https://github.com/ymtdzzz/otel-tui/releases
$ git clone /~https://github.com/ymtdzzz/otel-tui.git
$ cd otel-tui
$ go run ./...
There're a lot of things to do. Here are some of them:
- Traces
- Display traces
- Filter traces
- Show trace information
- Metrics
- Metric stream
- Display metric stream
- Filter metrics
- Show metric information
- Display basic chart of the selected metric
- Gauge
- Sum
- Histogram
- ExponentialHistogram
- Summary
- Metric list
- Display metric stream
- Flexible chart (query, selectable dimensions, etc.)
- Auto refresh chart
- Asynchronous chart rendering
- Metric stream
- Logs
- Display logs
- Filter logs
- Show log information
- Show logs related to a specific trace or span
- UI
- Improve UI
- Add more keybindings
- Performance
- Timer based refresh
- Data rotation (current buffer size: 1000 service root spans and logs)
- Configurations
- Port
- Refresh interval
- Buffer size
Contributions are always welcome! Whether it's reporting an issue, suggesting a feature, or submitting a pull request, your involvement is greatly appreciated. Below is a simple guide to help you get started.
- Start by forking this repository to your GitHub account.
- Implement your changes in a new branch.
- Add tests to verify your changes. This helps ensure the stability of the project.
- Run the linting tools and test suite to verify your changes. Make sure everything passes before proceeding.
make lint
make lint-exporter
make test
make test-exporter
- Push your branch to your forked repository.
- Open a pull request to the main repository, providing a clear description of your changes and their purpose.
Thank you for taking the time to contribute!