Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

Shared Dashboards Contest—Add Your Queries Here!

shared-dashboards

#88

Our dashboard is displayed on a screen in the open space.
It is showing the live state of our production app.
The first 2 charts are showing the error rate and the response time for the web servers.
The one with a little blue spike is the notification consumption.
Then the throughput and the response time for the asynchronous tasks.

For the numbers, we are showing the waiting messages, for the async tasks and in rabbitMQ. We are sending to newrelic custom data :

SELECT latest(notifications) FROM bot
SELECT latest(messages) FROM rabbit

The last 4 response times are a specific transaction we are monitoring, and I put the percentiles (5, 50, 95) and the median time.

SELECT percentile(duration, 5, 50, 95), average(duration) FROM Transaction WHERE name = ‘WebTransaction/Custom/api/****’ since 1 hour ago


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#89

SELECT uniqueCount(TrainingProductListActivityResumeAttribute) FROM Mobile SINCE 6 HOURS AGO COMPARE WITH 1 WEEK AGO TIMESERIES

How much time user in this session we can see here


#90

We use this dashboard as a tool for monitoring SLA performance in one of our apps.

One of its objectives is to track slow internal API requests but also external ones.

400 & 500 Error rate

SELECT percentage(count(), WHERE httpResponseCode >= ‘400’) as ‘% 400 Error’, percentage(count(), WHERE httpResponseCode >= ‘500’) as ‘% 500 Error’ FROM Transaction WHERE appName=‘app-name’ AND response.headers.contentType=‘application/json’

External durations

SELECT count(externalDuration) FROM Transaction WHERE appName=‘app-name’ AND response.headers.contentType=‘application/json’ FACET buckets(externalDuration,5,10)

Number of requests

SELECT count(*) as ‘Requests’ FROM Transaction WHERE appName=‘app-name’ AND response.headers.contentType=‘application/json’ FACET name


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#91

SELECT average(cpuPercent) from SystemSample where providerAccountName = ‘xro-prc-prod’ and label.serverclass like ‘wfm%’ and label.serverclass not like ‘%ntx%’ facet label.serverclass, ec2InstanceId LIMIT 100 TIMESERIES

We use above query to calculate CPU usage for our production instance. This is quite handy as we can take action if cpuPercentage exceeds some defined threshold limit.

cpuusage


#92

UI Support Dashboard

This dashboard is used to represent one of our customer facing UI regions at a high level.
It provides insight into the below.

  • APDEX|Througput|ResponseTime of one of the UI applications for a various region.
  • Core service performance it relies upon.
  • Snapshot of current scaling within that region and its failover region.
  • Order Metrics
  • 5 minute Tradewindow snapshots

This allows us a quick glance one stop shop for the front end application performance and current order trends.

Chart Deets

Required Products: APM, Custom Events.
Level of Effort: medium
Throughput, Response Time, Host Count, Apdex are all standard to NR APM.
The Order count data and windowed snap shots are passed in as custom events from SQL data via send-custom-events-event-api

Query Info

Active Hosts Per Region

Bar chart

SELECT uniquecount(host) FROM Transaction FACET CASES(WHERE appName like ‘%-MY-APP’ AS REGION1, WHERE appName like ‘%-MY-APP’ AS REGION2) SINCE 1 hour ago

Shows the current host count in relation to the UI Apps in the primary and failover region for last hour.

Windowed Order Count

Line Chart

SELECT latest(Current), latest(Expected) FROM CustomEvents WHERE CountryCode = ‘Apple’ TIMESERIES AUTO

Provides visualisation into a regions current orders vs an aggregated expected value over the last hour.

5 Min Window

Line Chart

SELECT sum(Count) as ‘Orders’ FROM CustomEvents WHERE CountryCode = ‘Peach’ SINCE 12 hours ago TIMESERIES 5 minutes COMPARE WITH 1 week ago

Provides visualisation for current order count counts over a 5 min window against data from same day and time last week.


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#93

New Relic – APM & Infra Dashboard

Dashboard gives you the visibility into your apps & dynamic infrastructure and improve experience with real-time analytics. Below dashboard provides analysis of APM & Infra metrics with respect to tracing the transaction, infrastructure, errors and etc…

Dashboard Details:

Required Products: APM, Infrastructure.
Level of Effort: Low

This dashboard will work on the standard New Relic data models and does not require any custom attributes or events

Enabled Event Types: SystemSample, StroageSample, TransactionError, InfrastructureEvent

Enabled Attributes: app_name, hostname, apmApplicationNames, httpResponseCode, entityId

Chart Details:

Infrastructure Metrics:

Line Chart:

SELECT average(cpuPercent), average(cpuIOWaitPercent), average(cpuSystemPercent), average(cpuUserPercent), average(loadAverageOneMinute), average(loadAverageFiveMinute) FROM SystemSample, StorageSample TIMESERIES

Table:

SELECT average(duration), max(duration), percentile(duration, 50, 75, 90) FROM Transaction FACET name limit 15 SINCE 1 week ago

Pie Chart:

SELECT count(*) FROM TransactionError FACET error.message SINCE 1 day ago

Line Chart:

SELECT average(receiveBytesPerSecond) as ‘Inbound BW’, average(transmitBytesPerSecond) as ‘Outbound BW’ FROM NetworkSample TIMESERIES SINCE 1 hour ago

Gauge:

SELECT max(diskUsedPercent) as ‘Percent Full’ FROM StorageSample since 1 hour ago

Permalink:

https://insights.newrelic.com/accounts/2083164/dashboards/787151?duration=604800000&query=SELECT%20average(receiveBytesPerSecond)%20as%20'Inbound%20BW',%20average(transmitBytesPerSecond)%20as%20'Outbound%20BW'%20FROM%20NetworkSample%20TIMESERIES%20SINCE%201%20hour%20ago&source_id=2083164&kiosk=true&now=1543839458780

Regards,
Dinesh Kumar R


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#94

[medium] - Incidents Dashboard for alerts & MTTR by app

We needed to understand how many alerts/incidents were generated per application and what the average time was to resolve each issue in order to determine app stability.

This was then used to review which applications cause the most alerts and then review to understand app issues and tune alert thresholds. Ongoing we now use the stats as a basic MTTR.

I created this dashboard a few weeks ago have tweaked it frequently to ensure the right level of alerting on our apps.

This took a fair amount of trial and experiments, reading and account manager advice and while I’m not 100% convinced it’s absolutely right, we have got to a point where MTTR by app (well policy_name) is viable. Any suggestions / contributions on how to enhance this (specifically MTTR calculation) would be useful.

Screenshot

Dashboard Details

Required Products: APM
Level of Effort: Medium

Pre-requisites

For this dashboard to work you need alerts in place, a new relic webhook set up and associated with an alert policy. The alert webhook will create an entry in the newrelic ‘Alert’ data model.

This is how I’ve done it:

  • Set up a webhook as an alerting Notification Channel
  • Set up Alert Policies as application or service names (as the customer JSON format for the webhook doesn’t pass the app name!!). You’ll need to use the policy_name to group the alerts unfortunately
  • let a few alerts happen and check they’re present in Insights
  • create a dashboard and name it ‘MTTR stuff’ or something
  • Go into insights and run the following query:

SELECT (max(timestamp)-min(timestamp))/60/1000/count(incident_id) as ‘Average (min)’, (max(timestamp)-min(timestamp))/60/1000 as ‘Total Duration (min)’, count(incident_id) FROM Alert where current_state = ‘closed’ FACET policy_name, severity SINCE 4 weeks AGO

  • give the output from the query a name and ‘add to dashboard’ saving it to the dashboard you created earlier
  • Use NRQL to add more charts & timeseries to the dashboard as you need

This is my stab at doing MTTR / Alert trend reporting in NewRelic. I’d be very happy for any tips on how to make this better or enhance the average/MTTR calculation.


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#95

Application Errors Dashboard

This dashboard serves as a single window to look for all the errors being faced by our application.
Each chart helps us to find very key information about the errors and to understand their trends, and helps finding the root cause for the issues being faced by any application.

Chart Details

  • Errors Percentage by Applications: this chart shows the total count of errors and their percentage distribution by applications, we can select any application from this chart to look only for the related details on the dashboard

SELECT count(*) FROM Transaction
where name like ‘NAME’
SINCE 1 day ago Facet request.parameters.application limit 100

  • Error Count by Operations: this chart shows the actual code library.Class.Method name from where the error has been thrown, and the number of occurrences. We can apply filter by selecting any particular class method to see errors related to only that method, and find applications being impacted by that particular error.

SELECT count(*) FROM Transaction where name like ‘NAME’ SINCE 1 day ago FACET request.parameters.operation LIMIT 1000

  • Error Trends by Applications: this chart shows the trends of number of errors for each application. It has been very useful for us to find quickly if any application starts having issues, as we can easily see the spike in errors for that particular application. Specially after the deployment, it is very useful to monitor if any new errors started to occur.

SELECT Count(*) FROM Transaction where name like ‘NAME’ SINCE 1 day ago FACET request.parameters.application TIMESERIES

  • Errors trend by Operation: this chart shows the trends of errors by methods, and helps us in the same way to find the issue quickly.

SELECT Count(*) FROM Transaction where name like ‘NAME’ SINCE 1 day ago FACET request.parameters.operation TIMESERIES

  • Error Details: After selecting application filter and operation filters, this tabular chart comes very handy to drill into further details. Like reading the actual stack trace from request.parameters.error details, finding the server and IP address of the server on which the error occurred and further details of request parameters.

SELECT Count(*) FROM Transaction where name like ‘NAME’ SINCE 1 day ago FACET request.parameters.operation TIMESERIES

Implementation
products required: APM & insight

  • we already have an exception framework, which is a WCF service that we call to log every exception. We have enabled the request.parameters in new relic config to get the related information as the call land on the WCF service. The data that we receive from that request is represented in this dashboard.

Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#96

– edited NQL
SELECT percentile(databaseDuration,95) from Transaction WHERE (requestType is not null or RequestType is not null) and (requestType != ‘’ or RequestType != ‘’) and (appName LIKE ‘%–%’ or appName LIKE ‘%-%’) and appName NOT LIKE ‘%%’ and appName NOT LIKE ‘%%’ and appName in () timeseries 15 minutes SINCE 24 hours ago

SELECT percentile(databaseDuration,95) as Percentile from Transaction WHERE (requestType is not null or RequestType is not null) and (requestType != ‘PaymentHealthCheck’ or RequestType != ‘’) and (appName LIKE ‘%–%’ or appName LIKE ‘%–%’) and appName NOT LIKE ‘%-pp%’ and appName NOT LIKE ‘%-pp%’ and appName in (’’) SINCE 24 hours ago


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#97

Shows indepth analysis of all the errors of a kubernetes pod right from the loadbalancer down to the pod

image

SELECT sum(`provider.httpCodeElb4XXCount.Sum`) as '400 errors (frontend)', sum(`provider.httpCodeElb5XXCount.Sum`) as '500 errors (frontend)', sum(`provider.unHealthyHostCount.Maximum`) as 'Unhealthy Hosts', max(restartCount)-min(restartCount) as 'Pod Restarts', filter(count(`error.message`), where `error.message` is not null)*100/filter(count(duration), where duration is not null) AS 'APM Error Rate' FROM LoadBalancerSample,K8sContainerSample, Transaction, TransactionError WHERE (providerAccountId = '10763' and provider in ('Alb', 'AlbTargetGroup') AND entityName = 'example') OR deploymentName = 'example' OR appName = 'example'  UNTIL 6 minutes ago

Pod CPU Usage - % Used vs Limits:

FROM K8sContainerSample SELECT latest(cpuUsedCores/cpuLimitCores) * 100 as '% CPU' WHERE deploymentName = 'foo' FACET podName, containerName UNTIL 1 minute ago TIMESERIES limit 50

Pod Memory Usage - % Used vs Limits:

FROM K8sContainerSample SELECT latest(cpuUsedCores/cpuLimitCores) * 100 as '% CPU' WHERE deploymentName = 'foo' FACET podName, containerName UNTIL 1 minute ago TIMESERIES limit 50

Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#98

Chart Details

  • HTTP API’s response time by host: it shows response time for every API these servers are calling, it’s just a simple Metric Widget

  • Error code distribution: it shows every http error code:

SELECT count(*) FROM Transaction WHERE appName = ‘ro-prod’ FACET httpResponseCode SINCE 1 day ago

  • Total transactions: it shows for every country total number of transactions

SELECT count(*) FROM Transaction WHERE appName = ‘ro-prod’ OR appName = ‘bg-prod’ OR appName = ‘hu-prod’ FACET appName

  • Memory Usage: simple Metric Widget

  • CPU Usage: simple Metric Widget


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#99

Here’s my first simple dashboard! :grinning:

Screenshot

Dashboard details:

Page views

SELECT count(*) FROM PageView SINCE 1 DAY AGO COMPARE WITH 1 WEEK AGO WHERE appName = 'my-app-name' AND domain = 'my.domain' TIMESERIES
It shows the numbers of page views in the last 24 hours

Process order status code

SELECT count(httpResponseCode) FROM Transaction FACET httpResponseCode SINCE 1 day AGO WHERE appName = 'my-app-name' AND name = 'WebTransaction/PlayControllerAction/WebPayments.processOrder' TIMESERIES
This shows how many orders have been processed. And it allows me to check if there is an error (with status code 500 for example) during the process


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#100

Performance Dashboard

Our dashboard provides some general performance metrics on one of our key public facing applications. It is displayed on a big screen above our delivery team, and is designed so a glance can give an indication of current performance.

Average durations

billboard
SELECT average(duration+backendDuration) AS 'Total', average(duration) AS 'Frontend', average(backendDuration) AS 'Backend' FROM PageView WHERE countryCode = 'NZ' AND appName = 'appname' SINCE 1 day ago
Average back and front end durations

Overall performance vs last week (seconds)

billboard
SELECT average(duration+backendDuration) AS 'Total' FROM PageView WHERE countryCode = 'NZ' AND appName = 'appname' SINCE 1 day ago COMPARE WITH 1 week ago
Overall performance vs last week

Average Page View Duration vs last week (seconds)

line chart
SELECT average(duration) FROM PageView WHERE countryCode = 'NZ' AND appName = 'appname' SINCE yesterday COMPARE WITH 1 week ago TIMESERIES
Average Page View Duration vs last week (seconds)


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#101

Trends on transactions.

I use this to have discussions around growth in service consumption and to ensure capacity is correct. The data is all based on the last calendar month compared with the previous month.

Average Time
SELECT average(duration + (databaseDuration OR 0) + queueDuration) as 'Duration (s)' FROM Transaction SINCE last month until this month COMPARE WITH 1 month ago WITH TIMEZONE 'Europe/London'

Average Database Time
SELECT average(databaseDuration) FROM Transaction SINCE last month until this month COMPARE WITH 1 month ago WITH TIMEZONE 'Europe/London'

Average Database Calls
SELECT average(databaseCallCount) FROM Transaction SINCE last month until this month COMPARE WITH 1 month ago WITH TIMEZONE 'Europe/London'

Total Transactions
SELECT count(*) FROM Transaction SINCE last month until this month COMPARE WITH 1 month ago WITH TIMEZONE 'Europe/London'

Total Database Time
SELECT sum(databaseDuration OR 0) FROM Transaction SINCE last month until this month COMPARE WITH 1 month ago WITH TIMEZONE 'Europe/London'

Total Database Calls
SELECT sum(databaseCallCount) FROM Transaction SINCE last month until this month COMPARE WITH 1 month ago WITH TIMEZONE 'Europe/London'


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#102

Transaction Query Monitor Dashboard

Hi Team

Transaction traces can contain database query data. Use the Database queries page to analyze a slow transaction or change database query collection settings.We have monitor daily basis transaction , transaction error from this dashboard . This is very useful for easily identify in Which Application getting error with same time showing Host name ( Infra Name ) for that we taken action with in few time.

In below Dashboard we can see transaction Time , App Name , Host name , Error message ,Name.transaction error count.

With the help of this we smoothly monitor all transaction in our app and improve the Quality.

Dashboards have the following benefits:

  • Foster a culture of continuous improvements
  • Data transparency throughout the organization
  • Being in control of business decisions by having the right data
  • Save time and money on reporting
  • Improved alignment throughout the organization

Thank you New Relic for this Amazing Feature

Dashboard

Chart Details:

1. System lacked sufficient buffer space :

i ) Transaction Error Count >

SELECT count(*) FROM TransactionError WHERE error.message LIKE ‘%An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full%’ and host LIKE ‘%DSS%’ TIMESERIES 1 minute SINCE 7 days ago

ii ) Transaction Details >

SELECT timestamp,appName,host,BuyerPartnerCode,errorMessage,name FROM TransactionError WHERE error.message LIKE ‘%An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full%’ and host LIKE ‘%DSS%’ TIMESERIES 1 minute SINCE 7 days ago

2. Prod US Error "Network Related Error :

SELECT count(*) FROM Transaction WHERE UserName != ‘XYZ’ AND appName LIKE ‘Prod_%’ and appName NOT LIKE ‘Prod_EU_%’ AND errorMessage LIKE ‘%A network-related or instance-specific error occurred while establishing a connection to SQL Server%’ SINCE 7 days ago

3. Prod US Error “Timeout Expired” :

SELECT count(*) FROM Transaction WHERE appName LIKE ‘Prod_%’ AND appName NOT LIKE ‘Prod_EU%’ AND errorMessage LIKE ‘%Timeout%’ SINCE 7 days ago

4. Could Not Load Assembly Error :

SELECT Count(*) from Transaction WHERE appName like ‘%prod%’ and appName not like ‘%prodstg%’ AND errorMessage LIKE ‘Could not load file or assembly%’ SINCE 7 days ago

5. Prod EU Error “Connection attempt failed” :

SELECT count(*) FROM Transaction WHERE UserName !‘XYZ’ AND appName LIKE ‘Prod_EU_%’ AND errorMessage LIKE ‘%A connection attempt failed%’ SINCE 7 days ago

6. Endpoint Error In Prod :

SELECT Count(*) from Transaction WHERE appName like ‘%prod%’ and appName not like ‘%prodstg%’ AND errorType like ‘%EndpointNot%’ SINCE 7 days ago

7. Index Exception on Prod US :

SELECT Count(*) FROM Transaction WHERE appName LIKE ‘Prod_%’ AND appName NOT LIKE ‘Prod_EU%’ AND errorMessage LIKE ‘%index was%’ SINCE 7 days ago


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#103


#104

It’s great to see everyone liking and sharing my post. Thanks @Linds @hross . This is my first post here! :smiling_face_with_three_hearts:


#105

awesome participation.

Sharing dashboard that talks about DB performance. as this is my prod had to black out some stuff. enjoy.

worst DB offenders
SELECT sum(databaseDuration) as ‘Time’, count(*) as ‘Count’, percentile(databaseDuration, 99, 80, 50) as ‘DB’ FROM Transaction FACET name SINCE 1 day ago LIMIT 15

Accumulated DB time by trans

SELECT sum(databaseDuration) FROM Transaction FACET name SINCE 1 day ago LIMIT 20

Worst App offenders
SELECT sum(duration) as ‘App’, count(*) as ‘Count’, percentile(duration, 99, 80, 50) as ‘App’ FROM Transaction FACET name SINCE 1 day ago LIMIT 5

Transaction time
SELECT sum(duration) FROM Transaction FACET name SINCE 1 day ago LIMIT 7

Accumulated DB time by histogram

SELECT histogram(databaseDuration) FROM Transaction FACET name SINCE 1 day ago LIMIT 20

Hope it helps. ** sorry for the ugly marks


Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters


#106

Vote, @Certified_Explorers people if you like what you see and it helps you.

Vote Vote Vote!!


#107

Production Performance

This dashboard serves as a single view of the overall health of an application, targeted towards all stakeholders, including leadership, engineering, and operations. Not only does it display simple, non-technical metrics to service as quick indicators of issues (response time, number of users), but it also summarizes the health of every component of the application (web jobs, Redis cache, etc.).

Screenshot

Dashboard Details

Required Products: APM, Synthetics, Browser, Infrastructure
Level of Effort: Medium
This dashboard uses custom Insights events and an Azure Infrastructure integration

Settings
Use the gear button to edit your dashboard and configure the following settings (below is an example):

  • Dashboard Filter: Enabled
  • Enabled Event Types: Transaction, TransactionError
  • Enabled Attributes: appName, errorMessage

Chart Details

Average Response Time per Service

Bar chart

FROM Transaction SELECT average(duration) where appName LIKE 'app_name' facet appName since 1 day ago LIMIT 100
Shows the breakdown of response time by microservice. Clicking on a service facets the dashboard.

Subscription Message Buckets

Table

FROM AzureServiceBusSubscriptionSample SELECT uniqueCount(name) facet cases(where messages < 1000 as 'Message Count < 1000', where messages >= 1001 and messages <= 9000 as 'Message Count 1001-9000' , where messages > 9001 as 'Message Count > 9000') LIMIT 1000 where resourceGroupName = 'resource_group'
Displays service bus subscriptions in buckets based on the number of messages within the subscription. Clicking on one of the buckets filters the adjacent chart to display only those subscriptions.

Service Bus Subscriptions

Table

FROM AzureServiceBusSubscriptionSample SELECT max(messages) AS 'Total Messages', (sum(deadLetterMessages)/sum(messages))*100 as 'Dead Letter %', (sum(activeMessages)/sum(messages))*100 as 'Active %' facet name LIMIT 1000 where resourceGroupName = 'resource_group'
Displays all service bus subscriptions, showing subscriptions with the most messages at the top. Also shows active vs deadletter percentage to indicate how healthy the subscription is.

Web Job Status

Table

from WebJobSample select webjobEmoji AS 'Status', webJobName where webJobName like '%job%'
Shows the status of all web jobs…with emojis. :grin: means “Running,” :disappointed_relieved: means “Stopped,” and :neutral_face: means “Pending restart.”

Cosmos DB Doomsday Clock

Gauge

from CosmosDBSample select max(CollectionSizeGB) since 60 minutes ago where Account = 'account' and Collection = 'collection'
This custom event shows the size of our largest Cosmos DB collection as a percentage, with a max of 10. Unpartitioned Cosmos DB collections cannot hold more than 10 GB of data, hence the doomsday. My personal favorite chart and least favorite type of SQL.



Vote for this Dashboard!

  • :star: :star: :star:
  • :star: :star:
  • :star:

0 voters