• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページ を参照してください。

問題を作成する

register_data_source (PythonエージェントAPI)

構文

newrelic.agent.register_data_source(source, application=None, name=None, settings=None, **properties)

カスタムメトリックデータを生成するためのデータソースを登録します。

説明

この呼び出しは、カスタム メトリック・タイムスライス・データ を生成するために、 収穫サイクルごとにポーリングされるデータ・ソースを登録します。カスタム・メトリックにデータ・ソースを使用する理由と方法については、 カスタム・メトリック・データ・ソース を参照してください。

ヒント

ほとんどの場合、 name以外のオプションの引数を使用する必要はありません。

データ ソースによって返される指標は、値が数値または浮動小数点である単純な (name, value) タプルである場合も、特定の指標についてすでに集計されているデータ サンプルに対応する辞書である場合もあります。

メトリクス値としてディクショナリーを返す場合、提供可能なフィールドは以下のとおりです。

  • count
  • total
  • min
  • max
  • sum_of_squares

これらのフィールドの詳細と一般的な使用方法については、 Pre-aggregated metrics を参照してください。

ヒント

エージェント構成を使用して同じ結果を達成することもできます。この場合、コードを変更する必要はありません。この方法でデータ ソースを追加するには、構成ファイルにプレフィックス data-source:を付けたセクションを追加し、その後に複数のデータ ソースが指定されている場合にそのセクションを別のデータ ソースのセクションと区別するための一意の値を続けます。以下に例を示します。

[data-source:memory-usage]enabled = true
function = samplers:memory_metrics
# application = ...
# name = ...
[data-source:cpu-usage]enabled = true
function = samplers:CPUMetricsDataSource
# application = ...
# name = ...

データ ソースが関数で指定されている場合、名前は module:functionになります。クラスの場合は、 module:classになります。モジュールは、Python モジュール検索パスを使用して見つけられる必要があります。

register_data_sourceと同様、データをレポートするアプリケーションと名前はオプションです。

パラメーター

パラメータ

説明

source

機能 または クラス

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

application

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

オプション。データのレポート先となる New Relic が監視するアカウントに対応するアプリケーション オブジェクト。デフォルトの Noneに設定すると、インストルメント化されたアプリごとに各収集サイクルの終了時にデータ ソースがポーリングされます。あるいは、アプリケーション オブジェクトが指定されている場合、データ ソースはその 1 つの特定のアプリケーションのメトリクスを生成するためにのみポーリングされます。

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

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 © 2024 New Relic株式会社。

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