• 로그인지금 시작하기

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

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

문제 신고

asgi_application(파이썬 에이전트 API)

통사론

newrelic.agent.asgi_application(application=None, name=None, group=None, framework=None)

ASGI 애플리케이션 진입점을 표시하여 웹 트랜잭션을 모니터링합니다.

설명

asgi_application ASGI 애플리케이션 진입점을 계측하여 웹 트랜잭션을 모니터링하는 데 사용되는 Python 데코레이터입니다. Python 에이전트는 ASGI를 사용하는 대부분의 프레임워크와 서버 를 자동으로 지원합니다. 프레임워크 또는 웹 서버가 지원되지 않는 경우 고급 통합 프로세스 의 일부로 이 API를 사용해야 할 수 있습니다.

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

  • 래퍼: 래퍼 호출은 ASGIApplicationWrapper 입니다. 스택될 수 있는 고유한 ASGI 응용 프로그램 구성 요소에 대해 둘 이상의 위치에서 래퍼를 사용할 수 있습니다. 이 경우 처음 만난 래퍼는 트랜잭션의 시작을 표시하고 에이전트는 첫 번째 래퍼를 기반으로 대상 앱을 결정하고 후속 래퍼는 무시합니다.
  • 경로 기반 래퍼: 경로 기반 래퍼 호출은 wrap_asgi_application 입니다. 계측 범위에서 ASGI 개체를 변수로 참조할 수 없는 경우 이것을 사용하십시오. 이는 추가 moduleobject_path 매개변수가 있는 데코레이터와 동일한 매개변수를 사용합니다.

데코레이터와 래퍼를 사용하는 이유에 대한 설명은 다른 호출 형식 을 참조하세요.

매개변수

데코레이터 매개변수

newrelic.agent.asgi_application(application=None, name=None, group=None, framework=None)

asgi_application 데코레이터는 다음 매개변수를 사용합니다.

매개변수

설명

application

문자열, 응용 프로그램 개체

선택 과목. 이 데이터와 연결할 애플리케이션 이름입니다. 기본값은 None 입니다. 값 없이 남겨두면 에이전트는 에이전트 구성에 지정된 애플리케이션 이름을 사용합니다.

문자열이 제공되면 정확한 애플리케이션 이름이어야 하며 애플리케이션 이름 목록이 될 수 없습니다. 애플리케이션 객체 생성에 대한 자세한 내용은 application 메서드를 참조하세요.

name

선택 사항이며 거의 사용되지 않습니다. ASGI 진입점을 통해 캡처된 모든 요청에 대한 트랜잭션 이름을 설정합니다. 일반적으로 모든 트랜잭션이 동일한 이름을 갖는 것을 원하지 않기 때문에 일반적으로 사용되지 않습니다( 메트릭 그룹화 문제 참조).

group

선택 사항이며 거의 사용되지 않습니다. groupname 매개변수의 이름 지정 구조를 나타냅니다. 이를 설정하면 트랜잭션 유형 하위 범주 가 생성됩니다. name 와 유사하게, 일반적으로 전체 애플리케이션이 하나의 트랜잭션 이름 또는 범주로 보고하는 것을 원하지 않기 때문에 거의 사용하지 않아야 합니다.

framework

튜플

선택 과목. 프레임워크 이름과 버전 번호를 나타내는 두 개의 문자열이 있는 튜플. 예를 들어: ('Flask', '0.12.2')

래퍼 매개변수

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

이것은 wrapped 매개변수 외에 asgi_application 에 필요한 모든 매개변수 를 사용합니다.

매개변수

설명

wrapped

물체

필수 . 래핑할 ASGI 개체입니다.

경로 기반 래퍼 매개변수

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

asgi_application 에 필요한 매개변수 외에도 이 호출에는 추가 moduleobject_path 매개변수가 필요합니다.

매개변수

설명

module

개체 또는 문자열

필수 . ASGI 개체를 포함하는 모듈입니다.

object_path

필수 . 파일 내에서 ASGI 개체를 찾기 위한 클래스 메서드 또는 메서드를 나타냅니다.

asgi_application 예시

선택적 application 매개변수 없이 호출되는 데코레이터의 예:

@newrelic.agent.asgi_application()
async def application(scope, receive, send):
await send(
{
"type": "http.response.start",
"status": 200,
"headers": [(b"Content-type", b"text/plain")]
}
)
await send(
{
"type": "http.response.body",
"body": b"Hello World!"
}
)

ASGIApplicationWrapper 예제

asgi_application 데코레이터가 작동하지 않는 경우 필요할 수 있는 ASGIApplicationWrapper 사용의 예:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core.asgi import get_asgi_application
application = get_asgi_application()
application = newrelic.agent.ASGIApplicationWrapper(application)

wrap_asgi_application 예제

경로 기반 래퍼를 사용하는 예:

import newrelic.agent
newrelic.agent.initialize('newrelic.ini')
class Application:
def __init__(self, scope):
self.scope = scope
async def __call__(self, receive, send):
await send({"type": "http.response.start", "status": 200})
await send({"type": "http.response.body", "body": b"Hello World!"})
newrelic.agent.wrap_asgi_application(__name__, 'Application')
Copyright © 2022 New Relic Inc.

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