There are excellent Heap dump analysis tools like Eclipse MAT, Jprofiler, … These tools are handy when you want to debug/troubleshoot OutOfMemoryError. However, we HeapHero has following unique capabilities which aren’t available in those tools:
1. How much memory wasted?
Fig: HeapHero reporting Memory wasted due to inefficient programming
HeapHero tells you how much memory your application is wasting because of inefficient programming practices by the developers. Today memory is wasted because of reasons like:
a. Duplication of strings
b. Overallocation, and underutilization of data structures
c. Boxed numbers
d. Several more reasons.
You can see HeapHero reporting how much memory is wasted even in a vanilla pet clinic spring boot application. Other tools don’t provide this vital metric.
2. First cloud application for heap dump analysis
Today’s memory profiling tools need to be installed on your Desktop/Laptops. They can’t run on the cloud. HeapHero can run on
a. Public cloud (AWS, Azure,..)
b. Your private data center
c. Local machine
Your entire organization can install one instance of HeapHero in a central server, and everyone in the organization can upload and analyze the heap dump from this one server.
3. Safe & Secure
Heap dump tend to contain sensitive information such as IP addresses, credit card numbers, SSN, VAT numbers … and they also tend to be very large in size (several MBs to GBs). Since they are large in size, they can’t be attached in the email and sent to the Developers/Vendors to troubleshoot. Thus SRE engineer typically uploads these dump files to FTP Sites, Wiki, Sharepoint, drop box/google drive (sometimes). Then he will send the link of these files to the Developers/Vendors. They will then download the dump files from these remote locations to their local laptops, do the analysis and share the same dump files to the QA engineers to validate their fix. Now, if you observe this sensitive dump file are stored in multiple locations:
a. FTP Site/Wiki/SharePoint
b. Developer Laptop
c. QA engineer Laptop
d. Vendor sites
One more unfortunate thing happens. After doing the analysis, typically, most engineers would not delete these dump files from their laptops.
Whereas using HeapHero REST API, production dump files are transmitted from your production machines directly to the HeapHero server through the secure https protocol. Dump files are then stored in the HeapHero server only. Users will only see the analyzed reports and not the raw dump files. Thus, with HeapHero, dump files aren’t exchanged with anyone; they are stored in only one location: the HeapHero server.
4. CI/CD pipeline Integration
As part of CI/CD pipeline, several organizations do static code analysis using tools like coverity, vera code… . Using HeapHero, you can do runtime code analysis. HeapHero provides REST API. This API returns JSON response, which contains key metrics related to your application’s memory utilization. You can invoke this API from CI/CD pipeline and see whether your code quality is improving or regressing between each code commit.
5. Instant RCA in production
Debugging OutOfMemoryError in production is a tedious/challenging exercise. You can automate the end-end analysis of OutOfMemoryError using HeapHero. Say if your application’s memory consumption goes beyond certain limits or experience OutOfMemoryError, you can capture heap dumps and do heap dump analysis instantly using our REST API and generate instant root cause analysis report. Production troubleshooting tools like ycrash leverages HeapHero REST API to do this analysis for you.
6. Analyzing heap dumps from remote location
Heap dump files are large in size (several GB). To troubleshoot the heap dump, you have to transmit the heap dump file from your production server to your local machine. From your local machine, you have to upload the heap dump file to your tool. Sometimes heap dump might be stored/archived in remote server, AWS S3 storage,… In those circumstances, you will have to download the heap dump from that remote location and then once again upload it to the tool. HeapHero simplifies this process for you. You can pass the heap dump’s remote location URL as input to the HeapHero API or to the web interface directly. HeapHero will download the heap dump from this remote location to analyze for you.
7. Report Sharing & Team collaboration
Sharing Heap Dumps amongst team is a cumbersome process. Finding a proper location to store the heap dump file is the first challenge. The team member with whom you are sharing this report should have the heap dump analysis tool installed on his local machine. So that he can open the heap dump file with the tool you are sharing to see the analysis report. HeapHero simplifies this process. HeapHero gives you a hyperlink like this. This hyperlink can be embedded in your emails, JIRA, and circulated amongst your team. When your team member clicks on this hyperlink, he can see the entire heap dump analysis report on his browser.
HeapHero also lets you export heap dump as PDF file. This PDF file can also be circulated amongst your team members.
8. Analyze large size heap dumps
Several memory profilers are good at analyzing heap dumps of smaller size. But they struggle to analyze large size heap dumps. HeapHero is geared to analyze heap dumps easily.