Application Performance Monitoring (APM)
APM helps you maintain a flawless user experience with responsive applications in a dynamic application environment of continuous integration and delivery.
Why monitor your applications’ performance?
Application performance monitoring (APM) is the monitoring and management of performance and availability of software applications. APM aims to detect and diagnose complex application performance problems to provide end users with a high-quality experience and to maintain expected levels of service.
Why InfluxDB for APM?
In a digital economy where complexity is a given and a responsive application is a requirement, visibility into your entire application has become a necessity for enterprises.
An outstanding end-user experience is built on a solid time series data foundation. This is because performance indicators show change over time and are more actionable when examined in the context of real-time full-stack monitoring and transaction observation.
Get deep insights for early detection
Gain early detection of anomalies to help anticipate service disruptions. Use this insight to diagnose and identify root-cause quickly, and thus reduce time to remediation and recovery.
Monitor and optimize the user experience
User experience can be monitored by synthetic or real user traffic to keep experiences consistent and optimal, which translates to higher conversion and retention rates.
Automate workflows and provisioning
Intelligent triggers integrated with auto-remediation unload the burden from IT Ops teams, and help them focus on struggling services and potential breakpoints before they impact user experience.
APM implementation approaches
Application performance monitoring can be implemented with various approaches: synthetic transaction monitoring, real user monitoring and distributed tracing. All three approaches try to get to what matters most — keep the user experience great.
Synthetic transaction monitoring (STM)
Synthetic transactions are used to monitor the user experience programmatically via scheduled use cases (emulate user traffic and load). STM is a cost-effective and proactive way to monitor the application and useful during transition periods, upgrades, updates and new functionalities which are the most risky and error-prone situations.
Real user monitoring (RUM)
RUM provides a view from the user perspective. It is important because it reveals the real deal — real users doing what they do. RUM takes into account every contributing factor to the real end-user experience — from latency of services and bandwidth struggles to limitations at the client-interface (e.g. mobile).
Distributed tracing monitoring
In distributed applications, a transaction can cross many boundaries: process, container, host, domain and location. Maintaining performance visibility of causally-related events in transaction execution is necessary to protect critical business workflows. Distributed tracing monitoring enables detection and preemptive remediation of struggles in any part of the execution path. And in the event of an issue, it is an important tool for diagnosing root-cause when degradation or problems arise.
“Why InfluxDB? For Playtech, it was very important to have observability, to understand system behavior to predict possible outages and problems in the very early stages.”
Technical architect • Playtech
Read case study
“We recently introduced InfluxDB as our first-class time series database system, where we had the opportunity to work directly with InfluxData to ensure we were on a path that is scalable, robust, and in line with the future direction of their platform.”
Engineer • Wayfair
Read case study
Web Shop Fly
Engineering manager • Bonitoo
Read case study
InfluxDB for application performance monitoring
APM can be performed using InfluxData’s platform InfluxDB. InfluxDB is a purpose-built time series database, real-time analytics engine and visualization pane. It is a central platform where all metrics, events, logs and tracing data can be integrated and centrally monitored. InfluxDB also comes built-in with Flux: a scripting and query language for complex operations across measurements.
Implementations using InfluxDB for application performance monitoring include:
- Optimization of end-user experience and purchase transactions in ecommerce space (Wayfair Case Study, and Web Shop Fly webinar and application performance monitoring blog)
- Online monitoring of transactions in online gambling and gaming platforms (Playtech case study)
- Real-time monitoring of website availability and performance via end-user emulation (xOps solution)
- Observation of cluster backup transactions in cloud environment (InfluxData Site Reliability implementation)
- Root-cause identification to improve network monitoring, APM and visibility (Riverbed)
Read more about application monitoring implementations made available by the InfluxDB community:
Telegraf Zipkin plugin: Zipkin tracing data can be collected via Telegraf and sent to InfluxDB.
Jaeger InfluxDB plugin: gRPC client plugin is used to collect tracing data and send it to InfluxDB.
Synthetic transaction monitoring: xSum emulates the user journey through a site or web application, ensuring that transactions take place error-free. All data is stored in InfluxDB.
Load testing: Flood.io is a distributed load testing platform that supports testing with open source tools like JMeter, Gatling, and Selenium. Flood.io’s platform collects and aggregates real-time data from the tests conducted by their customers in InfluxDB Cloud.
DevOps engineers would love to measure the performance and availability of every page of a website or application. It’s easy enough to do technically. Just attach a Synthetic User Monitor to each page and then see the results in an easy-to-use data presentation tool. The snag is that it can be expensive since Synthetic User Monitoring tools usually come as part of a large Application Performance Monitoring package.