solo-io/squash

The debugger for microservices

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 52 minutes ago
Added to GitGenius on January 26th, 2024
Created on August 12th, 2017
Open Issues & Pull Requests: 87 (+0)
Number of forks: 102
Total Stargazers: 1,766 (+0)
Total Subscribers: 80 (+0)

Repository Insights (GitGenius)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 83
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 2,552 days
Stale 30+ days: 83
Stale 90+ days: 83

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • roadmap (10)
  • enhancement (9)
  • bug (5)
  • question (2)
  • wontfix (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Squash is a debugger for microservices that enables developers to debug applications running in Kubernetes from their terminal or IDE without modifying the running code.

Debugging distributed microservice applications presents a fundamental challenge: application state is spread across multiple processes on different nodes, making it difficult to gain a holistic view. While existing tools like OpenTracing and service meshes such as Istio provide passive observability through transaction logs and network monitoring, they offer slow feedback loops and cannot alter application behavior at runtime. Squash addresses this gap by bringing the interactive debugging capabilities familiar from monolithic application development to microservice environments. It bridges the gap between containerized applications running in Kubernetes and developer IDEs, allowing developers to set breakpoints, step through code across service boundaries, inspect and modify variable values in real time, and debug specific containers, pods, services, or images without altering the running application.

Squash suits teams working with Kubernetes-deployed microservices who need rapid debugging cycles and real-time investigation capabilities. It is particularly valuable when passive observability tools prove insufficient for understanding complex runtime behavior. The tool is designed with extensibility in mind, making it straightforward to add support for additional languages, debuggers, and IDEs.

Almost all open issues are raised by outside users rather than the core team, indicating a substantial base of adopters reporting real-world use and providing feedback from production environments.