통사론
newrelic.agent.wsgi_application(application=None, name=None, group=None, framework=None)
WSGI 애플리케이션 진입점을 표시하여 웹 트랜잭션을 모니터링합니다.
설명
wsgi_application
WSGI 애플리케이션 진입점을 계측하여 웹 트랜잭션을 모니터링하는 데 사용되는 Python 데코레이터입니다. Python 에이전트는 WSGI를 사용하는 대부분의 프레임워크 및 서버 를 자동으로 지원합니다. 프레임워크 또는 웹 서버가 지원되지 않는 경우 고급 통합 프로세스 의 일부로 이 API를 사용해야 할 수 있습니다.
wsgi_application
데코레이터를 사용할 수 없는 경우 다음 다른 호출 형식 중 하나를 사용할 수 있습니다.
The wrapper:
래퍼 호출은
WSGIApplicationWrapper
입니다. 스택될 수 있는 개별 WSGI 애플리케이션 구성 요소에 대해 둘 이상의 위치에서 래퍼를 사용할 수 있습니다. 이 경우 마주친 첫 번째 래퍼는 프로세서의 시작을 표시하고, 에이전트는 해당 첫 번째 래퍼를 기반으로 하여 강제, 목표 앱을 결정합니다(다음 래퍼는 무시합니다).The path-based wrapper:
경로 기반 래퍼 호출은
wrap_wsgi_application
입니다. 계측 범위에서 WSGI 개체를 변수로 참조할 수 없는 경우 이를 사용하세요. 이는 추가module
및object_path
매개변수를 포함하는 데코레이터와 동일한 매개변수를 사용합니다.
데코레이터와 래퍼를 사용하는 이유에 대한 설명은 다른 호출 형식 을 참조하세요.
매개변수
데코레이터 매개변수
newrelic.agent.wsgi_application(application=None, name=None, group=None, framework=None)
wsgi_application
데코레이터는 다음 매개변수를 사용합니다.
매개변수 | 설명 |
---|---|
문자열또는 애플리케이션 객체 | 선택 과목. 이 데이터와 연결할 애플리케이션 이름입니다. 기본값은 문자열이 제공되면 정확한 애플리케이션 이름이어야 하며 애플리케이션 이름 목록이 될 수 없습니다. 애플리케이션 객체 생성에 대한 자세한 내용은 애플리케이션이 지정되더라도 요청 환경 사전당 WSGI 애플리케이션 내에서 |
끈 | 선택 사항이며 거의 사용되지 않습니다. WSGI 진입점을 통해 캡처된 모든 요청에 대한 트랜잭션 이름을 설정합니다. 일반적으로 모든 트랜잭션이 동일한 이름을 갖는 것을 원하지 않기 때문에 일반적으로 사용되지 않습니다( 메트릭 그룹화 문제 참조). |
끈 | 선택 사항이며 거의 사용되지 않습니다. |
튜플 | 선택 과목. 프레임워크 이름과 버전 번호를 나타내는 두 개의 문자열이 있는 튜플. 예를 들어: |
래퍼 매개변수
newrelic.agent.WSGIApplicationWrapper(wrapped, application=None, name=None, group=None, framework=None)
이것은 wrapped
매개변수 외에 wsgi_application
에 필요한 모든 매개변수 를 사용합니다.
매개변수 | 설명 |
---|---|
물체 | 필수의. 래핑할 WSGI 개체입니다. |
경로 기반 래퍼 매개변수
newrelic.agent.wrap_wsgi_application(module, object_path, application=None, name=None, group=None, framework=None)
wsgi_application
에 필요한 매개변수 외에도 이 호출에는 추가 module
및 object_path
매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
개체 또는 문자열 | 필수의. WSGI 개체를 포함하는 모듈입니다. |
끈 | 필수의. 파일 내에서 WSGI 개체를 찾기 위한 클래스 메서드 또는 메서드를 나타냅니다. |
예
wsgi_application 예제
선택적 application
매개변수 없이 호출되는 데코레이터의 예:
@newrelic.agent.wsgi_application()def application(environ, start_response): status = '200 OK' output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers)
return [output]
WSGIApplicationWrapper 예제
wsgi_application
데코레이터가 작동하지 않는 경우 필요할 수 있는 WSGIApplicationWrapper
사용의 예:
import osos.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")from django.core.wsgi import get_wsgi_applicationapplication = get_wsgi_application()
application = newrelic.agent.WSGIApplicationWrapper(application)
wrap_wsgi_application 예제
경로 기반 래퍼를 사용하는 예:
import newrelic.agentnewrelic.agent.initialize('newrelic.ini')
class Application(object): def application(self, environ, start_response): status = '200 OK' response_headers = [('Content-type', 'text/plain')] start_response(status, response_headers) return [b'Hello World']
newrelic.agent.wrap_wsgi_application(__name__, 'Application.application')