This tutorial covers methods to identify and track the key indicators of customer experience and clarifies the effect of application performance on your business. A clear understanding of what creates successful customer experience helps DevOps teams drive greater efficiencies in work efforts and deliver greater productivity.
An efficient, well-functioning DevOps culture enables organizations to make rapid, frequent releases and product changes. A strong DevOps culture also democratizes data beyond the typical backend users, and makes it available to groups like customer service, support, sales, and marketing. However, this data information enablement is only useful if its purpose is to improve and optimize customer experience.
This tutorial assumes you’ve reviewed the Establish team dashboards tutorial.
1. Use custom attributes to associate performance data
In order to relate performance data to user experience, you need to capture information that ties a particular user or customer to the front- and back-end transactions that are responsible for their interactions with your application. In New Relic, you collect this data with custom attributes.
If you plan to collect this information in both frontend and backend, be sure to forward custom attributes from APM to Browser.
Here are some common attributes to collect:
Organization or customer ID
A/B testing cohort value
High-value customer indicator
Purchase value or product IDs (for e-commerce)
If you’ve completed the Iterate and measure impact or Establish objectives and baselines tutorials, consider what service level objectives (SLOs) or key metrics you defined in those stages. New Relic recommends including attributes like the above to measure the impact of your changes and optimizations at a customer level—not only a performance level.
2. Create dashboards with performance and business metrics
Using the attributes collected in Step 1, build dashboards to examine the impact of performance issues on your users. Additionally, to drive visibility across your teams, add dedicated widgets to the team dashboards you built in the Establish team dashboards .
Number of errors by username:
SELECT count(*) FROM TransactionError FACET username
Median response time by username:
SELECT percentile(duration,50) FROM Transaction FACET username
Total purchase value in transactions with errors:
SELECT sum(purchaseTotal) FROM TransactionError FACET username
If you include a
FACET clause in your queries, you’ll be able to click into metric results to see corresponding change in the performance data. For more information on faceting, see Linking Between Dashboards to Drill Into Your Data.
3. Share dashboards across departments
Dashboards, data, and metrics that nobody looks at or knows about might as well not exist. When considering how, or with whom, to share your dashboards, consider the following questions:
Which teams are responsible for applications that have high levels of end-user interaction?
What non-engineering teams could benefit from this information?
Customer support: Could customer issues be resolved faster?
Product/engineering: Could product make more informed roadmap decisions?
Customer success: Can this data be used to make our customers more successful?
Are there other teams that can benefit from cohort analysis that includes performance metrics?
4. Utilize data to separate performance by cohort and debug issues at the customer level
After you create your dashboards, use them to scope issues affecting particular customers or sets of customers. For example, the following widget shows which apps have errors for a particular user:
Use attributes that track user and performance to set alerts on high priority users or customers. For example, you could include a
WHERE clause in your NRQL queries to scope the results to a set of user IDs or customer IDs. Set alerts on any performance or business metric that is tied to these attributes. See NRQL alerts will change how you think about using New Relic data for more information.