Side-Eye wants to be a debugger for the cloud era, and there’s certainly a lot of features that one might want from a dream debugger beyond snapshots. So there’s a lot more we want to do.
Side-Eye wants to be in the dynamic instrumentation game, and perhaps the most obvious application of dynamic instrumentation is the dynamic injection of new logs and metrics into an otherwise not instrumented process (i.e. “every time execution reaches this line of code, output a log message and include this expression and this other expression” or “every time execution reaches this line of code, increment a counter and plot the rate of change of this counter”). So we’re definitely always thinking about these; they’ll come soon.
Some common monitoring and debugging tasks revolve around understanding rare errors or tail latency. Here, you would like to get your hands on some type of trace of the operation that exhibited the bad behavior. It’d be cool if you could say “next time this error happens on any of my machines, capture a stack trace, include these variables and make it available somewhere”. Or, next time an operation was slow, give me these set of verbose logs from the relevant goroutine. Tracing as a general concept is something we think about a lot. Go’s runtime traces have been improved recently and can help latency investigations, so we’re also considering how to surface them.
Anyway, if you have thoughts, please tell us at contact@dataexmachina.dev.