Cloud computing changes everything, and application and infrastructure monitoring are hardly exceptions. The flexibility, scale, services, and pay-as-you-go pricing options provided by modern cloud platforms—Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform, and tools like Pivotal among them—have completely changed how companies architect their applications as well as how they deploy the corresponding infrastructure.
Enterprises no longer rely on one monolithic app deployed over many months on a bare metal or virtual machine host talking to a single database; instead, they increasingly choose to deploy fleets of microservices and/or containers on demand. Compute instances are no longer static servers but are becoming dynamic instances deployed on demand (based on usage) and seamlessly load balanced. Businesses no longer rely on a static Content Delivery Network, but routinely work with multiple CDNs serving different regions. Web developers are shifting more load to the client (your end user’s browser), which can make the user experience less predictable. And the list of changes goes on.
To keep up with all this and effectively monitor these cloud-based applications and dynamic infrastructure, monitoring platforms need to change as well. Relying on legacy on-premise or single-tenant, managed hosting (aka “SaaS look-alikes”) monitoring solutions for your dynamic infrastructure and cloud-hosted applications is like driving a go-kart on the Autobahn—you just can’t keep up.
Here are seven of the key features and capabilities you need to properly monitor modern cloud-based applications and infrastructure:
1. The ability to capture and query events and traces in addition to aggregate data
When a customer buys something online, the process generates a number of HTTP requests. For proper end-to-end cloud monitoring, you need to see the exact set of HTTP requests the customer makes while completing the purchase: each of the individual product-detail pages, the add-to-cart POST requests, the cart view page, the billing and shipping POST requests, and the final “Submit Order” page. The ability to capture the raw transaction data is particularly important in cloud deployments, where requests often go through a number of dynamic components—from a browser or mobile device to a CDN followed by a load balancer—before reaching the application and the microservices and queues involved in completing the transaction.
Being able to quickly identify bottlenecks and understand the relationships between different components in cloud-native systems is a huge differentiator. With New Relic you can see the exact response time of each component for each transaction, not just the aggregate metrics associated with those transactions. That way, when a customer calls support to ask why they got an error when checking out, you (or your support or DevOps team) can actually find the exact set of transactions, across all of the New Relic-managed tiers of your application stack, that caused the error.
Critical metadata such as error traces and custom attributes are available in New Relic to enhance trace and event data. By segmenting your data via these user- and business-specific attributes—a customer’s username, for example—you can better prioritize improvements and sprint plans to optimize for those customers. Many customers make use of our SQL-like New Relic Query Language (NRQL) to query this collected data, which is stored in our purpose-built, multi-tenant analytics database (aka NRDB) to create dashboards and alerts. (Find out how NRQL Alerts Will Change How You Think About Using New Relic Data.)
2. The ability to monitor and visualize the connections among your sites, apps, and infrastructure
When companies move to the cloud, it’s no longer all about one big monolithic app talking to a database server. Instead, you have to worry about problems cropping up in increasingly complex connections among an ever-growing number of components, including load balancers, queues, serverless architectures, apps, microservices, and more. When it comes to cloud monitoring, it’s important that your transaction traces connect all of the pieces together. It’s also important that you have deep language agents delivering a profound understanding of internal application code to deliver critical, insightful data to the individual components themselves.
With almost a decade of experience, New Relic supports seven languages out of the box, with no manual configuration or code changes required. In addition, New Relic APM service maps provide an essential visual representation of the connections between components, allowing you to track a performance issue across all touchpoints. Once you’ve identified an issue, trace data lets you identify the associated code that is causing it, which allows you to fix things faster. And our innovative new Health Map visualization integrates our industry-leading APM and infrastructure monitoring data to help ops and DevOps teams better understand and troubleshoot their applications.
Most important, New Relic goes beyond just the connection between the application server and the infrastructure; it also shows you how client-side performance across mobile and browser applications directly impact the customer experience. As mentioned above, web developers are now heavily dependent on the end user’s client. As a result, the backend doesn’t always tell the whole story. Sometimes when your application server looks fine, your client is actually failing over and erroring out. New Relic Browser, New Relic Mobile, and New Relic Synthetics make the New Relic platform one of the only solutions that actually captures the entire end-to-end performance story.