That’s important, because your customers have no sense of whether it’s the frontend, backend, infrastructure, or third party causing an issue—they simply suffer from a substandard experience. No matter the cause, the dissatisfaction generated by these disappointing experiences reflects poorly on your business.
Starting with your user experience
Given that the customer is the center of the experience, let’s start with understanding the technology layer closest to the customer: the website frontend or native mobile app itself. We’ll address websites and mobile apps separately because they have slightly different characteristics.
The website experience
Let’s run through some of the key health metrics and features that New Relic offers to track the quality of your website’s digital customer experience.
Availability: If your site is completely down, then functionality and speed have little meaning. That means the first goal is simply to verify your website is accessible:
- Check browser throughput. When you suspect something has gone wrong, the best test for overall application health is your throughput. Looking at your actual user traffic in New Relic Browser can reveal whether your customers are engaging with your site in real time. If this traffic has dropped off, it could mean users aren’t able to reach your website at all, possibly due to a DNS or routing issue, or that they’ve navigated away from your site completely in frustration. An unexpected dip in throughput is often a sign that there’s an issue to troubleshoot.
- Set up availability alerts. Since you don’t want to be notified of outages by frustrated customers, you want to continually check that your website is up by using New Relic Synthetics’ availability monitors. If a URL isn’t reachable, a page isn’t rendering properly, or an API is reporting incorrect payloads, New Relic can trigger a monitor alert and notify you before your customers are even aware of the problem. These monitors can regularly test your website from multiple global locations based on the distribution of your customer base. When coupled with the global throughput information in New Relic Browser’s filterable geographies, you can get a more comprehensive view of your data and a more complete picture of availability than you could with Browser/Synthetics monitoring alone.
- Track uptime service level agreements (SLAs). Establish the baseline uptime for your website with the SLA report in New Relic Synthetics. These monitors keep tabs on your overall uptime on a daily, weekly, or monthly cadence, which you can communicate to stakeholders throughout your team, business, or customer base.
Functionality: Once you establish that the website is up, you need to make sure it’s not broken for your customers:
- Validate that key user actions work correctly. Emulate real customers going through critical paths in your applications (i.e., login, checkout, directory, search, etc.) with New Relic Synthetics’ scripted monitors. This will help you identify if something is explicitly broken for your users and to ensure your most important transactions are being exercised every minute from around the globe. The goal is to ensure that any customer-impacting issues, even in the underlying backend and infrastructure layers of your website, will also be detected.
- Set up functionality and error alerts. As with the availability metrics, all of these metrics are integrated with New Relic’s alerting system and can be set up to notify you when anything has gone wrong. Setting up alerts on your most important scripted monitors is particularly useful; notifications here mean a critical user path through your application has just been broken.
Speed: Now that you know you’re up and running, it’s time to make sure your website is not so slow that it’s generating high user bounce rates:
- Triage frontend load times. Identify your slowest page loads in New Relic Browser to see the major bottlenecks in your applications. Leverage percentiles and histograms to better understand what’s happening across your user base (a small set of pages can skew averages when viewed with less sophisticated tools). Couple this with custom targeting of your site’s most important pages (checkout, login, etc.) to focus your efforts on the areas of greatest impact.
- Configure your frontend Apdex score. New Relic uses an industry standard known as Apdex, which categorizes your site’s response times relative to a user-defined value. Set up an frontend Apdex threshold in New Relic Browser to match the responsiveness your customer base expects. Then work to improve this benchmark of user satisfaction.
- Set up page load speed alerts. Dynamic baseline alerting can help set the thresholds for healthy page-load response times. A gradual degradation of response times could be the precursor to more serious problems and can serve as an early warning signal, especially after a recent code deploy.
The mobile experience
Here are some of the key health metrics and features that New Relic offers to track the quality of your mobile app’s digital experience, again using the dimensions of service-level quality discussed above:
- Track app launches. Perhaps the most important question for mobile developers is “Are people using my app?” New Relic Mobile answers this question by tracking how often an app launches. If this number collapses, especially after a new release or mobile OS version, it could mean users are experiencing errors, crashes, or slowness.
- Review crash occurrences. The frustration of opening an app to an immediate crash is often enough to make a user delete the app. Crash analysis offers detailed insights into why crashes are occurring in production, with the context needed to help fix them. You can better understand your highest-priority crashes through powerful analytics, filter to focus on high-crash screens, view the most common location in the code associated with crashes, or drill down to an individual user’s crashes.
- Set up alerts. If your number of app launches falls, or the number of crashes skyrockets, particularly after a new release, you want to be first to know. Set up alerts on the health of your mobile app to make sure you quickly learn of these customer issues, before your app store ratings start to sink with crash complaints.
- Fix HTTP errors. Rarely are mobile apps self-contained. Instead, they’re typically dependent on backend APIs, but limited visibility makes it difficult to debug API errors. Shared context into the backend with HTTP request information can equip mobile developers to be more responsive to API errors and partner more closely with backend teams. Cross-application traces help teams understand the end-to-end path of an HTTP transaction from the mobile app to the corresponding application. Combined with New Relic Synthetics’ API monitoring of the backend, you can proactively identify issues before customers experience them.
- Improve HTTP response times. In mobile development, you can only be as fast as your backend APIs. When silos separate mobile and backend developers, performance SLAs are hard to establish and audit. Using New Relic Mobile, you can see the API transactions broken down by location, device, and even connection type. A common language and data showing where milliseconds are being spent helps make performance a responsibility for everyone on the team.
- Track user interaction times. A poorly written piece of mobile code can cause screen stutters, or even lock up a UI thread completely in a hard freeze. New Relic Mobile builds an analysis of the speed of each user interaction in your app, with detailed breakdowns of the most common and slowest interactions. That helps you spend your time where you can make the largest impact, leveraging real interaction data with granularity down to individual users.
Check through your backend services
Websites and native mobile apps are often powered by a set of supporting APIs and microservices. If these backend services degrade, so can the digital customer experience. Fortunately, there are techniques that can make it easier to monitor and debug these backend components to help ensure a consistently high-quality experience for your customers:
- Ensure the health of your backend APIs and microservice topology. Identify your key microservice bottlenecks using New Relic APM service maps and tune their performance. Then set up API monitors in New Relic Synthetics on these services to validate that the services are available, providing the correct API payload responses, and doing so within the response time defined by your SLA. Microservices that are not publicly accessible can be monitored using private minions in New Relic Synthetics.
- Configure your backend Apdex score. Set up an Apdex threshold in New Relic APM to match the responsiveness from your customer base, and align this to your Apdex score in New Relic Browser. You will likely find the greatest opportunity to improve the speed of your page load in the frontend, which is monitored by New Relic Browser. However, this optimization work will often involve jumping into the backend to tune slow endpoints and services.
- Check performance of third-party services. Third party-services for data, email, messaging, content, and other functions can create backend dependencies. Any issues with your third-party vendors can cause degradations or crashes; monitor these services and endpoints with New Relic Plugins and New Relic Synthetics API monitors—and decouple these external services if necessary.
- Triage backend errors. Review the errors most common in the most important parts of your application errors in New Relic APM error analytics so you can triage and address the ones with the greatest impact on your quality of service.
- Identify key transactions in your services. After identifying your key services, you can start identifying the key application transactions within these services—the most critical path through your most critical services. Flag them as key transactions in New Relic APM for heightened monitoring visibility to help ensure early awareness of any issues.
- Resolve slow application transactions and database calls. Troubleshoot slow-running application transactions or blocked database calls with the greatest impact on your customers for tuning and optimization. Triage these bottlenecks in New Relic APM transactions and databases, respectively, to check overall responsiveness and digital experience.
- Set up backend application alerts. If your application server goes down, your whole digital experience goes down, so be sure to set up alerts on the most critical areas of your application so you can be notified of the warning signs:
○ Set up uniquely prioritized alerts on the key transactions so that if they break, you know to expedite your response.
○ Configure deployment markers in New Relic APM to provide greater context to your alerting policy. Alerts triggered by broken key transactions, spikes in error rates, or lengthening response times immediately after a deployment may point to a bad release that needs to be rolled back.
Harden your underlying infrastructure
The foundation of your technology stack is your on-premise, hybrid, and/or cloud infrastructure. Issues at this tier can bring down everything above it, including your digital customer experience. The measures below can help make sure you have full visibility into how your infrastructure is working:
- Make sure hosts are responsive. Create ‘Host Not Reporting’ alerts in New Relic Infrastructure to find out if you have unresponsive systems.
- Track system resource health and consumption. If your underlying infrastructure goes down, your whole digital experience goes down, so it’s critical to set up New Relic Infrastructure alerts to ensure key resources like compute, network, and storage are not exhausted or over-provisioned, or that vital processes have not gone down.
- Track configuration changes. Infrastructure changes are a leading cause of outages. Use correlated health metrics in New Relic Infrastructure to make sure your containers and infrastructure don’t go down due to a bad configuration update, even across different data centers, hybrid environments, or cloud providers.
- Manage capacity and scaling. Leverage load testing to see if you have sufficient infrastructure resources to handle traffic spikes without service degradation as well as for capacity planning for future growth.
- Understand performance of third-party services. Third-party services for data stores, load balancing, caching, messaging, queuing, and others can create backend dependencies. Vendor issues can cause degradations or crashes; for example, you can monitor AWS services and endpoints with New Relic Infrastructure Integrations.
- Track performance of Docker containers. Container services create an additional technology layer where system issues may arise. Review Docker health metrics in New Relic to ensure system stability.
- Integrate monitoring into your IT automation workflow. Make sure your configuration management tools include monitoring as part of your infrastructure automation to ensure resources are automatically instrumented for monitoring. New Relic Infrastructure, for example, offers pre-built integrations for Ansible, Chef, and Puppet.
- Review security updates and packages. Zero-day vulnerabilities and outdated packages can expose security vulnerabilities, and can require extensive inventory audits to patch. Quickly search across your infrastructure in seconds using the inventory search function in New Relic Infrastructure to address these security issues.