| name | observability-newrelic |
| description | New Relic APM and monitoring. Use when running NRQL queries, checking application performance, error rates, or throughput via New Relic. |
| allowed-tools | Bash(python *) |
New Relic Observability
Authentication
IMPORTANT: Credentials are injected automatically by a proxy layer. Do NOT check for NEWRELIC_API_KEY in environment variables - it won't be visible to you. Just run the scripts directly; authentication is handled transparently.
Configuration environment variables you CAN check (non-secret):
NEWRELIC_ACCOUNT_ID - New Relic account ID
NEWRELIC_BASE_URL - API base URL (proxy mode)
Available Scripts
All scripts are in .claude/skills/observability-newrelic/scripts/
query_nrql.py - Run NRQL Queries (START HERE)
python .claude/skills/observability-newrelic/scripts/query_nrql.py --account-id ACCOUNT_ID --query "SELECT average(duration) FROM Transaction SINCE 1 hour ago"
get_apm_summary.py - APM Summary
python .claude/skills/observability-newrelic/scripts/get_apm_summary.py --account-id ACCOUNT_ID --app-name MyApp [--time-range 30m]
NRQL Query Reference
SELECT average(duration) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago
SELECT count(*) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago TIMESERIES 5 minutes
SELECT percentage(count(*), WHERE error = true) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago
SELECT apdex(duration, t: 0.5) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago
SELECT average(duration), count(*) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago FACET name LIMIT 10
SELECT average(databaseDuration) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago TIMESERIES
SELECT average(externalDuration), count(*) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago FACET externalTransactionName
Investigation Workflow
Application Performance Issue
1. get_apm_summary.py --account-id <id> --app-name <app> (overview)
2. query_nrql.py --query "SELECT average(duration) FROM Transaction WHERE appName = '<app>' SINCE 1 hour ago TIMESERIES 5 minutes"
3. query_nrql.py --query "SELECT percentage(count(*), WHERE error = true) FROM Transaction WHERE appName = '<app>' SINCE 1 hour ago TIMESERIES 5 minutes"