Live Debugging

Sidekick’s Live Debugging Agents are Now Open Source

We have open-sourced Sidekick Live Debugger a few weeks ago and now we have open-sourced all our agents too!
Baris Kaya
2 mins read
We have open-sourced Sidekick Live Debugger a few weeks ago and now we have open-sourced all our agents too.

Modern software development tools and practices help us developers deliver more powerful solutions better and faster than ever. Netflix, Spotify etc. all are examples for those powerful solutions we have today. Sadly not everything in the garden is lovely. With great power comes great complexity and that complexity results in loss of money and developer productivity.

As it is said in InfoWorld, “The growing complexity of modern software systems is slowly killing software developers.”

Growing complexity of software development results in many issues like;

  • Monitoring and logging everything is a high cost in many aspects.
  • Solving production issues via old school techniques such as mocking the managed services and simulating the cloud environments locally is grueling.
  • Collecting dynamic data from running applications is hard
  • Adding new logs and redeploying apps takes time
  • Developer on-boarding is hard for complex systems
  • Logging everything or using APMs create so much unnecessary data

Fortunately, we have Sidekick to solve all the issues above. Sidekick is a live application debugger that lets you troubleshoot your applications while they keep on running.

Check out Sidekick Open-source repository to learn more:

https://github.com/runsidekick/sidekick

The advantage of Sidekick over classical APM solutions is that, Sidekick

  • can debug and trace any location (your code base or 3rd party dependency) in your application, not just the external (DB, API, etc …) calls like APM solutions
  • has zero overhead when you don’t have any tracepoint or log point but APMs have always
  • doesn’t produce too much garbage data because it collects data only at the certain points you specified as long as that point (tracepoint/logpoint) is active

Inside Sidekick

Sidekick consists of 3 layers;

  • Broker
  • Agents
  • Clients

The broker is the central unit of Sidekick. It controls all the data flow between clients and agents.

Agents are the layer where Sidekick actions meet with your applications. Agents deployed with your software lets you collect snapshot data and generate dynamic logs without modifying your code. Agents get orders from clients and start listening to the targeted lines with given properties. Then whenever your code hits a logpoint or a tracepoint, agents collect stack & log data and send them to the clients via the broker. Currently, we have agents for Java, Python & Node.js runtimes.

Clients let you interact with the agents.

Sidekick and its agents are now open source!

Sidekick Open Source is here to allow self-hosting and make live debugging more accessible. Built for everyone who needs extra information from their running applications.

After open-sourcing Sidekick repository we have received more than 1000 stars in just few days. This clearly shows that there is a real curiosity and demand about our live application debugger.

By open-sourcing everything we have built we want to both share our knowledge, make self-hosting available, grow Sidekick with our communities contributions and show our users what we collect from their running applications.

Sidekick agents allow you to inject tracepoints (non-breaking breakpoints) and log points dynamically to capture call stack snapshots (with variables) and add log messages on the fly without code modification, re-build and re-deploy. So it helps you, your team, and your organization to reduce MTTR (Minimum Time to Repair/Resolve)

Connecting an agent to a production application has become mainstream but we wanted to achieve full transparency for our agents so that there will be no questions left unanswered. You can check all three agent of ours below:

1 - Java agent

Sidekick Java agent has nothing to do with JDWP (Java Debug Wire Protocol), as it doesn’t suspend the code execution, but hooks into code execution at the application layer by bytecode instrumentation.

https://github.com/runsidekick/sidekick-agent-java

Benchmarks

2 - Python agent

Sidekick Python Agent makes use of Google Python Cloud Debugger Agent’s breakpoint implementations under the hood.

https://github.com/runsidekick/sidekick-agent-python/

3 - Node.js agent

Sidekick Node.js agent makes use of V8’s inspector API.

https://github.com/runsidekick/sidekick-agent-nodejs

You can get extra information from our documentation: https://docs.runsidekick.com/installation/installing-agents

TLDR;

Sidekick broker and all agents are all open-source, allowing you to self-host and get to know more about live debugging. You can now check out our repositories and learn more about how Sidekick works and what it collects.

Sidekick is now open-source and brings almost no overhead to your applications. Visit runsidekick.com to meet your new live application debugger.

https://www.runsidekick.com/

Please let us know your invaluable ideas because they will guide us on our path to discovering the future of application observability. You can get in touch with us through Twitter, and join our Discord community.

Fresh insights from Sidekick experts every week.

Get the best insights, delivered straight to your inbox.