Stalk is an experimental, highly-flexible (distributed) trace analysis tool.
Available on: https://deniz.co/stalk/
At work, we had a nasty bug in a highly event-driven, consensus-based distributed system. And it was occurring randomly on some specific cluster setups that we don't have physical access for debugging. We thought, why not use distributed tracing for debugging the whole cluster? The main problem was Jaeger and Zipkin's built-in UI are built just for visualizing a single trace, since it's the most common use case of distributed (request) tracing. That's the motivation behind Stalk, providing an alternative way to inspect distributed traces, especially for non-traditional use cases.
Also check out the demo app that I've built simulating Raft distributed consensus algorithm, instrumented with OpenTelemetry. You can play with it and export generated traces to Stalk.
- Add & save your Jaeger and Zipkin APIs as data sources
- Search & import traces directly from Jaeger and Zipkin
- Drag & drop JSON trace files that are exported from Jaeger or Zipkin
Stalk is built for being as flexible as possible to cover your changing needs when analyzing different traces.
- Flexible panes: Split views can be handy.
- Table view: Pinpoint interesting spans quickly in table view with customizable & sortable columns.
- Timeline layout: Change how the spans are grouped and rendered vertically. Uninteresting groups can be collapsed to prevent visual clutter.
- Span coloring & labelling: Change span bar colors and the text rendered on it.
- Tooltip: Change the contents of the tooltip displayed when you hover a span bar. You can add/remove interested span tags, logs, and process tags.
If the built-in customization options don't fill your needs, you can always write your own custom JavaScript / TypeScript code to do the following:
- Filter spans
- Change span grouping
- Change span labeling
- Change span coloring
You must have node.js >= 12 installed on your machine.
- Clone the repo
- Install dependencies:
npm i
- Get started with webpack-dev-server w/ live-reload:
npm start
- Build the project in production mode:
npm run build
- Check out
/build
folder for output