Sprkl case study
5 min read
Backend Developer Problems
While working in a complex, distributed system, how many times have you made a code change for adding a new feature or fixing a bug, and as a result, a ton of issues were created in your applications? Your code change passed all the tests but still created an issue once it was live in production.
When adding new code or changing an existing one, it is difficult and almost impossible to see how your code will interact with other system-wide components and how it will behave. Unfortunately, devs need to spend a lot of time and energy on tasks like adding breakpoints, digging out their own relevant logs and traces from the entire app, building dedicated dashboards in APM tools, etc., just to figure out their code execution impact.
This whole “digging” process of your own relevant info is time-consuming and slows software development down tremendously: A process developers often skip. Consequently, issues arise in QA or, even worse, later in production. The later an issue is discovered, its cost grows exponentially, and more resources are allocated to track and solve it.
What is Sprkl
Sprkl is a Personal Observability platform that provides individual developers and team leaders with a clear view of how their code executes in a complex, distributed environment. Powered by OpenTelemetry it instruments every personal code change and analyzes it upon execution. It then provides immediate feedback, right in the VSCode IDE, that includes:
- Personal code level traces - embedded Jaeger-based traces that help you understand precisely how your recent code change executes.
- Personal Interactions - help you see how your code change plays with other entities in the system.
- Personal Coverage - helps you determine how much of your recent code change is covered by existing tests.
- Personal Insights - help you improve your code performance by getting runtime feedback.
Once you install the Sprkl free VS Code extension, you’ll get to see only YOUR most relevant info - info about the specific lines of code you’ve just executed and their effect on other system components. Info such as your errors, traces, Jest tests results that run through your code, interactions (DB queries, API calls), performance insights and more.
Sprkl for CI brings Personal Observability to code reviewers, team leads and devs and helps them understand how the latest PR ran in CI. Sprkl for CI is a GitHub application that integrates with the pull request process and provides insights on code execution in the CI environment. Those insights can be pulled back to the local environment, pointing to the relevant traces and lines of code for further investigation.
How does it help?
Sprkl lets you immediately see how your code change execution behaves and how it affects the entire application without looking around for relevant data. It provides devs with an instant feedback loop, right in their local environment, that helps them write better code faster.
With Sprkl Personal Observability, you’ll gain insights into how your code changes work in a larger distributed system without deploying it to testing or production environments and without “digging” out your own relevant info out of the tons of data.
Receiving personal feedback early on in the development process helps improve your application quality and reduce the amount of bugs and errors in production.
What's Unique
Existing APM (application monitoring) and Observability tools monitor the app from the entire app perspective. Which means that they look at the application from a bird's eye view and don't look at each and every component of the application. They were originally created for DevOps and SRE teams.
Personal
Sprkl brings observability to the developers; distributed tracing with a personal view. Sprkl was created for developers and was tailored to their specific needs. Each dev sees only the relevant info to them, linked to its traces and specific lines of code they are currently working on. This ultimately saves the developers hours of work and gives them all relevant information directly in their IDE. Sprkl is the only app that is adopting this personalized view.
Embedded Jaeger-based traces
Jaeger comes built-in with Sprkl and saves devs the effort of configuring Jaeger and instrumenting the code.
Sprkl traces are unique because
- They cut through the noise of the entire app traces by focusing only on your relevant traces
- They add code-level traces - “regular” traces show only the infrastructure traces (for example your code ran an API call which performed a DB query and so on). Sprkl traces goes deeper and shows you the actual lines of code you’ve passed through.
Make your Jest tests work with OpenTelemtry
Sprkl is the only way to automatically integrate Personal Observability into your Jest tests directly in the IDE. Discover which tests failed due to your code change. Get a trace per test with automated logging for all your mockups and assertions with a powerful Jest instrumentation library we’ve implemented.
Conclusion
Making sure your code works as it should and understanding its effect on the entire distributed system is complicated and consumes precious time. Unfortunately, devs lack this immediate feedback loop while working in their local environment.
With Sprkl, developers can easily see how their code is affecting the larger systems of the application and ensure that it works just as expected. Sprkl Personal Observability ultimately increases productivity and lets developers focus on what matters - innovating and writing code instead of debugging.