Node.js用New Relicは、大半の標準的なウェブリクエストを自動的にインストゥルメントしますが、時には拡張インストゥルメンテーションを必要とする場合もあります。エージェントのカスタムインストゥルメンテーションAPIを使用すると、サポートされていない他のウェブフレームワーク、データストア、メッセージサービスクライアントに向けてインストゥルメンテーションを作成できます。
Node.jsエージェントのカスタムインストゥルメンテーションAPIでは、以下を行うことができます:
- ウェブトランザクションの作成(トランザクションを自動的に作成できないウェブソケットなどで便利)。
- Web以外のバックグラウンドトランザクションの作成(バックグラウンドジョブの記録に便利)。
- コードの特定のセクションをターゲットにしてさらなる分析を実行。
エージェントのバージョン要件
このドキュメント内のカスタムインストゥルメンテーション方法は、Node.jsエージェントのバージョン2.0.0から利用できます。カスタムインストゥルメンテーションAPI v1.xを使用したインストゥルメンテーションの詳細に関しては、レガシーNode.jsカスタムインストゥルメンテーションのドキュメントを参照してください。
未対応のWebフレームワークをインストゥルメントする
Node.jsエージェントバージョン2.0.0より、New Relicは追加のウェブフレームワークに対するインストゥルメンテーション拡張のためにAPIを提供しています。詳細については、GitHubのサンプルアプリケーションを参照してください。
未対応のメッセージサービスクライアントをインストゥルメントする
Node.jsエージェントバージョン2.0.0より、New Relicは追加のメッセージサービスライブラリに対するインストゥルメンテーション拡張のためにAPIを提供しています。詳細については、GitHubのサンプルアプリケーションを参照してください。
未対応のデータストアをインストゥルメントする
Node.jsエージェントバージョン2.0.0より、New Relicは追加のデータストアライブラリに対するインストゥルメンテーションを拡張するためにAPIを提供しています。詳細については、GitHubのサンプルアプリケーションを参照してください。
Webトランザクションをインストゥルメントする
カスタムウェブトランザクションを作成するには、startWebTransaction
を呼び出してトランザクションを開始します。詳細については、GitHubのサンプルアプリケーションを参照してください。
リンクされたサンプルアプリケーションで得られるのは、作成したトランザクションに関する基本的なタイミングデータのみとなります。特定のフレームワークに関する、より複雑なタイミングデータとトランザクションの命名を作成するには、Node.js APIドキュメントならびにGitHubにある関連のWebFrameworkサンプルアプリケーションを参照してください。
バックグラウンドトランザクションをインストゥルメントする
カスタムトランザクションを使用して、Web以外のトランザクション(バックグラウンドトランザクション)をインストゥルメントできます。たとえば:
- ご利用のアプリケーションにおける周期的な仕事
- リクエスト完了後も続く作業
バックグラウンドタスクをインストゥルメントするには、ハンドラーでstartBackgroundTransaction
を呼び出してバックグラウンドトランザクションを開始します。詳細については、GitHubのサンプルアプリケーションを参照してください。
トランザクション内でインストゥルメンテーションを拡張する
APIにあるインストゥルメンテーション登録手段を使用して、インストゥルメンテーションを作成することができます。インストゥルメンテーションAPIを使用してインストゥルメンテーションを書いた場合、関連オブジェクト上で「モンキーパッチ」メソッド(置換関数)を用いてメトリクスと命名をより詳細に指定できるようになります。他のオプションとして、既にインストゥルメントされたウェブトランザクションを可視化したり、自動的にインストゥルメントされないデータベースやその他のトランザクション内作業に関するインサイトを得たりすることができます。
これを行うには、コールバックをカスタムトレーサーでラップします。カスタムトレーサーは、特定の関数やデータベース呼び出しなど、既存トランザクション内の追加セグメントに関する具体的なメトリクスの作成・収集を行います。詳細については、GitHubのサンプルアプリケーションを参照してください。