newrelic.ini
구성 파일을 편집하여 Python 에이전트의 모니터링을 확장하여 클래스의 추가 함수 또는 메서드에 소요된 시간을 추적할 수 있습니다. 이러한 형태의 사용자 지정 계측은 API 호출보다 구현하기가 더 간단하며 코드를 수정할 필요가 없습니다. 그러나 보다 복잡한 요구 사항이 있는 경우 대신 API를 통해 계측 해야 할 수도 있습니다.
구성 파일의 기능 나열
계측을 지정된 함수 및 클래스 메서드로 확장하려면 에이전트 구성 파일의 newrelic
섹션에 있는 transaction_tracer.function_trace
설정에 추가합니다. 함수의 식별자는 module:function
형식이어야 하고 클래스 메서드는 module:class.function
형식이어야 합니다.
둘 이상의 항목을 나열하려면 다음 방법 중 하나를 사용하십시오.
한 줄: 각 항목을 공백으로 구분합니다.
여러 줄: 다음 줄을 들여쓰려면
ini
파일 규칙을 따릅니다.
계측 기능에 대한 데이터가 보고되면 측정항목의 이름은 Function/module:function
또는 Function/module:class.function
형식이 됩니다. 거래에 대한 실적 분석에서 카테고리는 Function
로 표시되고 세그먼트는 module:function
또는 module:class.function
가 됩니다. 느린 트랜잭션 추적의 경우 세그먼트 이름만 나타납니다. 함수가 실제로 생성기를 반환하는 경우 생성기를 반환하는 데 소요된 시간만 기록되고 생성기의 값 소비는 기록되지 않습니다.
확장 API 래핑에 대한 제한사항
함수를 에이전트 구성 파일에 나열하여 래핑할 때 메서드가 C 확장 모듈에 의해 C 코드로 구현된 클래스의 멤버인 경우 이러한 방식으로 클래스 메서드를 지정할 수 없습니다. 이는 Python C API를 사용하여 구현된 유형의 메소드 테이블을 수정할 수 없기 때문입니다.
보고된 함수 이름 재정의
에이전트 구성 파일에서 transaction_tracer.function_trace
설정을 사용하는 경우 함수 이름이 메트릭 이름에 사용되며 Function
로 분류됩니다. 메트릭 이름에 사용할 수 있는 함수 이름을 재정의하거나 다르게 분류해야 하는 경우 구성 파일에서 함수 추적을 정의하는 대체 수단을 사용할 수 있습니다. 다음에 해당하는 항목:
transaction_tracer.function_trace = dumbdbm:open dumbdbm:_Database._commit
추적할 각 기능에 대해 하나씩 에이전트 구성 파일에 두 개의 새 구성 섹션을 만드는 것입니다.
[function-trace:dumbdbm-1]enabled = truefunction = dumbdbm:openname = dumbdbm:opengroup = Function
[function-trace:dumbdbm-2]enabled = truefunction = dumbdbm:_Database._commitname = dumbdbm:_Database._commitgroup = Function
.ini
파일 섹션 이름은 function-trace:
으로 시작해야 합니다. 해당 접두사 뒤에 오는 이름 구성 요소는 무엇이든 될 수 있지만 구성 파일의 모든 함수 추적 섹션에서 고유해야 합니다. group
및 name
설정을 재정의하여 원하는 측정항목 이름을 얻을 수 있습니다. enabled
설정의 기본값은 false
이며 함수 추적을 활성화하려면 이를 true
으로 변경해야 합니다.
API로 계측
간단한 사용자 정의 계측 목적의 경우 구성 파일 방법이 적합합니다. 보다 정확하고 사용자 정의된 계측 및 에이전트 동작 조정을 위해서는 Python 에이전트 API를 사용하십시오.