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

时间:2017-04-27 04:34:12

标签: ruby-on-rails ruby ruby-on-rails-5 newrelic newrelic-platform

我使用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

有任何帮助吗?

1 个答案:

答案 0 :(得分:5)

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

您有一个应用程序,其性能应被视为一个整体。如果您能够将性能数据路由到不同的应用程序,您怎么能看到一个应用程序中的问题影响其他应用程序?如果将事件和指标放在不同的应用程序中,您如何关联它们?

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

按照预期的方式使用代理,并使用New Relic transactions page in APMWeb transactions analysis report过滤到您关注的交易。您还可以使用Insights event explorer filter and chart Transaction数据。