このページでは、Node.js エージェントのトランザクションの検出と設定について説明します。

GraphQL ビジネストランザクション

GraphQL は、サーバが HTTP エンドポイントを介して API を公開できるクエリおよびスキーマ定義言語です。要求ペイロードで必要なデータを指定し、すべての要求をクライアントからサーバエンドポイントに送信します。 

AppDynamics は、express-graphql モジュールで使用する場合、GraphQL をサポートします。「GraphQL HTTP Server Middleware」を参照してください。

  1. サーバ側で、データとそのデータで使用可能な操作について記述するスキーマを定義します。
  2. 次に、スキーマで定義された操作を呼び出し、GraphQL クエリを受信する URL 要求を介してデータを取得してから変更します。 

現在のモデルでは、Node.js エージェントによってサーバに着信するさまざまな要求から個々のビジネストランザクションが識別されますが、エージェントは要求ペイロードをキャプチャしません。 

GraphQL ビジネストランザクションにより、着信エンドポイントおよび着信 GraphQL ペイロード経由でビジネストランザクションを決定し、GraphQL Node.js アプリケーションの可視化を強化します。この URL に一致するすべての GraphQL クエリが、1 つのビジネストランザクションに集約されます。GraphQL ビジネストランザクションでは、着信ビジネストランザクションが特定の URI(/QL で始まる URI など)に一致するかどうかを識別するように、Node.js エージェントをコントローラで設定できます。また、そのトランザクションを 1 回の操作で複数のトランザクションに分割できます。

デフォルトでは、GraphQL ビジネストランザクションは無効になっています。GraphQL ビジネストランザクションを有効にするように Node.js エージェントを設定するには、profile() へのコールで [enableGraphQL] を [true] に設定します。

enableGraphQL: true,
CODE

GraphQL ビジネストランザクションを有効にすると、Node.js アプリケーションの GraphQL カスタム一致ルールを設定できます。

  1. コントローラで、[Configuration ] > [ Instrumentation ] > [ Transaction Detection] を選択します。 
  2. [Add Rule ] > [ Summary ] > [ Custom Match Rule] をクリックします。 
  3. [Agent Type] ドロップダウンで [Node.js] を選択します。[Next] をクリックします。
  4. 一致ルールの名前を入力し、有効なチェックボックスがオンになっていることを確認します。
  5. [Select Scope ] をクリックし、ルールに対して希望する範囲を選択します。[OK] をクリックします。
  6. 次に、[Rule Configuration ] > [ HTTP Request Match Criteria] に移動し、[Add] をクリックします。

  7. 条件として URI を選択し、ドロップダウンリストから希望する操作を選択します。次に、GraphQL の決まり文句とする値(URL プレフィックスなど)を入力します。

  8. [Split Transactions Using Request Data] に移動し、[Split Transactions Using Request Data] チェックボックスをオンにします。 
  9. ドロップダウンから [the graphql operation name] を選択し、次に [Save] を選択します。 
    Split Transaction Using Request Data

アプリケーションでルールを設定し、GraphQL クエリを送信すると、[Business Transactions ] ページに個別のトランザクションが表示されます。

GraphQL Business Transactions