NewRelic可观测性Skill newrelic-observability

此技能用于通过 New Relic 平台进行应用性能监控(APM)和可观测性,支持运行 NRQL 查询、检查应用性能指标、错误率、吞吐量等。适用于 DevOps 团队监控应用健康状况和性能问题。关键词:New Relic, 可观测性, APM, 监控, NRQL 查询, 应用性能, DevOps, 错误率, 吞吐量。

DevOps 0 次安装 0 次浏览 更新于 3/15/2026

name: newrelic-observability description: New Relic APM 和监控。使用 New Relic 运行 NRQL 查询、检查应用性能、错误率或吞吐量时使用。 allowed-tools: Bash(python *)

New Relic 可观测性

身份验证

重要:凭据由代理层自动注入。不要检查环境变量中的 NEWRELIC_API_KEY - 您不会看到它。直接运行脚本即可;身份验证是透明处理的。

您可以检查的配置环境变量(非机密):

  • NEWRELIC_ACCOUNT_ID - New Relic 账户 ID
  • NEWRELIC_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"