THREAD DUMP ANALYSIS API–do not use

In this modern world, thread dumps are still analyzed in a tedious & manual mode i.e., you have to get hold of DevOps team, ask them to send you the thread dumps, then they will mail you the thread dumps, then you will upload the dumps in to a thread dump analysis tool, then you have to apply your intelligence to analyze it. There is no programmatic way to analyze thread dumps in a proactive manner. Thus to eliminate this hassle, fastthread.io is introducing a RESTful API to analyze thread dumps. With one line of CURL command, you can get your thread dumps analyzed instantly.

Here are a few use cases where this API can be extremely useful.

Use case 1: Production Health Check

Most of the DevOps invokes a simple Http ping to check the application???s health. This ping is good to detect whether application is alive or not. But it won???t inform anything beyond that. It won???t report whether application is poorly responding, it won???t report whether Database connections are locked up, it won???t report whether CPU is spiking up, it won???t report whether memory is leaking. Even if it reports those issue, still you would have to manually analyze to see what is causing these problems. Now with the introduction of this Thread dump analysis API, you will not only know the healthiness of the application ??? but also the root cause the problem. Beauty of this health check is: It doesn???t add any overhead (or negligible overhead). Because entire analysis of the thread dumps are done on a remote server. The only thing you would have to do is capture the thread dumps from your production machines and invoke this API.

Use case 2: Performance Tests

When you conduct performance tests, you might want to take thread dumps on a periodic basis and get it analyzed through the API. In case if thread count goes beyond a threshold or if too many threads are WAITING or if any threads are BLOCKED for a prolonged period or lock isn???t getting released, it needs to get in to the visibility. It should be analyzed before code hits the production. In such circumstance this API will come very handy. Because analyzing several thread dumps meticulously is impossible for anyone.

Use case 3: Continuous Integration

As part of continuous integration it???s highly encouraged to execute performance tests. Thread dumps should be captured and it can be analyzed using the API.  If API reports any problems, then build can be failed. In this way, you can catch the performance degradation right during code commit time instead of catching it in performance labs or production.

How to invoke Thread dump analysis API?

Invoking Thread dump analysis API is very extremely simple:

Register with us. We will email you the API key. This is a one-time setup process.
Post HTTP request to http://api.fastthread.io/fastthread-api?apiKey={API_KEY_SENT_IN_EMAIL}
The body of the HTTP request should contain the Thread dump that needs to be analyzed. You can either send 1 thread dump or multiple thread dumps in the same request.
HTTP Response will be sent back in JSON format. JSON has several important stats about the Thread dump. Primary element to look in the JSON response is: ???problem???. API applies several intelligent thread dump analysis patterns and if it detects any issues, it will reported in this ???problem??? element.
CURL command

Assuming your Thread dump file is located in ???./my-thread-dump.txt,??? then CURL command to invoke the API is:

curl -X POST ???data-binary @./my-thread-dump.txt http://api.fastthread.io/fastthread-api?apiKey= ???header ???Content-Type:text???

It can???t get any more simpler than that? Isn???t it?

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: