• 로그인

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

register_data_source(파이썬 에이전트 API)

통사론

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 과 마찬가지로 데이터를 보고할 애플리케이션과 이름은 선택사항입니다.

매개변수

매개변수

설명

source

함수 또는 클래스

필수의. data_source_generator 또는 data_source_factory 데코레이터가 할당된 함수 또는 클래스인 데이터 소스.

application

응용 프로그램 개체

선택 과목. 데이터를 보고할 New Relic 모니터링 계정에 해당하는 응용 프로그램 개체입니다. 기본값 None 으로 설정하면 계측된 각 앱에 대한 각 수확 주기가 끝날 때 데이터 소스가 폴링됩니다. 또는 응용 프로그램 개체가 제공되면 데이터 소스는 해당 하나의 특정 응용 프로그램에 대한 메트릭을 생성하기 위해서만 폴링됩니다.

각 보고 응용 프로그램에 대해 고유한 데이터를 유지하기 위해 데이터 소스가 필요한 경우 팩토리 패턴을 사용하여 각 응용 프로그램에 대한 데이터 소스의 개별 인스턴스를 생성할 수 있습니다.

name

선택 과목. 데이터 소스의 이름입니다. 이것은 로깅 목적으로만 사용되며 기본적으로 데이터 소스 자체에서 제공한 이름이 사용됩니다.

settings

선택 과목. 데이터 소스 팩터리에 전달할 설정입니다.

properties

선택 과목. 데이터 소스 팩터리에 전달할 추가 속성입니다.

반환 값

없음.

데이터 소스 등록

다음은 맞춤 측정항목 데이터를 생성하는 일부 앱 코드의 예입니다.

@newrelic.agent.data_source_generator(name='External')
def services():
# code goes here
  pass
if __name__ == '__main__':
application = nr.configure_newrelic()
newrelic.agent.register_data_source(services, application)
while True:
pass

데이터 소스의 메모리 사용량

import psutil
import os
@newrelic.agent.data_source_generator(name='Memory Usage')
def memory_metrics():
pid = os.getpid()
p = psutil.Process(os.getpid())
m = p.get_memory_info()
yield ('Custom/Memory/Physical', float(m.rss) / (1024 * 1024))
yield ('Custom/Memory/Virtual', float(m.vms) / (1024 * 1024))
newrelic.agent.register_data_source(memory_metrics)
Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.