構文
newrelic.agent.register_data_source(source, application=None, name=None, settings=None, **properties)
カスタムメトリックデータを生成するためのデータソースを登録します。
説明
この呼び出しは、カスタム メトリック・タイムスライス・データ を生成するために、 収穫サイクルごとにポーリングされるデータ・ソースを登録します。カスタム・メトリックにデータ・ソースを使用する理由と方法については、 カスタム・メトリック・データ・ソース を参照してください。
ヒント
ほとんどの場合、 名前
以外のオプション引数を使用する必要はありません。
データ・ソースから返されるメトリクスは、単純な (name, value)
タプルで、値は数値または浮動小数点であるか、または値は特定のメトリクスについて既に集約されたデータ・サンプルに対応するディクショナリである可能性があります。
メトリクス値としてディクショナリーを返す場合、提供可能なフィールドは以下のとおりです。
count
トータル
min
max
二乗の和
これらのフィールドの詳細と一般的な使用方法については、 Pre-aggregated metrics を参照してください。
ヒント
また、 エージェント設定 を使っても同様の結果を得ることができますが、この場合はコードを変更する必要はありません。この方法でデータソースを追加するには、設定ファイルに 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-monitored アカウントに対応するアプリケーション オブジェクト。デフォルトの レポートアプリケーションごとに異なるデータを保持するデータソースが必要な場合は、ファクトリーパターンを使用して、アプリケーションごとにデータソースのインスタンスを作成することができます。 |
文字列 | オプションです。データソースの名前です。これはロギング目的でのみ使用され、デフォルトではデータソース自体が提供する名前になります。 |
文字列 | オプションです。データソース・ファクトリーに渡す設定です。 |
文字列 | オプションです。データソース・ファクトリに渡す追加のプロパティ。 |
戻り値
なし。
例
データソースの登録
ここでは、カスタムメトリックデータを生成するアプリのコードの例を紹介します。
@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 psutilimport 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)