통사론
newrelic.agent.register_data_source(source, application=None, name=None, settings=None, **properties)
사용자 지정 메트릭 데이터를 생성하기 위한 데이터 소스를 등록합니다.
설명
이 호출은 사용자 지정 메트릭 타임슬라이스 데이터 를 생성하기 위해 각 수확 주기 가 완료될 때 폴링할 데이터 소스를 등록합니다. 사용자 지정 메트릭에 데이터 소스를 사용하는 이유와 방법에 대한 자세한 내용은 사용자 지정 메트릭 데이터 소스 를 참조하십시오.
팁
대부분의 경우 name
을 제외하고 선택적 인수를 사용할 필요가 없습니다.
데이터 소스에서 반환된 측정항목은 값이 숫자 또는 부동 소수점인 단순 (name, value)
튜플이거나 값이 특정 측정항목에 대해 이미 집계된 데이터 샘플에 해당하는 사전일 수 있습니다.
사전을 메트릭 값으로 반환할 때 제공할 수 있는 필드는 다음과 같습니다.
count
total
min
max
sum_of_squares
이러한 필드 및 몇 가지 일반적인 사용 팁에 대한 자세한 내용은사전 집계된 측정항목 을 참조하세요.
팁
코드를 변경할 필요가 없는 에이전트 구성 을 사용하여 동일한 결과를 얻을 수도 있습니다. 이러한 방식으로 데이터 소스를 추가하려면 구성 파일에 접두사 data-source:
를 사용하여 섹션을 추가하고, 그 다음에 하나 이상의 데이터 소스가 지정된 경우 다른 데이터 소스의 섹션을 구별하는 고유 값을 추가합니다. 다음은 예입니다.
[data-source:memory-usage]enabled = truefunction = samplers:memory_metrics# application = ...# name = ...[data-source:cpu-usage]enabled = truefunction = samplers:CPUMetricsDataSource# application = ...# name = ...
데이터 소스가 함수에 의해 지정된 경우 이름은 module:function
입니다. 클래스인 경우 module:class
입니다. 모듈은 Python 모듈 검색 경로를 사용하여 찾을 수 있어야 합니다.
register_data_source
과 마찬가지로 데이터를 보고할 애플리케이션과 이름은 선택사항입니다.
매개변수
매개변수 | 설명 |
---|---|
함수 또는 클래스 | 필수의. |
응용 프로그램 개체 | 선택 과목. 데이터를 보고할 New Relic 모니터링 계정에 해당하는 응용 프로그램 개체입니다. 기본값 각 보고 응용 프로그램에 대해 고유한 데이터를 유지하기 위해 데이터 소스가 필요한 경우 팩토리 패턴을 사용하여 각 응용 프로그램에 대한 데이터 소스의 개별 인스턴스를 생성할 수 있습니다. |
끈 | 선택 과목. 데이터 소스의 이름입니다. 이것은 로깅 목적으로만 사용되며 기본적으로 데이터 소스 자체에서 제공한 이름이 사용됩니다. |
끈 | 선택 과목. 데이터 소스 팩터리에 전달할 설정입니다. |
끈 | 선택 과목. 데이터 소스 팩터리에 전달할 추가 속성입니다. |
반환 값
없음.
예
데이터 소스의 메모리 사용량
import newrelic.agentimport psutilimport os
@newrelic.agent.data_source_generator(name='Memory_Usage')def memory_metrics(): pid = os.getpid() p = psutil.Process(os.getpid()) 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()