Weekly New Relic application performance review in Slack
Every Monday at 8am, get a plain-English review of which applications actually got better or worse last week, posted to Slack and logged to Google Sheets.
Every Monday at 8am, write me a plain-English review of how our applications actually performed last week. Run this on a cron schedule.
Start with New Relic List Applications to get every APM application reporting to the account. Keep each application's name and id so later steps can line the numbers up with the right service.
Then use New Relic Run NerdGraph GraphQL Query to run NRQL for two windows: last week (SINCE 1 week ago UNTIL now) and the week before it (SINCE 2 weeks ago UNTIL 1 week ago). For each application and each window pull four figures: the Apdex score, the error rate, the throughput, and the 95th percentile response time. A query shaped like SELECT apdex(duration, t: 0.5), percentage(count(*), WHERE error IS true), count(*), percentile(duration, 95) FROM Transaction FACET appName covers all four at once, and faceting by appName lets you cover many applications per query instead of one query per application, which keeps the run inside NerdGraph's per-query complexity limits. Note that NerdGraph reports query and validation failures as a top-level errors array inside an HTTP 200 response, so check for that rather than trusting the status code.
Ignore applications with negligible traffic so low volume services do not dominate the regression list. As a default, skip any application with fewer than 1,000 transactions in the week being reported, and skip any application that did not report data in both weeks, since there is nothing to compare.
Name only the applications that moved materially week over week, and say plainly whether each one got better or worse. As defaults for material: Apdex moved by at least 0.05, error rate moved by at least half a percentage point or at least 25 percent in relative terms, or the 95th percentile response time moved by at least 20 percent. Everything inside those bands is normal variation and should not be named.
Order the narrative by how many real users were affected, not by raw percentage change. Estimate impact from the volume sitting behind the move: the change in error rate multiplied by the week's transaction count gives roughly the number of additional failed requests, and response time regressions should be weighted by throughput the same way. A 40 percent error rate jump on a service handling 200 requests a week ranks well below a 3 percent jump on one handling two million.
Post the narrative to Slack with Send a Message to the channel I name. Keep it readable in a channel: a one line headline with how many applications were checked and how many moved, then a short paragraph per application that moved, worst real impact first. Use Slack mrkdwn formatting, so *bold* rather than **bold**. If nothing moved materially, still post a short all steady note naming the number of applications checked, so I know the review ran.
Finally, append to the trend tracker with Google Sheets Append Values. Append one row per application for the week that just ended, with the week start date, application name, Apdex score, error rate, throughput, and 95th percentile response time. Do not append rows for the prior week, it is only there for comparison and re-appending it would duplicate a week of history on every run. Log every application that reported data, including the low traffic ones left out of the narrative, so the accumulated history stays complete. Write the values as user entered so dates and numbers land as real dates and numbers rather than text.
Example output
What does this prompt do?
- Checks every application reporting into your New Relic account and pulls last week's response times, error rates, traffic levels, and user satisfaction scores, plus the same figures for the week before.
- Writes a short narrative that names only the applications that genuinely moved, and says in plain words whether each one got better or worse.
- Ranks the write-up by how many real users were affected, so a tiny service with a dramatic percentage swing does not crowd out a busy one that slipped a little.
- Posts the summary to your team channel and adds a row per application to a running spreadsheet, so you build a performance history that no dashboard keeps for you.
What do I need to use this?
- A New Relic login for the account your applications report into
- A Slack workspace and a channel where the weekly review should land
- A Google account and a spreadsheet to use as the running tracker
- Around two weeks of performance history in New Relic, so the first report has a prior week to compare against
How can I customize it?
- Change the timing, for example Friday afternoon instead of Monday morning, or every other week
- Raise or lower the traffic floor that decides which applications are too quiet to report on, and how big a swing has to be before it counts as material
- Send it to a different channel, or post it as a workspace bot instead of as yourself
- Add extra figures to the spreadsheet tracker, such as slowest transaction or host count
FAQs
Will this flag every small fluctuation in performance?
What if none of my applications changed much last week?
Does this work on a free New Relic plan?
What counts as a material change?
Why order by users affected instead of by percentage change?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Stop guessing which application actually got worse last week.
Let an agent read your performance data every Monday and tell you in plain English what moved, which direction, and how many users felt it.