• English日本語한국어
  • ログイン今すぐ開始

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

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

問題を作成する

data_source_factory (PythonエージェントAPI)

構文

data_source_factory(name=None, **properties)

ファクトリーとして定義されたデータソースをラップします。

説明

データ ソース API は、 record_custom_metricによって実装される プッシュ スタイル API ではなく、プル スタイル API を使用してメトリクスのタイムスライス データを生成する方法を提供します。カスタム メトリックにデータ ソースを使用する理由とその方法の詳細については、 「カスタム メトリック データ ソース」を参照してください。

data_source_factory デコレータは、ファクトリとして定義されたデータ ソースをラップします。デコレータはクラスまたは関数に適用できます。クラス コンストラクターまたは関数は、 settings (データ ソースの構成設定) と environ (データ ソースが使用されているコンテキストに関する情報) の引数を受け入れる必要があります。

結果として得られるオブジェクトは、各サンプルのメトリクスを持つイテレート可能なジェネレータを直接返す呼び出し可能なものでなければなりません。

パラメーター

パラメータ

説明

name

ストリング

オプションです。データソースの名前です。これはロギングの目的でのみ使用されます。提供されていない場合は、装飾された関数から派生した呼び出し可能な名前がデフォルトとなります。

properties

辞書

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

辞書に登録できるフィールドは以下の通りです。

  • count
  • total
  • min
  • max
  • sum_of_squares

戻り値

関数を返します。

data_source_factoryの例

例を挙げると

import os
import time
import multiprocessing
@newrelic.agent.data_source_factory(name='CPU Usage')
class CPUMetricsDataSource(object):
def __init__(self, settings, environ):
self.last_timestamp = None
self.times = None
def start(self):
self.last_timestamp = time.time()
self.times = os.times()
def stop(self):
self.last_timestamp = None
self.times = None
def __call__(self):
if self.times is None:
return
now = time.time()
new_times = os.times()
elapsed_time = now - self.last_timestamp
user_time = new_times[0] - self.times[0]
utilization = user_time / (elapsed_time*multiprocessing.cpu_count())
self.last_timestamp = now
self.times = new_times
yield ('Custom/CPU/User Time', user_time)
yield ('Custom/CPU/User/Utilization', utilization)
newrelic.agent.register_data_source(CPUMetricsDataSource)
Copyright © 2024 New Relic Inc.

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