SuperAPI AI 工具集

new-relic

部署与运维

查看项目

更新于 10-15 16:55

技能介绍

New Relic 技能用于通过 New Relic 可观测性平台监控应用程序和基础设施。

用途

适用于以下场景:实施全栈可观测性;为应用程序设置 APM;监控基础设施健康状态;创建自定义仪表板和告警;实施分布式追踪。

前置条件

需要 New Relic 账号和 license key、用于 APM 代理的应用访问权限、用于主机代理的基础设施访问权限。

主要能力与使用方式

基础设施代理

  • Linux 安装:通过 curl 下载并安装 newrelic-cli 脚本,使用 NEW_RELIC_API_KEY 和 NEW_RELIC_ACCOUNT_ID 进行配置;也可手动将 license_key 写入 /etc/newrelic-infra.yml 并启动 newrelic-infra 服务。
  • Docker:提供 docker-compose.yml 示例,使用 newrelic/infrastructure:latest 镜像,并配置所需的能力、privileged、pid、network_mode、环境变量与挂载卷。
  • Kubernetes:通过 Helm 添加 newrelic 仓库并安装 newrelic-bundle(nri-bundle),可设置 licenseKey、cluster、privileged 以及启用 ksm、kubeEvents、logging 等。

APM 代理

提供多语言接入示例:

  • Node.js:在应用启动最前面 require('newrelic'),通过 newrelic.js 配置 app_name、license_key、distributed_tracing、logging、error_collector、transaction_tracer 等;安装使用 npm install newrelic,运行时通过环境变量启用。
  • Python:通过 newrelic.ini 配置 license_key、app_name、distributed_tracing、transaction_tracer、error_collector、browser_monitoring;安装使用 pip install newrelic;可通过 newrelic-admin generate-config 生成配置,并用 newrelic-admin run-program 运行应用(含 gunicorn 示例)。
  • Java:下载 newrelic-java.zip 并解压,配置 newrelic.yml,使用 -javaagent 参数加载 newrelic.jar 运行。
  • Go:引入 github.com/newrelic/go-agent/v3/newrelic,通过 newrelic.NewApplication 配置 AppName、License、DistributedTracer,并使用 WrapHandleFunc 进行 HTTP 追踪,可在处理函数中获取事务并添加属性。

自定义埋点

  • 自定义事件:使用 newrelic.agent.record_custom_event 记录事件及属性。
  • 自定义指标:使用 newrelic.agent.record_custom_metric 记录指标,可带属性。
  • 自定义 Span:使用 @newrelic.agent.function_trace 装饰器或 newrelic.agent.FunctionTrace 上下文管理器创建自定义 Span。

NRQL 查询

提供基础查询示例:事务吞吐量、平均响应时间、错误率、Apdex 分数。 提供高级查询示例:最慢事务(按 duration 排序并 LIMIT)、错误分类(FACET error.class)、百分位响应时间、自定义事件分析。

仪表板

提供仪表板 JSON 结构示例,包含 name、pages、widgets,widget 中通过 nrqlQueries 配置 accountId 和查询语句,并可指定 visualization(如 viz.line、viz.billboard)。

告警

  • 告警条件(NRQL):提供 JSON 示例,包含 name、type、nrql query、valueFunction、terms(threshold、thresholdOccurrences、thresholdDuration、operator、priority)。
  • 告警策略:提供 JSON 示例,包含 name、incident_preference、conditions(含 type、entities、metric、condition_scope、terms)。

日志关联(Logs in Context)

  • Python 配置:在 newrelic.ini 中启用 application_logging 相关开关。
  • 日志转发:在 newrelic-infra.yml 中配置 log 项,指定 name、file 和 attributes。

常见问题

  • 无数据出现:代理未上报,建议检查 license key、网络连通性与代理日志。
  • 事务缺失:部分事务未被捕获,建议检查埋点覆盖率并确认框架支持情况。
  • 开销过高:APM 代理影响性能,建议调整采样率、关闭不必要功能。

最佳实践

使用有意义的应用名称;跨服务实施分布式追踪;设置服务地图以可视化依赖;配置合适的告警阈值;使用自定义属性携带业务上下文;实施日志关联以便排查;设置工作负载进行服务分组;定期审查未使用的仪表板和告警。

相关技能

文档列出 datadog(替代监控平台)、prometheus-grafana(开源监控)、alerting-oncall(告警管理)。

限制

除上述安装命令、配置示例与查询语法外,本技能资料未提供 New Relic 的收费、价格、SLA 或具体平台效果说明,这些信息暂未提供。