People like you are visiting IT Central Station to learn about APM for their company. Who uses APM? What are the use cases?
There's a lot of hype from vendors in this market.
Thanks for helping your peers cut through vendor hype and make the best decision.
The most important thing to understand about APM products (AppDynamics, Dynatrace, Instana, New Relic) is that they are all about monitoring the code that you wrote and that you are supporting in production that implements one or more business processes that must be reliable and provide a great user experience all of the time.
These products all work by inserting instrumentation into your code that measures how long each function or method in your code is taking, and that captures any errors that occur. In the case of AppDynamics and New Relic, you install their agent into the application run time (this can be automated or scripted). In the case of Dynatrace and Instana, you deploy their agent into the operating system, and the agent automatically injects the appropriate instrumentation into the application run time.
What makes APM different from other monitoring solutions is that APM products directly collect the performance (response time), throughput, and error rate of the transactions that comprise your key business services. There is no API to call to get this information, so the APM vendors all invest heavily in agents that can get this information without creating problems with excess overhead.
APM tools are typically used by enterprises that have mission-critical applications, typically revenue generating, where downtime and/or performance issues result in notable financial loss. For example, an eCommerce website for a large retailer, or a bank’s online banking solution.
In these scenarios APM tools provide deep inspection and transaction tracing across all OSI layers of the application, identifying both physical and logical bottlenecks, as well as application coding issues and/or inefficiencies.
As APM tools can be expensive, they are usually only employed for these critical applications, as opposed to the entire suite of enterprise applications.
A good APM tool provides the user interaction with the application and the application response to the user interaction. Knowing exactly what the user entered and how they navigated to the application feature is a major benefit in diagnosis and mitigation of the issue(s). APM monitoring frees users to do their work while providing real metrics for support.
APM is a very important part of the health of an application. Any application which is already or going to go on production should have tools for a health check-up.
There are different APM tools that we have as of today such as Dynatrace, Splunk, Sitescope, OEM grid and other. All these tools help in monitoring of the applications, servers, databases.
Apart from that, we can do a lot of proactive monitoring so that we are aware of what can break the application and functionality. There are tools such as Sitescope, HP BSM and Splunk where you can configure alerts and on that basis, you can get emails of alerts if something goes wrong.
If there is a slow process in, latency or application and is having errors causing applications to shut down then these tools such as Dynatrace, New Relic, Splunk, OEM grid come handy to do exhaustive RCA.
With my current understanding, through last 10 more years of APM business area, there are still chaos service criteria that APM focused on.
Although a client may not understand clearly, the vendor must consult and guide the right way without manual customization.
We are looking forward to expanding the APM market through a dramatic increase of Microservices and hybrid cloud environment.
APM is like Waze (the navigation application). As long as the car moving it will show you the health of the road but if there are no cars, you can't know anything about the road's condition. So APM is a user experience tool based on transactions analysis, while AIOps Platform provides the SLA based on the infrastructure availability/health.
Nowadays there is a culture for measuring user experience. Keep in mind that an APM solution is not a tool, nor a product, it's a subset of tools measuring (monitoring) infrastructure -> 20% of something (availability, performance) and application -> 80% of something (availability, performance).
In addition to the above, there is a tool for diagnosis purposes. This toy will help you to find out the root cause (bottlenecks) of the event causing bad user experiences (crushes, errors. latency, etc.)
The objective must be clear: speed + quality + security = a good user experience.
Two key points to keep in mind from my experience with APM tools:
1. Avoid tools overload by ensuring you provide skilled people enough time to set up the tool for the specific environment.
2. Don't create agent fatigue. Stop using the latest "magic" tool without considering the failures caused by skipping #1 above.
I believe the other responses capture the use cases sufficiently. APM tools allow you to measure the performance of your code as well as capture exceptional information about the errors etc.
To address the who part of your question: people in these roles could benefit from APM tools:
- Developers can find out what the issues are in their code.
- People conducting performance analysis can contribute to identifying the issues and recommending fixes or fixing it themselves.
- Business Analysts can (if the tool provides some level of analytics) pull out information about performance at an "application" level as opposed to code level.
- SRE is another role that may be helped by the data/information exposed by APM tools.
Companies and people who want to know how their applications are performing, how the users are experiencing the applications, where the bottlenecks are, want to reduce the MTTR and MTTI, reduce the noise, stop the blame game use APM.
- Transaction Monitoring
- User Performance
- User behaviour analytics
- JVM/CLR monitoring
- Remote Calls Monitoring
- Middleware Monitoring
- Business KPIs monitoring etc.
There are great uses of APM products depending on what are your requirements are.
APM is being used by many groups:
a) Support team – To identify the problems before they happen and take corrective actions.
b) Infra team – To maintain the high availability SLA for their servers/services.
c) Business/Functional team – Business KPIs are a good indicator of an underlying problem.
d) CIO/CEO Dashboard to see how their Apps/Systems are behaving and what is the end user experience.
Definitively there are a lot of APM players according to Gartner, but for the last nine years, Dynatrace was in the position as a leader on their MQ:
Why? Dynatrace re-invented the traditional concept of APM, transforming and innovating their software on a Software Intelligence for Enterprise Cloud :