Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jaronoff97/tails
tails is a small webserver that listens on a socket and streams live messages from a collector
https://github.com/jaronoff97/tails
Last synced: about 2 months ago
JSON representation
tails is a small webserver that listens on a socket and streams live messages from a collector
- Host: GitHub
- URL: https://github.com/jaronoff97/tails
- Owner: jaronoff97
- License: apache-2.0
- Created: 2023-11-25T19:04:36.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-11T15:55:06.000Z (6 months ago)
- Last Synced: 2024-07-11T17:52:01.298Z (6 months ago)
- Language: Elixir
- Size: 1.56 MB
- Stars: 7
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tails
| Home screen | Filters Applied | Clicking a row | OpAMP Integration |
| --------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------- |
| ![home](images/home.jpeg "home screen") | ![filters](images/filters.jpeg "main page with filters applied") | ![clicked](images/clicked.jpeg "clicking a row") | ![config](images/config.jpeg "showing collector opamp") |Tails is a small webserver written in elixir that listens on a socket and streams live messages from a collector.
## :tada: Features :tada:
* Live tailing of data from a running collector
* Support for metrics, traces and logs
* Play/Pause mode
* Raw data viewer
* OpAMP connection to running collector instance
* Advanced filtering to drill into specific data## Usage
Tails is primarily used as a sidecar to your collector. The goal of Tails is to be incredibly lightweight such that it doesn't impact the performance or resource utilization of the primary collector. With that in mind, it's best to run Tails in a non-production environment for now.
> NOTE: Make sure to use the appropriate docker container for your environment (currently an amd and arm image are published)
For example usage in Kubernetes, visit the example [here](examples/kubernetes/README.md)
## Collector configuration
At a minimum for tails to function, you must use the [remotetap processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/remotetapprocessor) in your collector's configuration. Tails expects to connect to the collector's remotetap processor on _port 12001_ (this will be configurable in the future). It is also recommended to use the [opampextension](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/opampextension) so that you can view the health and configuration for your collector. Here's a minimum sample configuration for a collector with these configured (tested with version 0.97.0 of the collector):
```yaml
extensions:
opamp:
server:
ws:
endpoint: ws://127.0.0.1:4000/v1/opamp
tls:
insecure: truereceivers:
otlp:
protocols:
grpc:
endpoint: 127.0.0.1:4317
http:
endpoint: 127.0.0.1:4318processors:
remotetap:
batch:exporters:
debug:
verbosity: detailedservice:
pipelines:
traces:
receivers: [otlp]
processors: [remotetap, batch]
exporters: [debug]metrics:
receivers: [otlp]
processors: [remotetap, batch]
exporters: [debug]logs:
receivers: [otlp]
processors: [remotetap, batch]
exporters: [debug]extensions: [opamp]
```## Local Development
To start tails:
- Install dependencies with `mix setup`
- Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`
- Run your local collector configurationNow you can visit [`localhost:4000`](http://localhost:4000) from your browser.