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

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

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

問題を作成する

設定ファイルによるPythonのカスタムインストルメント

設定ファイルを変更することで、Pythonエージェントのモニタリングを拡張して、クラスの追加の関数やメソッドに費やされた時間をトレースすることができます。この形式の カスタムインスツルメンテーション は、APIコールよりも実装が簡単で、コードを修正する必要がありません。しかし、より複雑なニーズのためには、 Python のインスツルメンテーションを API で実装する必要があるかもしれません

設定ファイルの機能一覧

インストルメンテーションを指定された関数とクラス メソッドに拡張するには、それらをエージェント構成ファイルの newrelic セクション内の transaction_tracer.function_trace 設定に追加します。関数の識別子の形式は module:function であり、クラス メソッドの識別子は module:class.functionである必要があります。

複数のアイテムをリストアップするには、以下のいずれかの方法を使用します。

  • 一行で表示します。各項目をスペースで区切ります。
  • 複数の行があります。 ini ファイルの規約に従って、後続の行をインデントします。

インストルメント化された関数のデータが報告されると、メトリクスには Function/module:function または Function/module:class.functionの形式の名前が付けられます。トランザクションのパフォーマンスの内訳では、カテゴリは Function として表示され、セグメントは module:function または module:class.functionとして表示されます。低速トランザクション追跡の場合は、セグメント名のみが表示されます。関数が実際にジェネレーターを返している場合、ジェネレーターを返すのに費やした時間だけが記録され、ジェネレーターからの値の消費は記録されないことに注意してください。

拡張APIのラッピングに関する制限

エージェント設定ファイルに関数をリストアップしてラッピングする際、メソッドがC拡張モジュールによってCコードで実装されたクラスのメンバーである場合は、この方法でクラスメソッドを指定することはできません。これは、Python C APIで実装された型のメソッドテーブルを変更することができないためです。

報告された関数名のオーバーライド

エージェント構成ファイルで transaction_tracer.function_trace 設定を使用する場合、関数の名前はメトリック名に使用され、 Functionとして分類されます。メトリック名で使用できる関数名をオーバーライドする必要がある場合、またはメトリック名を別の方法で分類する必要がある場合は、構成ファイルで関数トレースを定義する代替手段を使用できます。同等のもの:

transaction_tracer.function_trace = dumbdbm:open
dumbdbm:_Database._commit

この場合、エージェント設定ファイルに2つの新しい設定セクションを作成し、トレースする機能ごとに1つずつ設定することになります。

[function-trace:dumbdbm-1]
enabled = true
function = dumbdbm:open
name = dumbdbm:open
group = Function
[function-trace:dumbdbm-2]
enabled = true
function = dumbdbm:_Database._commit
name = dumbdbm:_Database._commit
group = Function

ini ファイルのセクション名は function-trace:で始まる必要があります。このプレフィックスに続く名前コンポーネントは何でもかまいませんが、構成ファイル内のすべての関数トレース セクションにわたって一意である必要があります。 groupname 設定は、必要に応じてオーバーライドして、目的のメトリック名を得ることができます。 enabled 設定のデフォルトは false であり、関数トレースを有効にするには true に設定する必要があります。

APIを使った機器

シンプルなカスタムインストルメンテーションの目的では、コンフィグファイルの方法がうまく機能します。より精密でカスタマイズされたインストゥルメンテーションやエージェントの動作調整には、 Python agent API を使用するとよいでしょう。

Copyright © 2023 New Relic Inc.

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