App Metrics based → It can inform us how many requests our app receives and which URLs are likely to be slow. They can’t tell us why, because they don’t do code level profiling.
Code level performance → It can analyze our application based on code profiling and transaction tracing
Network based → It can assess the performance of our application based on network traffic. There is a whole product category called NPM that focuses on these types of solutions.
Developers: 10 Critical Application Performance Management Features for you
Every web request and transaction’s performance
Performance profiling at the code level
Usage and performance of all application dependencies like databases, web services, caching, etc (particularly SQL slow query, web services calls failing, etc)
Individual web requests or transactions are traced in great (Detailed Web request info like URL, Who was the user, What dependencies did your code call [SQL, caching, HTTP calls, etc], Logging statements, Application errors & Key methods in your code etc..)
Basic server monitoring and metrics like CPU, memory, etc
Application framework metrics like performance counters, JMX MBeans, etc
Custom applications metrics created by the dev team or business