Post

Traditional tracing requires some type of sampling to control volume and cost. "Head sampling" is the simplest and just decides at the beginning of the trace whether to capture it or not. Thus sampling does not have any trace specific context.

"Tail sampling" is more sophisticated and decides at the end of the trace whether to capture (based on observing an error or some other indicator). Without real-time control and local storage, this requires sending *all* data to some intermediate buffer where it can be held to make a decision.

0 reposts1 like

As a result, "tail sampling" is still expensive, and the total trace duration is usually short. None of these downsides apply with @bitdrift.io Capture's real-time control and local storage. Sessions can be hours or days long, and the capture decision is based on dynamic state machine execution.

With this solution you will be able to capture sessions and performance tracing based on arbitrary matching criteria, and update that criteria in real-time, getting you the traces you need to iteratively debug performance issues all without a single code deploy. Can't wait to ship this! 🚀