構文
newrelic.agent.data_source_generator(name=None, **properties)
メトリックデータを生成するデータソースをラップします。
説明
データ ソース API は、 record_custom_metric
によって実装されたプッシュ スタイル APIではなく、プル スタイル API を使用して指標を生成する方法を提供します。カスタム メトリックにデータ ソースを使用する理由とその方法の詳細については、 「カスタム メトリック データ ソース」を参照してください。
data_source_generator
デコレータは、各サンプルのメトリクスを含むイテラブル/ジェネレータを直接返す単純なメトリクス データ生成データ ソースをラップするために使用されます。デコレータが適用される関数は引数を取らないでください。これは、メトリクスを生成するために呼び出し間で状態情報を保持する必要がない場合、およびデータ ソースの 1 つのインスタンスを複数のアプリケーションに対して使用できる場合に使用されます。
パラメーター
パラメータ | 説明 |
---|---|
ストリング | オプションです。データソースの名前です。これはロギングの目的でのみ使用されます。提供されていない場合は、装飾された関数から派生した呼び出し可能な名前がデフォルトとなります。 |
辞書 | オプションです。データソース・ファクトリに渡す追加のプロパティ。 辞書に登録できるフィールドは以下の通りです。
|
戻り値
関数を返します。
例
データソースジェネレータの例
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()