Python 에이전트 API를 사용하면 모니터링을 사용자 지정하고 확장할 수 있습니다. Python 에이전트 API를 사용하여 다음을 수행합니다.
- 지원되지 않는 프레임워크 또는 타사 시스템을 수동으로 계측합니다.
- 에이전트의 기본 모니터링을 보완하기 위해 계측을 추가합니다.
이 문서에서는 사용 가능한 Python API 호출 중 일부를 설명합니다. 사용 가능한 모든 API에 대한 설명은 API 소개 를 참조하십시오.
사용자 정의 계측 또는 API
목표가 사용자 정의 계측 인 경우 에이전트가 자동 계측할 구성 파일에 기능 및 클래스 메서드를 추가할 수 있는 구성 파일 메서드 사용을 고려하십시오. config-file 방식의 이점은 애플리케이션 코드를 변경할 필요가 없다는 것입니다.
그러나 Python 에이전트 API는 훨씬 더 강력하며 더 복잡하고 맞춤화된 계측을 설정하는 데 가장 적합합니다. 전체 API 기능에 액세스하려면 최신 Python 에이전트 로 업데이트하십시오.
트랜잭션 및 세그먼트 모니터링
Python 에이전트는 대부분의 일반적인 WSGI 웹 프레임워크와 호환됩니다 . 에이전트가 프레임워크를 지원하는 경우 웹 요청이 자동으로 트랜잭션 으로 캡처되고 New Relic UI에 표시됩니다. 트랜잭션에는 트랜잭션 추적 의 일부로 캡처되는 기능 수준 세그먼트가 있을 수도 있습니다.
웹 트랜잭션, 웹이 아닌 트랜잭션 및 트랜잭션 세그먼트를 모니터링하려면 다음 방법을 사용하십시오.
원하는 경우... | 이게 ... |
---|---|
WSGI 웹 트랜잭션 모니터링 | Python 에이전트는 지원되는 프레임워크 에 대한 웹 트랜잭션을 자동으로 캡처합니다. 지원되는 프레임워크가 없는 경우 |
ASGI 웹 트랜잭션 모니터링 | Python 에이전트는 지원되는 프레임워크에 대한 웹 트랜잭션을 자동으로 캡처합니다. 지원되는 프레임워크가 없는 경우 |
웹이 아닌 트랜잭션 모니터링 | Python 에이전트는 웹이 아닌 트랜잭션 을 백그라운드 작업으로 분류합니다. 웹이 아닌 트랜잭션을 캡처하려면 |
거래에 대한 자세한 정보 캡처 | 트랜잭션 추적 에 원하는 수준의 세부 정보가 없는 경우:
|
트랜잭션 무시 | 다음 옵션 중 하나를 사용합니다.
|
트랜잭션 메타데이터 추가 및 편집
대상 코드가 UI에 표시되는 경우가 있지만 메서드의 일부 세부 정보는 유용하지 않습니다. 예를 들어:
- 기본 이름이 도움이 되지 않거나 측정항목 그룹화 문제 를 일으키고 있습니다.
- 쿼리할 때 필터링할 수 있도록 트랜잭션에 사용자 정의 속성 을 추가하려고 합니다.
기존 트랜잭션의 메타데이터를 변경하려는 경우 다음 호출을 사용합니다.
원하는 경우... | 이게 ... |
---|---|
현재 트랜잭션에 대한 참조 가져오기 | 현재 트랜잭션을 나타내는 객체를 반환하려면 |
트랜잭션 이름 변경 |
|
거래에 메타데이터(예: 고객의 구독 수준) 추가 |
|
트랜잭션을 백그라운드 작업으로 표시 | 웹 트랜잭션을 백그라운드 작업으로 변환하여 UI에서 웹이 아닌 트랜잭션 으로 표시하려면 |
거래가 Apdex 점수 에 영향을 미치지 않도록 방지 |
|
관련 로그 보기
애플리케이션의 오류 및 추적 컨텍스트 내에서 직접 로그를 보려면 get_linking_metadata
API 호출을 사용하여 로그에 주석을 추가하세요. 로그 데이터와 다른 원격 측정 데이터의 상관 관계에 대한 자세한 내용은 컨텍스트 문서의 로그를 참조하세요.
맞춤 이벤트 및 맞춤 측정항목 데이터 보고
에이전트는 두 가지 기본 형식으로 데이터를 보고 합니다.
- 메트릭 데이터는 숫자, 시간 기반 값을 측정합니다. 예를 들어 분당 연결 수입니다.
- 이벤트 데이터는 개별 이벤트 정보를 캡처합니다. 이벤트에는 연결된 키-값 속성이 있습니다. 이벤트 데이터를 분석하고 쿼리 할 수 있습니다.
다음 방법을 사용하여 새 이벤트 데이터 및 새 메트릭 데이터를 생성하십시오.
원하는 경우... | 이게 ... |
---|---|
데이터를 쿼리할 때 사용할 이벤트에 대한 데이터를 보냅니다. |
|
애플리케이션 성능에 대한 시간 기반 메트릭 보고 |
|
예외를 오류로 보고 | 기본적으로 Python 에이전트는 처리되지 않은 예외만 보고합니다. Python 예외를 오류로 보고하려면 |
쿼리 문자열 매개변수 보고 | 보안상의 이유로 웹 트랜잭션과 관련된 쿼리 문자열 매개변수는 기본적으로 비활성화되어 있습니다. |
메타데이터로 이벤트에 태그 지정 | 더 자세한 쿼리 또는 오류 분석을 위해 이벤트에 속성을 추가하려면 |
데이터 소스 및 데이터 팩터리에서 메트릭 생성 |
|
메시지 관련 통화
이러한 API 호출을 사용하면 메시지 전달 아키텍처 또는 서비스에 대한 성능 데이터를 수집할 수 있습니다. 예를 들어, RabbitMQ. 이러한 호출을 사용하려면 Python 에이전트 버전 2.88.0.72 이상이 있는지 확인하세요.
원하는 경우... | 이게 ... |
---|---|
메시지를 트랜잭션 으로 보고 |
|
트랜잭션 추적 세그먼트로 메시지 세부 정보 보고 |
|
중요
높은 수준의 보안 모드가 활성화된 경우 에이전트는 증거를 수집하지 않습니다.
분산 추적 구현
이러한 API 를 사용하려면 분산 추적 이 필요합니다.
에이전트가 모니터링하는 서비스와 애플리케이션은 지원되는 프레임워크 를 사용할 때 분산 추적 컨텍스트를 서로에게 자동으로 전달합니다. 지원되는 프레임워크를 사용하지 않는 경우 분산 추적 API를 사용하여 이 컨텍스트를 수동으로 수락해야 합니다.
지원되는 웹 프레임워크(예: Flask, Django, Tornado)는 트랜잭션을 생성할 때 자동으로 accept_distributed_trace_payload
을 호출합니다. 지원되는 외부 웹 서비스 라이브러리 는 외부 HTTP 호출을 수행하기 전에 자동으로 create_distributed_trace_payload
을 호출합니다.
아래 호출을 사용하여 분산 추적을 구현하는 방법에 대한 일반적인 지침은 분산 추적 API 사용 을 참조하세요.
원하는 경우... | 이게 ... |
---|---|
호출된 서비스에 보낼 페이로드를 만듭니다. |
|
첫 번째 서비스에서 보낸 페이로드를 수락합니다. 이것은 추적에서 이러한 서비스를 함께 연결합니다 |
|
에이전트 구성, 초기화, 종료
이러한 호출은 에이전트 초기화 및 통합, 구성 설정 참조 또는 변경과 같은 Python 에이전트 동작을 관리하는 데 도움이 됩니다.
원하는 경우... | 이게 ... |
---|---|
에이전트 초기화 | 고급 통합 프로세스 의 일부로 특정 구성 파일로 Python 에이전트를 초기화하려면 |
|
|
구성 설정에 대한 참조 가져오기 | Python 에이전트의 동작을 제어하기 위해 구성 설정 을 사용할 수 있습니다.
|
에이전트 종료 | 데이터 업로드를 위한 표준 최종 시도를 허용하는 대신 에이전트를 강제로 종료하려면 |
브라우저 모니터링 에이전트 제어
브라우저 이온 에이전트를 페이지에 자동으로 추가하거나 에이전트 JavaScript 스니펫을 복사하여 붙여넣어 특정 페이지에 구현, 배포하는 방법으로 설치할 수 있습니다. APM 에이전트 API 호출을 사용하여 브라우저 에이전트를 제어할 수도 있습니다. 자세한 내용은 브라우저 에이전트 및 Python 에이전트를 참조하세요.
원하는 경우... | 이게 ... |
---|---|
특정 페이지 보기 모니터링 | 모니터링하려는 보기에 브라우저 에이전트 헤더 및 바닥글 JavaScript 스니펫을 삽입하려면 |
특정 페이지 보기 모니터링 비활성화 | 특정 페이지 보기에 대한 브라우저 모니터링을 비활성화하려면 |