Digma is a tool that profiles your application execution in runtime and identifies critical performance issues. Digma is comprised of an analysis backend (running locally on containers) and an IDE plugin as the main front end (Jetbrains only for now). The plugin provides code-level insights related to performance, query issues, bottlenecks scaling problems, and more.
Digma's backend receives OTEL data from your application (collected automatically when you run it locally), analyzes it, and identifies specific issues in the code execution. All of the data is handled locally in order to support compliance requirements and no code changes are required. Digma cam profile data from multiple environments, including dev, test, staging, production etc.
Get the Digma plugin from the JetBrains marketplace. We currently support IntelliJ with either Java or Kotlin, support for additional IDEs is coming soon.
That's it! π As you start using your application and running your code, Digma will provide feedback and highlight issues over the code itself.
- Having issues? Questions? Want to suggest new ideas or discuss Digma with us? Join the Digma community
You can check out some videos and more info on our YouTube Channel!
In short, we can use existing logs, traces, and metrics to answer questions such as:
- What are the top bottlenecks slowing this code down?
- How will this function scale?
- Which slow queries have the most impact on my application performance?
- Are there any issues introduced by the ORMs or 3rd party libraries
More importantly, all of these insights should be directly accessible in the IDE so we can use them while coding.
We believe that unless the application profiling is continuous and automatic - much like testing it won't be effective. There are many observability tools out there, however, they all require actively and manually spending time, attention, and expertise to get results. It is not surprising that they are used only reactively when something terrible happens. The end goal of observability should not be creating dashboards but improving our application and code.
Well, we don't compete with any tool existing today because... There isn't any tool that aims to generate this type of feedback. We do work very well together with other tools looking at the same data, like Jaeger, Prometheus, and even traditional observability APMs like Datadog or Splunk.
We are also not a static analysis tool. We profile the application execution in runtime rather than looking at the code and generating a ton of styling and rule-based issues.
We started publishing some more detailed blog posts explaining what we are trying to accomplish. Here are a few examples:
For the full list, you can check out our website blog
If you're interested in the specific capabilities, product features, and technical specifications - check out our docs!
- Is this going to instrument my code and change it in creepy ways in production? Absolutely not! We rely on the OpenTelemetry vanilla instrumentation with a few added attributes of our own. We leave your code untouched.
- Do I need to make code changes to use Digma? No! Digma will take care of collecting the observability data without any code changes.
- Does Digma send data to the cloud No! We purposely run everything locally to avoid any issues with compliance policies.
- Which platforms/stacks do you currently support? We currently focus on Java and Kotlin with IntelliJ. Support for .NET using Rider IDE is currently in early access mode. We'll expand to additional IDEs and languages later this year.