如何区分 Newrelic 中的 Rails API 调用?

How to differentiate Rails API calls in Newrelic?

我正在使用 Rails 5 为网站提供服务,并使用 RESTful API,并使用 Newrelic (newrelic_rpm gem) 进行监控应用性能。

目前,gem 监控对一个应用程序名称的所有请求。

假设我的路线看起来像:

Rails.application.routes.draw do
  resources :users
  namespace :api do
    namespace :v1 do
      resources :users, only: :index
    end
  end
end

此处 /users 是网络应用程序的路由,api/users 是 API 的路由。现在,一旦我使用 newrelic_rpm,它就看不出 API 和网络之间的区别。

我想对报告进行更多分离,以便我可以将 Web 请求记录到特定的应用程序名称,例如:web_app 和 API 另一个名称 api_app

有什么帮助吗?

您无法使用当前版本的 New Relic 代理执行此处概述的操作。这不是代理的工作方式;这不是 New Relic 的工作方式。

您有一个应用程序,其性能应作为一个整体来考虑。如果您能够将性能数据传送到不同的应用程序,您怎么能看出一个应用程序中的问题正在影响另一个应用程序?当事件和指标位于不同的应用程序中时,您如何关联它们?

更具体地说,有人可能会攻击应用 A 并对应用 B 产生负面影响,这可能会出现在应用 A、应用 B 或两者的性能数据中。这就是不支持的原因:您不会在单个服务器上的单个应用 运行 的性能数据中设置人造墙。

按照预期的方式使用代理,并使用 New Relic transactions page in APM and the Web transactions analysis report to filter down to the transactions you care about. You can also use the Insights event explorer to filter and chart 您的 Transaction 数据。