name: newrelic-observability description: New Relic APM 和监控。使用 New Relic 运行 NRQL 查询、检查应用性能、错误率或吞吐量时使用。 allowed-tools: Bash(python *)
New Relic 可观测性
身份验证
重要:凭据由代理层自动注入。不要检查环境变量中的 NEWRELIC_API_KEY - 您不会看到它。直接运行脚本即可;身份验证是透明处理的。
您可以检查的配置环境变量(非机密):
NEWRELIC_ACCOUNT_ID- New Relic 账户 IDNEWRELIC_BASE_URL- API 基础 URL(代理模式)
可用脚本
所有脚本都在 .claude/skills/observability-newrelic/scripts/ 目录中
query_nrql.py - 运行 NRQL 查询(从此开始)
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 摘要
python .claude/skills/observability-newrelic/scripts/get_apm_summary.py --account-id ACCOUNT_ID --app-name MyApp [--time-range 30m]
NRQL 查询参考
-- 响应时间
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
-- Apdex 分数
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
调查工作流
应用性能问题
1. get_apm_summary.py --account-id <id> --app-name <app> (概述)
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"