New Relic — 可观测性和平台是什么

作者: IT Sectr 发布日期: 2026-05-29 阅读时间: 8 分钟

New Relic 是一个全栈可观测性平台,在统一界面中提供指标收集、分布式请求追踪、日志记录和用户体验监控。根据 New Relic Documentation, 2025New Relic 每月为 17,000+ 客户处理超过 130 EB 的数据,包括 Ticketmaster、Yelp 和 Ryanair。

要点

  • New Relic — 全栈可观测性平台,整合指标、追踪、日志和用户体验监控。
  • New Relic One — 统一管理面板,支持自定义仪表板、NRQL 查询和 AI 警报。
  • Distributed Tracing — 通过一个 trace ID 将移动客户端的请求通过所有微服务连接到数据库。
  • Mobile agent — 适用于 iOS 和 Android 的 SDK,自动收集性能指标、崩溃和 HTTP 请求。
  • NRQL — New Relic 自有的查询语言,无需 SQL 即可进行分析和构建自定义仪表板。

可观测性中的 New Relic 是什么

New Relic — 历史最悠久、最成熟的可观测性平台之一,成立于 2008 年。最初 New Relic 定位为 Web 应用程序(Ruby on Rails)的 APM,但多年来已发展成为覆盖移动应用、浏览器、微服务、无服务器功能和基础设施的全栈平台。

2020 年,New Relic 推出了 New Relic One — 一个完全重新设计的平台,支持自定义仪表板、NRQL 查询和来自任何来源的数据集成。与竞争对手(Datadog、Dynatrace)不同,New Relic 提供慷慨的免费套餐:每月 100 GB 数据(涵盖所有类型的遥测数据 — 指标、追踪、日志),基本指标无存储时间限制。

根据 New Relic State of Observability Report (2024),74% 的组织使用 New Relic 进行移动监控,实施平台后,平均事件检测时间从 3 小时减少到 12 分钟。主要使用场景 — 微服务的 APM、移动应用监控和全栈调试。

New Relic One 架构:仪表板和 NRQL

New Relic One — 平台中央控制台,将所有类型的数据整合到统一界面中。用户可以创建无限数量的仪表板,包含各种小部件:折线图、热力图、表格、列表。每个小部件都基于对 NRDB(New Relic Database)的查询 — 针对时间序列优化的自有数据库。

自定义仪表板

New Relic One 允许为不同受众创建仪表板:带有详细指标的技术仪表板(latency p95、throughput、error rate)、带有 Apdex 分数和用户指标的业务仪表板(转化率、订单完成时间)和基础设施仪表板(CPU、内存、网络)。Dashboard-as-code 通过 Terraform 提供程序和 New Relic API 支持。

NRQL — 查询语言

NRQL(New Relic Query Language) — 一种类似 SQL 的语言,用于查询遥测数据。它允许在不使用外部工具的情况下选择、聚合和可视化数据。NRQL 支持时间序列函数(TIMESERIES、SINCE、UNTIL)、按属性过滤、分组(FACET)和百分位数计算(percentile)。

text
SELECT average(duration) as "Avg Response"
FROM Transaction
WHERE appName = "MobileApp"
FACET endpoint
SINCE 1 hour ago
TIMESERIES auto
LIMIT 10

NRQL 查询显示移动应用每个端点在最后一小时内的平均响应时间,按时间间隔细分。结果在 New Relic One 仪表板中显示为折线图。

为 iOS 和 Android 配置 New Relic Mobile SDK

New Relic Mobile agent 提供适用于 iOS(Swift、Objective-C)和 Android(Kotlin、Java)的 SDK,自动收集性能指标、崩溃、ANR 和 HTTP 请求。安装需要 10 分钟,包括添加依赖项和用应用程序令牌进行初始化。

在 Android 上配置

Android SDK 通过 Gradle 插件连接,该插件自动检测 Activity、HTTP 客户端(OkHttp、Retrofit、Volley)和后台服务。New Relic Android agent 还跟踪 WebView、图像加载和与 Room 数据库的工作。

kotlin
import com.newrelic.agent.android.NewRelic

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        NewRelic.withApplicationToken("YOUR_TOKEN")
            .withCrashReporting(true)
            .withHttpResponseBodyCapture(true)
            .start(this)
    }
}

代码初始化 New Relic SDK,启用崩溃报告和 HTTP 响应内容捕获。withHttpResponseBodyCapture 参数允许在 4xx/5xx 错误时查看响应内容,这对于诊断 API 问题至关重要。

在 iOS 上配置

iOS SDK 支持 Swift Package Manager 和 CocoaPods。安装后,代理会自动拦截 URLSession 请求、UIApplication 指标和 Swift 错误。New Relic iOS agent 还收集电池指标、启动次数和设备温度 — 这些数据有助于评估应用程序对设备的影响。

swift
import NewRelic

class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        NewRelic.enableFeatures(NRFeatureFlag.SwiftAsyncURLSession)
        NewRelic.start(withApplicationToken: "YOUR_TOKEN")
        return true
    }
}

代码激活通过 URLSession(iOS 15+)监控 Swift async/await 请求,并启动 New Relic 代理。NRFeatureFlag.SwiftAsyncURLSession 启用现代 Swift Concurrency 调用的检测。

Distributed Tracing 和服务地图

New Relic Distributed Tracing 将移动客户端通过 API Gateway、微服务和数据库的请求整合到一个 trace 中。支持 W3C Trace Context 和 OpenTelemetry 标准,允许将第三方工具的数据集成到统一追踪中。

Service Map

Service Map — 基于追踪数据自动构建的服务间依赖关系图。每个服务显示为图的一个节点,它们之间的箭头表示一个服务调用另一个服务。节点颜色显示健康状态:绿色(一切正常)、黄色(错误增加)、红色(服务不可用)。Service Map 在架构更改时实时更新。

根据 New Relic(2024),使用 Service Map 的团队比手动分析日志快 55% 地找到减速的根本原因。该地图对于微服务架构特别有用,因为一个服务中的级联故障可能看起来像是多个不相关组件中的问题。

与移动客户端集成

New Relic 通过标头将移动会话与服务器端追踪连接起来。如果移动应用程序使用 New Relic 标头发送请求,服务器代理会获取上下文,trace 将从用户设备显示到数据库。Mobile instrumentation 自动将所需的标头添加到所有传出 HTTP 请求中。

通过 NRDB 和 NRQL 进行分析

NRDB — New Relic 自有的数据库,针对时间序列的存储和分析进行了优化。与传统 SQL 数据库不同,NRDB 支持无限基数(唯一属性值的数量),这对于具有数百万唯一组合的遥测数据至关重要。

NRQL 在行动

NRQL 允许执行复杂的分析查询,而无需将数据导出到 BI 系统。例如,可以计算 “iOS 17 用户中有多少百分比的冷启动时间超过 3 秒,按设备型号分组”。这有助于做出关于支持旧设备和针对特定型号进行优化的决策。

text
SELECT percentile(coldStartTime, 95)
FROM MobileSession
WHERE osVersion LIKE "iOS 17%"
AND coldStartTime > 3
FACET deviceModel
SINCE 7 days ago
LIMIT 20

NRQL 查询返回 iOS 17 上应用程序冷启动时间的 p95,其中冷启动时间超过 3 秒,按设备型号分组。这允许检测到 iPhone XS 的启动速度比 iPhone 15 慢 40%,并做出优化决策。

警报和 AI 异常检测

New Relic 提供灵活的警报系统,支持静态和动态阈值。Static alert 在超过固定值时触发:Apdex < 0.85。Dynamic alert 使用机器学习检测异常:系统学习过去 4 周的典型指标行为,并在偏差超过 3 个标准差时触发。

AI 异常检测

New Relic AI(前身为 Applied Intelligence)自动检测所有数据类型中的异常 — 指标、事件、日志 — 无需手动设置阈值。AI anomaly detection 考虑季节性(白天流量高于夜间,工作日高于周末),不会在预期波动时产生误报。检测到异常时,AI 会创建事件,并根据与其他指标的相关性提出根本原因建议。

与 PagerDuty 和 Slack 集成

New Relic 支持向 PagerDuty、Slack、Opsgenie、Webhook 和电子邮件发送通知。Notification channels 在警报策略级别配置,允许向不同团队发送不同通知:关键错误 — 通过 PagerDuty 发送给值班工程师,警告 — 发送到团队的 Slack 频道。

常见问题

New Relic 移动应用的费用是多少?

New Relic 提供 每月 100 GB(所有数据类型)的免费套餐。对于每月有 100,000 DAU 和每个用户 5,000 个事件的移动应用,这足以满足基本监控需求。付费 Pro 套餐从每月超出免费限制的部分每 GB 0.55 美元起。

New Relic 与 Datadog 有何不同?

New Relic 以其 NRQL 查询语言、慷慨的免费套餐(100 GB)和深厚的移动监控能力脱颖而出。Datadog 在基础设施监控和安全产品方面更强。两者之间的选择通常取决于技术栈:如果应用程序重度移动 — New Relic,如果主要负载在基础设施上 — Datadog。

New Relic 支持 OpenTelemetry 吗?

是的,New Relic 完全支持 OpenTelemetry Protocol(OTLP)。来自 OpenTelemetry SDK 的数据直接接收,无需使用 New Relic 代理。支持所有信号类型:traces、metrics、logs,以及基于 OTel 数据自动构建 Service Map。

New Relic 如何处理用户数据?

New Relic 提供 Data Management 工具:PII 脱敏、按规则删除属性和管理存储期限。免费套餐存储数据的时间为 trace 8 天、指标 30 天和日志 7 天。付费套餐允许将存储期限延长至 90 天或更长。

New Relic 可以用于 Flutter 应用吗?

是的,New Relic 通过官方包(newrelic_flutter)为 Flutter 提供 SDK。它支持 Android 和 iOS,自动收集 HTTP 请求、崩溃和自定义检测。对于 Dart 代码,Flutter SDK 提供与原生 SDK 相同的功能,自动创建事务和 span。

总结

  • New Relic — 全栈可观测性平台,在统一界面中支持移动、Web 和后端应用程序。
  • New Relic One — 控制台,带有自定义仪表板、NRQL 查询语言和自动数据可视化。
  • Mobile SDK 为 iOS 和 Android 提供指标、崩溃、HTTP 请求和分布式追踪的自动收集。
  • Distributed Tracing 通过 W3C Trace Context 和 OpenTelemetry 将移动请求与服务器处理连接起来。
  • NRQL 允许对遥测数据进行分析查询,无需导出到 BI 系统,包括百分位数和分组。
  • AI 警报 自动检测异常,考虑季节性,并建议事件的根本原因。
  • New Relic 推荐用于以移动应用程序为重点的全栈可观测性 — 每月 100 GB 的免费套餐涵盖了大多数中型项目。

我们将开发一款交钥匙移动应用程序

IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。

讨论项目

另请阅读