skills/newrelic-cli-skills/apm/SKILL.md
This subskill should be used when triaging New Relic APM latency, throughput, database time, transaction errors, or performance regressions with the New Relic CLI and NRQL. Use the parent newrelic-cli-skills skill for setup and routing.
npx skillsauth add kilo-org/kilo-marketplace newrelic-cli-apmInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use when investigating slow endpoints, high error rates, or performance regressions.
# Get APM summary for all apps
newrelic entity search --name "" --type APPLICATION --domain APM | \
jq '.[] | {name, alertSeverity, applicationId}'
# Get detailed APM summary for a specific app
newrelic apm application get --applicationId <APP_ID>
# Top 10 slowest transactions (last 1 hour)
newrelic nrql query --accountId $NEW_RELIC_ACCOUNT_ID --query "
SELECT average(duration), percentile(duration, 95), count(*)
FROM Transaction
WHERE appName = 'my-app'
FACET name
SINCE 1 hour ago
LIMIT 10
ORDER BY average(duration) DESC
"
# Transactions over SLA threshold (e.g. > 2 seconds)
newrelic nrql query --accountId $NEW_RELIC_ACCOUNT_ID --query "
SELECT count(*), average(duration)
FROM Transaction
WHERE appName = 'my-app' AND duration > 2
FACET name
SINCE 1 hour ago
"
# Slowest DB operations
newrelic nrql query --accountId $NEW_RELIC_ACCOUNT_ID --query "
SELECT average(duration), count(*)
FROM DatabaseTrace
WHERE appName = 'my-app'
FACET statement
SINCE 1 hour ago
LIMIT 10
ORDER BY average(duration) DESC
"
# DB time as % of total transaction time
newrelic nrql query --accountId $NEW_RELIC_ACCOUNT_ID --query "
SELECT average(databaseDuration), average(duration),
percentage(average(databaseDuration), average(duration)) AS 'DB %'
FROM Transaction
WHERE appName = 'my-app'
SINCE 1 hour ago
"
# Error rate by transaction
newrelic nrql query --accountId $NEW_RELIC_ACCOUNT_ID --query "
SELECT count(*), percentage(count(*), WHERE error IS true) AS 'Error Rate'
FROM Transaction
WHERE appName = 'my-app'
FACET name
SINCE 1 hour ago
"
# Recent errors with messages
newrelic nrql query --accountId $NEW_RELIC_ACCOUNT_ID --query "
SELECT message, count(*)
FROM TransactionError
WHERE appName = 'my-app'
FACET message
SINCE 1 hour ago
LIMIT 20
"
# Full error details including stack trace fields
newrelic nrql query --accountId $NEW_RELIC_ACCOUNT_ID --query "
SELECT timestamp, name, message, error.class
FROM TransactionError
WHERE appName = 'my-app'
SINCE 30 minutes ago
LIMIT 10
"
# Requests per minute + Apdex trend
newrelic nrql query --accountId $NEW_RELIC_ACCOUNT_ID --query "
SELECT rate(count(*), 1 minute) AS 'RPM', apdex(duration, 0.5) AS 'Apdex'
FROM Transaction
WHERE appName = 'my-app'
TIMESERIES 5 minutes
SINCE 1 hour ago
"
# List recent deployments
newrelic apm deployment list --applicationId <APP_ID>
# Check if performance changed after a deploy
newrelic nrql query --accountId $NEW_RELIC_ACCOUNT_ID --query "
SELECT average(duration)
FROM Transaction
WHERE appName = 'my-app'
TIMESERIES 10 minutes
SINCE 3 hours ago
"
# Look for inflection points that align with deployment timestamps
newrelic entity search --name "my-app" --type APPLICATION --domain APM | \
jq '.[] | {name, applicationId, guid}'
development
Oracle Database guidance for SQL, PL/SQL, SQLcl, ORDS, administration, app development, performance, security, migrations, and agent-safe database workflows. Use when the user asks to write, edit, rewrite, review, format, debug, tune, or explain SQL; create or refactor PL/SQL; use SQLcl, Liquibase, ORDS, JDBC, node-oracledb, Python, Java, .NET, or database frameworks; troubleshoot queries, sessions, locks, waits, indexes, optimizer plans, AWR, ASH, migrations, schemas, users, roles, privileges, backup, recovery, Data Guard, RAC, multitenant, containers, monitoring, auditing, encryption, VPD, or safe agent database operations.
documentation
Patterns for reading and writing oleander Iceberg catalog tables in Spark jobs, including naming conventions, write modes, and catalog hierarchy.
data-ai
Integrate Okta for enterprise identity workflows including OIDC login, group claims, and policy-based access controls. Use when implementing workforce or B2B identity scenarios.
documentation
Use when arranging Apache NiFi processors, process groups, ports, comments, numbering, crossing connections, dense fan-in/fan-out, or reusable readable canvas layouts.