我使用 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_app
和 API 的另一个名称 api_app
。
有什么帮助吗?
最佳答案
您无法使用当前版本的 New Relic 代理执行此处概述的操作。这不是代理的工作方式;这不是 New Relic 的工作方式。
您有一个应用程序,其性能应作为一个整体来考虑。如果您能够将性能数据传送到不同的应用程序,您怎么能看出一个应用程序中的问题正在影响另一个应用程序?当事件和指标位于不同的应用程序中时,您如何关联它们?
更具体地说,有人可能会攻击应用 A 并对应用 B 产生负面影响,这可能会出现在应用 A、应用 B 或两者的性能数据中。这就是不支持此功能的原因:您不会在单个服务器上运行的单个应用程序的性能数据中设置人工墙。
按照预期的方式使用代理,并使用 New Relic transactions page in APM和 Web transactions analysis report过滤到您关心的交易。您还可以使用 Insights event explorer至 filter and chart您的交易
数据。
关于ruby-on-rails - 如何区分 Newrelic 中的 Rails API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43648716/