• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

register_data_source (PythonエージェントAPI)

構文

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 と同様に、データを報告するアプリケーションとその名前は任意です。

パラメータ

パラメーター

説明

ソース

機能 または クラス

必要です。データソースとは、 data_source_generator または data_source_factory デコレーターが割り当てられた関数またはクラスのことです。

アプリケーション

アプリケーションオブジェクト

オプションです。データを報告する New Relic-monitored アカウントに対応するアプリケーション オブジェクト。デフォルトの None に設定されている場合、データソースはインストルメントされた各アプリケーションの各ハーベストサイクルの終わりにポーリングされます。また、アプリケーション・オブジェクトを指定すると、データ・ソースはその特定のアプリケーションのメトリクスを生成するためにのみポーリングされます。

レポートアプリケーションごとに異なるデータを保持するデータソースが必要な場合は、ファクトリーパターンを使用して、アプリケーションごとにデータソースのインスタンスを作成することができます。

name

文字列

オプションです。データソースの名前です。これはロギング目的でのみ使用され、デフォルトではデータソース自体が提供する名前になります。

設定

文字列

オプションです。データソース・ファクトリーに渡す設定です。

プロパティ

文字列

オプションです。データソース・ファクトリに渡す追加のプロパティ。

戻り値

なし。

データソースの登録

ここでは、カスタムメトリックデータを生成するアプリのコードの例を紹介します。

@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株式会社。

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