explaingit

poodlelab/tracebag

Analysis updated 2026-07-26

2C#Audience · ops devopsComplexity · 4/5Setup · hard

TLDR

A self-hosted diagnostic tool for investigating .NET apps in Docker. Run it during an incident, collect logs and runtime data via a web browser, and review the saved evidence timeline later.

Mindmap

mindmap
  root((repo))
    What it does
      Collects incident evidence
      Searches container logs
      Captures dotnet traces
    Tech stack
      CSharp and dotnet
      Docker Compose
      Web UI
    Use cases
      Debug live incidents
      Review past evidence
      Practice with demo
    Audience
      Ops and DevOps
      Backend developers
    Limitations
      No auto-discovery
      No shell access
      Not for Kubernetes

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Investigate a live .NET container incident by searching logs and capturing stack traces via a web browser.

USE CASE 2

Review a timeline of collected diagnostic evidence from a previous incident stored in persistent volumes.

USE CASE 3

Practice debugging synthetic CPU and memory issues using the included demo workload.

USE CASE 4

Continuously collect .NET runtime diagnostics in the background using resident mode.

What is it built with?

C#.NETDockerDocker Compose

How does it compare?

poodlelab/tracebagatum-borg-interactive/road-sdkbabelive/windows
Stars222
LanguageC#C#C#
Setup difficultyhardmoderatemoderate
Complexity4/53/53/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires preparing target Docker containers ahead of time with specific labels and diagnostic volumes, plus understanding the security model before deploying near production.

The explanation does not specify a license for this repository.

In plain English

Tracebag is a self-hosted diagnostics tool for .NET applications running in Docker containers. You start it on a server when something goes wrong, use a web browser to investigate logs and runtime behavior, and stop it when the session ends. It collects evidence during an incident and keeps that evidence in a timeline you can review. The tool lets you search container logs, follow live log streams, and watch .NET runtime counters for CPU usage, memory, garbage collection, thread pools, and lock contention. It can also capture stack snapshots, traces, garbage collection dumps, and process dumps, tying each piece of evidence to the incident that prompted it. Tracebag only works with containers that explicitly opt in through Docker labels, and it does not expose a shell or accept arbitrary Docker commands. A debugging session starts with Docker Compose. You open the UI locally or through an HTTPS reverse proxy, collect the evidence you need, then stop the stack. Stopping it removes the component with Docker access, but named volumes preserve captured evidence for future sessions. The supplied Compose file does not restart automatically, though a resident mode is available for continuous collection. Target containers require preparation before an incident. You add Docker labels that enable discovery, logging, and .NET diagnostics, plus a named volume for the runtime diagnostic socket. These labels cannot be added to a running container, so you must configure targets ahead of time. Recreating a container during an investigation could alter the failure state you are trying to diagnose. Tracebag deliberately avoids some things. It does not auto-discover containers, provide browser shell access, or send data to a cloud analysis service. It is not a Kubernetes or distributed tracing platform. While running, its backend has Docker administrator capabilities, even with a read-only socket mount, so the project recommends running it only on a host you control and reading the security model before using it near production workloads. The repository includes a demo workload that generates synthetic CPU pressure, allocations, and other issues for practice. Tracebag is developed with substantial AI assistance, though the maintainer retains responsibility for architecture, security, and releases.

Copy-paste prompts

Prompt 1
I have a .NET app running in a Docker container. Help me add the necessary Docker labels and diagnostic socket volume to my docker-compose file so it can be monitored by Tracebag.
Prompt 2
Write a docker-compose configuration for Tracebag using an HTTPS reverse proxy, ensuring that captured evidence is stored in a named volume that persists after the stack stops.
Prompt 3
Generate a synthetic .NET workload that causes CPU pressure, memory allocations, and lock contention so I can practice capturing traces and dumps with Tracebag.
Prompt 4
Explain how to safely run Tracebag on a server I control, including the security implications of the backend having Docker administrator capabilities via a read-only socket mount.

Frequently asked questions

What is tracebag?

A self-hosted diagnostic tool for investigating .NET apps in Docker. Run it during an incident, collect logs and runtime data via a web browser, and review the saved evidence timeline later.

What language is tracebag written in?

Mainly C#. The stack also includes C#, .NET, Docker.

What license does tracebag use?

The explanation does not specify a license for this repository.

How hard is tracebag to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is tracebag for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.