• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Ruby 백그라운드 프로세스 모니터링

|View as Markdown

우리의 루비 에이전트는 여러 가지 공통 백그라운드 작업 프레임워크를 자동으로 제공합니다. 또한 트레이스의 모든 백그라운드 작업에 맞게 사용자 정의할 수도 있습니다. 백그라운드 작업의 데이터는 APM의 Transactions 페이지Non-web transactions 로 나타납니다.

지원되는 프레임워크

다음 백그라운드 작업 프레임워크는 최신 버전의 Ruby 에이전트에서 기본적으로 지원됩니다.

중요

JRuby 사용자는 CPU 메트릭과 관련된 문제를 볼 수 있습니다.

이러한 프레임워크를 사용하는 경우 일반적으로 백그라운드 작업을 모니터링하는 데 추가 구성이 필요하지 않습니다.

사용자 지정 백그라운드 작업 모니터링

사용자 정의 백그라운드 작업을 사용하여 APM Transactions 페이지Non-web transactions로 표시할 수 있습니다. 지원되지 않는 프레임워크를 사용하는 동안 Non-web transactions 모니터링하려면 로그 소스를 추가해야 합니다.

예를 들어 백그라운드 작업은 SalesOrganization#find_new_leads 이라는 작업을 주기적으로 실행합니다.

  1. ControllerInstrumentation 모듈을 추가합니다.

  2. add_transaction_tracer 지시어 below 메서드 정의를 사용하세요.

  3. 에이전트 트레이스가 Non-web transaction 임을 알리려면 :category => :task 추가하세요.

    require 'newrelic_rpm'
    class SalesOrganization
    include
    ::NewRelic::Agent::Instrumentation::ControllerInstrumentation
    def find_new_leads
    ...
    end
    add_transaction_tracer :find_new_leads, :category => :task
    end

    문자열을 :category 에 전달할 수 있지만 문자열이 OtherTransaction/ 로 시작하는 경우에만 값이 APM Transactions 페이지에 표시됩니다.

사용자 정의 백그라운드 방법 모니터링

루비 에이전트 API 사용하면 Non-web transactions를 트레이스할 특정 메소드를 지정할 수 있습니다. 이는 느리게 실행되는 작업에 대한 트레이스를 수집하고 캡처된 오류를 프로세서에 연결합니다.

클래스 메서드를 계측하려면 singleton 클래스를 사용합니다.

예를 들어 백그라운드 작업은 SalesOrganization#find_new_leads 이라는 작업을 주기적으로 실행합니다.

  1. ControllerInstrumentation 모듈 below 메소드 정의를 추가합니다.

  2. add_transaction_tracer 지시문 사용

  3. 에이전트 트레이스가 Non-web transaction 임을 알리려면 :category => :task 추가하세요.

    require 'newrelic_rpm'
    class SalesOrganization
    def self.find_new_leads
    ...
    end
    class << self
    include
    ::NewRelic::Agent::Instrumentation::ControllerInstrumentation
    add_transaction_tracer :find_new_leads, :category => :task
    end
    end

    자세한 내용은 Ruby 사용자 지정 측정항목 을 참조하십시오.

단기 프로세스 모니터링

에이전트가 백엔드 서버에 연결하기 전에 프로세스가 실행되고 있지 않은지 확인하십시오. 이렇게 하려면 기본 비동기 동작이 아닌 Ruby 에이전트가 New Relic에 동기적으로 연결되도록 합니다.

먼저 Gemfile에서 newrelic_rpm gem 설치 끝에 require: false 을 추가합니다.

gem 'newrelic_rpm', require: false

그런 다음 manual_start 호출하고 :sync_startup => true 옵션을 전달합니다.

require 'new_relic/agent'
NewRelic::Agent.manual_start(:sync_startup => true)

Note: 대부분의 설정 옵션은 수동 시작으로 전달될 수 있습니다.

require 'new_relic/agent' 를 사용하려면 에이전트의 코드가 필요하며 수동으로 시작할 때까지 에이전트가 실행되지 않도록 합니다.

프로세스가 에이전트 하베스트 서버 보다 짧은 경우 대기 중인 모든 데이터가 전송되도록 ::NewRelic::Agent.shutdown 를 사용하여 에이전트를 수동으로 종료해야 합니다.

백그라운드 프로세스에 대해 newrelic.yml 구성

newrelic.yml 구성은 백그라운드 애플리케이션의 컨텍스트에 따라 다릅니다.

대체 애플리케이션 이름으로 보고

기존 New Relic 웹 응용 프로그램의 컨텍스트에서 실행되는 작업을 APM UI의 다른 응용 프로그램 이름 으로 표시할 수 있습니다.

  1. 시작 before newrelic_rpm 작업자 코드에 필요합니다.

  2. NEW_RELIC_APP_NAME 환경 변수를 백그라운드 작업자 프로세스를 시작할 때 백그라운드 작업에 사용할 애플리케이션 이름으로 설정합니다. 이는 newrelic.ymlapp_name 설정을 재정의합니다.

    bash
    $
    NEW_RELIC_APP_NAME="My Background Jobs"
    $
    ./bin/my_background_worker.rb

에이전트 시작 확인

에이전트가 블랙리스트에 있는 실행 파일 이름, 레이크 작업 이름 또는 상수를 감지하지 않는 한 대부분의 경우 Ruby 에이전트는 require 'newrelic_rpm' 하자마자 자동으로 시작됩니다. 이렇게 하면 일반적인 레이크 작업 및 대화형 콘솔 세션 중에 시작되지 않습니다.

자세한 내용은 에이전트 시작 제어 에 대한 설명서를 참조하십시오.

스크립트 모니터링

에이전트 시작 지침 은 데몬에서 백그라운드 작업을 실행할 때 적용됩니다. 스크립트가 단일 백그라운드 작업을 실행하고 종료하는 경우 스크립트가 완료되면 ::NewRelic::Agent.shutdown 를 사용하여 에이전트를 수동으로 종료합니다. 이렇게 하면 New Relic 수집기가 데이터를 수신할 수 있습니다. 예를 들어:

require 'newrelic_rpm'
class SalesOrganization
include
::NewRelic::Agent::Instrumentation::ControllerInstrumentation
def find_new_leads
...
end
add_transaction_tracer :find_new_leads, :category => :task
end
SalesOrganization.new.find_new_leads
::NewRelic::Agent.shutdown
Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.