• 로그인

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

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

문제 신고

background_task(파이썬 에이전트 API)

통사론

newrelic.agent.background_task(application=None, name=None, group=None)

백그라운드 작업 또는 기타 웹이 아닌 트랜잭션을 계측하는 데 사용됩니다.

설명

이 Python 데코레이터는 백그라운드 작업 또는 기타 웹이 아닌 트랜잭션 을 계측하는 데 사용할 수 있습니다. 이것은 일반적으로 작업자 프로세스, 작업 기반 시스템 및 독립 실행형 스크립트와 같은 웹이 아닌 활동을 계측하는 데 사용됩니다. 백그라운드 작업으로 표시된 트랜잭션은 APM UI에서 웹이 아닌 트랜잭션으로 표시되며 웹 트랜잭션과 구분됩니다.

callout.imporant

함수가 아직 계측되지 않은 경우 function_trace() 를 사용하여 백그라운드 작업 내에서 해당 함수에 대한 함수 추적을 만들 수 있습니다. 또는 구성 파일 을 사용하여 계측되지 않은 기능을 계측할 수 있습니다.

백그라운드 작업 데코레이터를 사용하는 함수가 웹 트랜잭션 컨텍스트 내에서 호출되면 웹 트랜잭션은 백그라운드 작업으로 표시됩니다. 소요 시간 측정은 원래 웹 트랜잭션이 시작될 때 시작됩니다.

데코레이터를 사용할 수 없는 경우 다음 호출 형식 중 하나가 더 유용할 수 있습니다.

  • 컨텍스트 관리자 : 모니터링할 작업이 런타임에만 결정되고 가져오기 시간에는 결정되지 않는 경우 BackgroundTask 컨텍스트 관리자를 사용하여 코드 블록 실행을 직접 래핑할 수 있습니다. (이것은 BackgroundTaskWrapper 에서 사용하는 컨텍스트 관리자입니다.)
  • 래퍼 : 추적하려는 특정 기능이 어디에 있는지 미리 알고 있으면 background_task 데코레이터를 사용할 수 있습니다. 그러나 추적해야 하는 모든 함수를 모르는 경우(예: 라우팅 시스템의 일부로 동적으로 조회되는 경우) BackgroundTaskWrapper 을 사용하여 해당 시간에 함수를 래핑해야 합니다. 등록 시 또는 호출 시.
  • 경로 기반 래퍼 : 경로 기반 래퍼 형식은 wrap_background_task 입니다.

이러한 함수 형식의 차이점과 사용에 대한 자세한 내용은 변수 호출 형식 을 참조하세요.

매개변수

데코레이터 및 컨텍스트 관리자 매개변수

newrelic.agent.background_task(application=None, name=None, group=None)
newrelic.agent.BackgroundTask(application=None, name=None, group=None)

이러한 호출에 대한 매개변수:

매개변수

설명

application

애플리케이션 인스턴스

필수의. 데이터가 보고되는 응용 프로그램입니다. 기본값은 None 입니다. 값을 지정하지 않으면 에이전트 구성 (구성 파일 또는 환경 변수)에 지정된 응용 프로그램이 사용됩니다.

애플리케이션 객체 생성에 대한 자세한 내용은 application() 메서드를 참조하세요.

애플리케이션이 지정되더라도 요청 환경 사전당 WSGI 애플리케이션에 newrelic.app_name 이 정의되어 있으면 애플리케이션을 계속 재정의할 수 있습니다.

name

필수의. 트랜잭션의 이름입니다. 기본값은 None 입니다. 기본적으로 이름은 데코레이터가 적용된 함수의 이름이지만 이 이름을 제공하여 이를 재정의할 수 있습니다.

group

선택 과목. groupname 매개변수의 이름 지정 구조를 나타냅니다. 이것은 UI에서 트랜잭션 유형 을 설정하는 데 사용됩니다.

제공되지 않은 경우 그룹은 이름이 module:class.function 또는 module:function 형식이고 실행 중인 함수의 이름을 나타내는 것으로 가정하여 기본적으로 Function 으로 설정됩니다. 사용자 지정 그룹을 생성하는 경우 Python/ 접두사를 사용하는 것이 좋습니다.

래퍼 매개변수:

newrelic.agent.BackgroundTaskWrapper(wrapped, application=None, name=None, group=None)

BackgroundTaskWrapper background_task 데코레이터 및 이 추가 wrapped 매개변수와 동일한 매개변수 를 사용합니다.

매개변수

설명

wrapped

방법

필수의. 추적할 방법입니다.

경로 기반 매개변수:

newrelic.agent.wrap_background_task(module, object_path, application=None, name=None, group=None)

wrap_background_task background_task 데코레이터와 동일한 매개변수 와 다음 추가 매개변수를 사용합니다.

매개변수

설명

module

모듈 또는 문자열

필수의. 계측 중인 웹이 아닌 기능/활동이 포함된 모듈입니다.

object_path

필수의. 모듈의 경로입니다.

background_task 데코레이터 예제

다음은 background_task 데코레이터를 사용하는 예입니다.

@newrelic.agent.background_task()
def task():
...

BackgroundTask 컨텍스트 관리자 예제

BackgroundTask 사용 예:

application = newrelic.agent.application()
name = newrelic.agent.callable_name(task)
with BackgroundTask(application, name):
task()

다음은 매개변수가 더 많은 또 다른 예입니다.

application = newrelic.agent.register_application(timeout=10.0)
def execute_task(task_name):
with newrelic.agent.BackgroundTask(application, name=task_name, group='Task'):
...

BackgroundTaskWrapper 예시

BackgroundTaskWrapper 사용 예:

task = newrelic.agent.BackgroundTaskWrapper(get_next_task())
result = task(*args, **kwargs)

이 예에서 에이전트가 모니터링하는 웹 트랜잭션에서 이 호출이 이루어진 경우 호출은 웹 트랜잭션을 백그라운드 작업으로 재분류합니다. 그러나 호출이 백그라운드 스레드 또는 코루틴에서 이루어진 경우 호출이 반환될 때까지 발생하는 것을 추적하는 새로운 백그라운드 작업 트랜잭션의 기록을 시작합니다.

Copyright © 2022 New Relic Inc.

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