New Relic dashboards enable collaboration and help teams provide improved digital customer experience through better performing applications and websites. Dashboards also increase employee productivity by helping teams align with business goals to better understand how their application's performance impacts their full business.
When issues arise, dashboards help teams narrow their search to a manageable number of endpoints and service layers, reducing the time to detection or resolution. Fostering collaboration mitigates the risk of friction, giving each stakeholder data relevant to their role.
This tutorial assumes:
- You have instrumented your applications in New Relic.
- You understand the basics of creating dashboard widgets.
- Optional: you have added custom attributes and events.
For more information, review New Relic's objectives and baselines tutorial, which also includes detailed information about SLIs, SLOs, and SLAs.
In this tutorial, New Relic recommends that you start with team dashboards and then build a business performance dashboard. Team dashboards let you visualize the service level indicators (SLIs) and other key performance indicators (KPIs) for your applications at a glance by providing the status of relevant components in a single view.
- Use team dashboards in your daily standups to guide your work for the day.
- Use business performance dashboards as a single source of truth for broader observation about your business as a whole.
For more information on why development and operations teams should track services running in production and make them highly visible, see the O'Reilly DevOps Handbook
1. Make a dashboard of your SLIs
Team dashboards enable collaboration and provide a shared understanding of which areas of your application or organization needs attention.
- Group your dashboards by business units or functional areas as appropriate.
- Personalize the information that is relevant to your business units.
- Ask questions such as:
- Application owners: What are the top five error types affecting my application?
- Online store manager: How many people are affected by “Unable to display the shopping cart” errors?
- Executives: What is the revenue at risk when customers check online fares and availability of flights? Which channels are affected?
- After you select the metrics to capture, use the data explorer to create views of your SLIs to add to your dashboard.
- If the data explorer does not provide exactly what you need, create your own NRQL queries.
For example, for an SLI based on
HTTP status codes, use the following NRQL query:
SELECT count(*) FROM Transaction WHERE httpResponseCode != 200 SINCE 30 minutes ago FACET httpResponseCode
In addition to application performance, it's also important to measure efficiency of your delivery pipeline. Key indicators of your team’s progress toward fully functional DevOps include:
- Deployment frequency: Companies with DevOps cultures deploy code more frequently.
- Change lead time: How quickly teams make change is a great way to measure their agility. High-performing DevOps teams average less than one hour between code commits and deploys, while traditional teams take between one to six months.
- Mean time to recover (MTTR): Every organization has failures. Modern teams recover in minutes, not hours. Having precise measurements of MTTR helps IT managers monitor the people, processes, and technology that enable rapid recovery and head off problems before they result in significant downtime.
For more information about these metrics, review New Relic's tutorial about iterating and measuring impact.
As you gather interesting views for your first dashboard, don't overthink it. Consider this initial dashboard a discussion starter.
2. Share the first version of your dashboard
After creating a basic dashboard that charts some of the key data for your business and your team, share the dashboard with your team and other stakeholders. As you engage others for feedback, you may find metrics are missing. At the same time, do not be afraid to remove a metric that is not actionable or does not make sense.
A well-formed team dashboard can help facilitate productive daily discussions and effective collaboration across your team. Good discussion questions include:
- Does this dashboard make sense to us?
- Are we measuring the right things?
- What assumptions are we making to capture this data?
- Is what we are measuring actionable? What would we do if we were alerted on this SLI?
- Could someone else understand this dashboard without explanation?
- What would the CTO think if they saw this dashboard?
Also, determine how this team dashboard can be most helpful in your daily workflow. For example, check your dashboards during your daily standup to see if you need to re-prioritize their daily work.
3. Create the team dashboard
Now that you have buy-in from the team, build out a full dashboard with the widgets your team has agreed on. At the application level, your goal is to ensure that your dashboard tracks both of these criteria:
- What is your application's health; for example, memory usage and transaction counts
- What extent is your team achieving its business goals; for example, the number of new users, user session lengths, percent of users active, etc.
We let you create many chart types for the most logical data to track. Recommendation: At a minimum, include the following:
- Response time: Area chart
- Availability percentage: Billboard
- Errors: Pie chart
- Throughput: Area chart
- Page views: Billboard
4. Create a business performance dashboard
Your business performance dashboard will give your teams an overview of how users are experiencing your app. Most New Relic customers want to know how their apps are experienced across different cohorts, such as geographic locations or device types.
Companies in many industries consider the following key performance indicators (KPIs) essential to business performance. Use the following NRQL examples to build widgets for your dashboards.
- Session count NRQL query
To run a NRQL query for Browser session count:
SELECT uniqueCount(session) FROM PageView
- Session duration NRQL query
To run a NRQL query for Browser session duration:
SELECT average(duration) AS 'Seconds' FROM PageView FACET session
- Page views NRQL query
To run a NRQL query for Browser page views:
SELECT count(*) AS '' FROM PageView
- Page render time NRQL query
To run a NRQL query for Browser page rendering:
SELECT average(pageRenderingDuration) FROM PageView
- Conversion funnel NRQL query
To run a NRQL query for page conversion funnel:
SELECT funnel(session, WHERE pageUrl LIKE 'https://newrelic.com//'/ AS 'Home', WHERE pageUrl LIKE 'https://newrelic.com/search#stq=apm&stp=1' AS 'Search', WHERE pageUrl LIKE 'https://docs.newrelic.com/docs/apm' AS 'Select') FROM PageView
- Error percentage NRQL query
To run a NRQL query for APM error percentage:
SELECT count(*) FROM Transaction WHERE httpResponseCode !='200'
- Apdex NRQL query
To run a NRQL query for APM Apdex:
SELECT apdex(duration, t:0.5) FROM Transaction
- DOM readiness NRQL query
To run a NRQL query for Browser DOM readiness:
SELECT average(domProcessingDuration) FROM PageView