통사론
newrelic.agent.data_source_generator(name=None, **properties)
메트릭 데이터 생성 데이터 소스를 래핑합니다.
설명
데이터 소스 API는 record_custom_metric
에 의해 구현된 푸시 스타일 API 가 아닌 풀 스타일 API를 사용하여 측정항목을 생성하는 방법을 제공합니다. 사용자 정의 지표에 데이터 소스를 사용하는 이유와 방법에 대한 자세한 내용은 사용자 정의 지표 데이터 소스를참조하십시오.
data_source_generator
데코레이터는 각 샘플의 측정항목과 함께 iterable/generator를 직접 반환하는 간단한 측정항목 데이터 생성 데이터 소스를 래핑하는 데 사용됩니다. 데코레이터가 적용되는 함수는 인수를 취해서는 안 됩니다. 이것은 메트릭을 생성하기 위해 호출 사이에 상태 정보를 유지할 필요가 없고 데이터 소스의 하나의 인스턴스가 여러 애플리케이션에 대해 사용될 수 있는 경우에 사용됩니다.
매개변수
매개변수 | 설명 |
---|---|
끈 | 선택 과목. 데이터 소스의 이름입니다. 이것은 로깅 목적으로만 사용됩니다. 제공하지 않으면 기본적으로 데코레이트된 함수에서 파생된 호출 가능한 이름이 사용됩니다. |
사전 | 선택 과목. 데이터 소스 팩터리에 전달할 추가 속성입니다. 사전에 가능한 필드는 다음과 같습니다.
|
반환 값
함수를 반환합니다.
예
데이터 소스 생성기 예
data_source_generator
을 사용하여 측정항목 값을 반환하는 함수를 래핑하는 예:
import newrelic.agentimport psutilimport os
@newrelic.agent.data_source_generator(name='Memory_Usage')def memory_metrics(): pid = os.getpid() p = psutil.Process(pid) m = p.memory_info() yield ('Custom/Memory/Physical', float(m.rss) / (1024 * 1024)) yield ('Custom/Memory/Virtual', float(m.vms) / (1024 * 1024))
@newrelic.agent.background_task()def main(): # Example code, business as usual print("Hello, world!")
if __name__ == "__main__": newrelic.agent.initialize(config_file="newrelic.ini") app = newrelic.agent.register_application() newrelic.agent.register_data_source(memory_metrics, app) main()