9

저는 Rails 5를 사용하여 웹 사이트와 RESTful API를 제공하고 Newrelic (newrelic_rpm gem)을 사용하여 애플리케이션 성능을 모니터링합니다.Newrelic에서 Rails API 호출을 구분하는 방법은 무엇입니까?

현재 응용 프로그램 이름에 대한 모든 요청을 모니터하는 보석입니다.

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을 위해 : 나는 특정 응용 프로그램 이름, 예에 웹 요청을 기록 할 수 있습니다

나는 보고서에 대한 더 분리를 만들고 싶어.

어떤 도움이 필요합니까?

+1

나는 내 대답을 삭제했다. 나는 당신의 질문을 오해했다. 여러 레일 앱을 사용하지 않으면 여러 NewRelic 앱에보고하는 방법을 모르겠습니다. 죄송합니다. – BoraMa

답변

5

현재 새 Relic 에이전트 버전에서 설명한 내용을 수행 할 수 없습니다. 에이전트가 작동하는 방식이 아닙니다. 그건 새로운 유물이 작동하는 방식이 아닙니다.

전체적으로 성능을 고려해야하는 단일 응용 프로그램이 있습니다. 성능 데이터를 다른 앱에 전달할 수 있다면 한 앱의 문제가 다른 앱에 어떤 영향을 미치는지 어떻게 알 수 있습니까? 이벤트와 측정 항목이 서로 다른 앱에있을 때 어떻게 상호 연관시킬 수 있습니까?

특히, 누군가가 앱 A를 공격하고 앱 B에 부정적인 영향을 줄 수 있으며, 앱 A, 앱 B 또는 둘 모두에 대한 실적 데이터에 나타날 수 있습니다. 이것이 지원되지 않는 이유입니다. 단일 서버에서 실행되는 단일 응용 프로그램의 성능 데이터에 인공 벽을 배치하지 않습니다.

에이전트를 의도 한대로 사용하고 New Relic transactions page in APMWeb transactions analysis report을 사용하여 관심있는 거래를 필터링하십시오. 또한 Transaction 데이터에 Insights event explorer ~ filter and chart을 사용할 수 있습니다.

+0

고마워, @anothermh, 나는 너를 크게 들었다. 내가 말한 것과 동의하지만, 때로는 동일한 레일 앱이 두 개의 개별 앱 (웹 애플리케이션 및 모바일 앱과 함께 사용할 수있는 API)처럼 작동 할 수 있습니다. 동일한 서버에 두 가지를 모두 배포하는 유일한 이유는 비용 효율성이며,이 경우 두 앱의 특성이 다를 수 있으므로 앱 이름을 사용하는 것이 유용 할 수 있습니다 (특히 API를 탑재하는 경우). –

+1

실제로 서비스를 분리하지 않고도 서비스를 분리 할 수 ​​있습니다. 응용 프로그램의 작동 방식이 아니기 때문에 원하는 것을 얻을 수없는 이유가 있습니다. 두 가지 응용 프로그램을 만든 다음 New Relic에서 두 개의 응용 프로그램을 만들거나, 하나의 응용 프로그램을 만들고 New Relic에서 데이터를 필터링하는 두 가지 쉬운 방법이 있습니다. 당신이하려고 한 것을 포함하여 많은 불가능한 경로가 있습니다. 나는 권장합니다 : 하나의 앱을 만들고 New Relic의 데이터를 필터링합니다. 예를 들어 [custom insights events] (https://docs.newrelic.com/docs/insights/explore-data/custom-events/)로 필터링하십시오. – anothermh

+1

@EkiEqbal 앱을 별도로 취급 할 수없는 이유 : 매우 낮은 처리량으로 API에 대한 매우 오래 사는 요청을 처리하는 데 95 %의 시간이 걸리고 웹 시간의 5 % 만 사용할 수있는 유니콘이 두 개인 경우 앱, New Relic에보고하는 2 개의 앱으로 어떻게하면 웹 앱이 노동자에게 굶주 리라고 말할 수 있습니까? 모든 외모로 인해, 그것은 요청을 신속하고 정기적으로 처리하지만 단지 자주받지 못합니다. 귀하의 API가 훌륭하다고 생각한다면 웹 앱이 훌륭하게 작동한다고 생각할 것입니다. 단일 앱으로 보시면 문제를 알 수 있습니다. – anothermh