name: newrelic-observability 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 IDNEWRELIC_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
-- Response time
SELECT average(duration) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago
-- Throughput
SELECT count(*) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago TIMESERIES 5 minutes
-- Error rate
SELECT percentage(count(*), WHERE error = true) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago
-- Apdex score
SELECT apdex(duration, t: 0.5) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago
-- Slowest transactions
SELECT average(duration), count(*) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago FACET name LIMIT 10
-- Database query time
SELECT average(databaseDuration) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago TIMESERIES
-- External service calls
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"