The thing I love most about Java are the awesome tools! The plugins for IDE's, the profilers (ex.
YourKit) , the memory analyzers (ex.
eclipse MAT), the javaagents (ex.
JRebel)... But my absolute favorite of all are the APM-tools(Application Performance Management). This really helps me in my day to day life.
In this series of tutorials we will cover a lot of functionality what a great APM-tool can do for you. I will be using my favorite APM on the market
AppDynamics.
Why? It looks awesome and it does the job well. I can use in production without me becoming the bottleneck (< 2% overhead)!
Tutorial number one:
Finding the root cause! Fast!
Step 1: The application dashboard!
1: Here we are on our dashboard. We see our different tiers and nodes of our application.
2: There seems to be a problem with our response times. Better look into it!
3: Here we see the snapshots taken of the incident.
Step 2: A closer look
We have a lot snapshots of slow transactions. No stalls yet! Click on the camera...SMILE.
Step 3: Snapshot list
We see a list of all snapshots taken. We select a snapshot too see what's happening.
Step 4: Insight in the transaction
Node 2 tier 1 seems to be having some difficulty. We better drill down to find out what's going on.
Step 5: Drill Down
Root cause found: A Thread.sleep. It was only a test. Glad no one ever uses Thread.sleep in production...
Things you should know:
AppDynamics takes snapshots automatically when transactions are running slow.
So you don't have to worry about watching your application all of the time.
How does AppDynamics know my transaction is running slow? Self learning baselines. Meaning you don't have to configure a thing to detect abnormal deviations. Also it becomes more accurate over time!
P.S. In case you do not agree with the defaults, you can always configure them manually.
*Lite version(FREE): You will have to start a diagnostics session manually to take snapshots. (right click on the transaction => start diagnostic session).
That's all for today.
Next tutorial we'll talk about Business Transactions.
What are they and how can they help us?
How to define them or NOT! (auto-discovery)
Please look forward to my next blog and please give feedback!