このページでは、Node.js、PHP、および Python アプリケーション用のトランザクション分析およびデータコレクタを設定する方法について説明します。 

はじめる前に

トランザクション分析を設定する前に、「エージェント側のコンポーネントのインストール」と、オンプレミスの場合は、「カスタムインストール」および「イベントサービスの展開」で説明されているコンポーネントをインストールし、設定していることを確認してください。

Node.js 用の分析の設定

デフォルトの Node.js トランザクションデータの収集

分析エージェントにデフォルトのトランザクションデータを送信するように Node.js エージェントを設定するには、アプリケーションの require ステートメントを変更します。

Analytics エージェントを指すように適切な値を使用して次の変数を追加します。

analytics: {
    host: <analyticsHostName>,
    port: <analyticsPort>,
    ssl: <true || false> 
}
CODE

分析エージェントは、Node.js エージェントと同じホストまたは別のホスト上に配置できます。詳細については、Node.js エージェントのインストールを参照してください。

データ制限の設定

環境変数に関連付けられた次のプロパティを使用して、Analytics エージェントに送信されるデータに制限を設定するように Node.js エージェントを構成することもできます。

プロパティ名

説明

環境変数

analyticsMaxSegmentSizeInBytes分析要求で収集されるビジネス トランザクション セグメントの最大サイズ。デフォルト値は、0.1 MB です。APPDYNAMICS_ANALYTICS_MAX_SEGMENT_SIZE
analyticsMaxSegmentsPerRequest分析要求ごとのセグメントの最大数。デフォルト値は 16 です。APPDYNAMICS_ANALYTICS_MAX_SEGMENTS_PER_REQUEST
analyticsMaxMessageSizeInBytes分析エージェントに送信される単一の要求本文のサイズ。デフォルトでは、この値は 1 MB です。APPDYNAMICS_ANALYTICS_MAX_MESSAGE_SIZE

require ステートメントは、分析エージェントがローカルホスト上にあり、ポート 9090 でリスニングする場合は、次の例のようになります。

require ("appdynamics").profile({
    controllerHostName: '<Controller host name>',
    controllerPort: <Controller port number>,
    controllerSslEnabled: false, // Set to true if controllerPort is SSL
    accountName: '<AppDynamics account name>',
    accountAccessKey: '<AppDynamics account key>', // Required
    applicationName: '<Your application name>',
    debug: false,
    tierName: '<Choose a tier name>',
    nodeName: '<Choose a node name>', // The Controller appends the node name with a unique number
    analyticsMaxSegmentSizeInBytes: 20,
    analyticsMaxSegmentsPerRequest: 20,
    analyticsMaxMessageSizeInBytes: 100,
    analytics: {
        host: 'localhost',
        port: 9090 },
    logging: {
        'logfiles': [
        {'root_directory': '/tmp/appd', 'filename': 'echo_%N.log', 'level': 'TRACE', 'max_size': 5242880, 'max_files': 10 },
        { 'root_directory': '/tmp/appd', 'filename': 'protobuf_%N.log', 'level': 'TRACE', 'max_size': 5242880, 'max_files': 10, 'channel': 'protobuf' }]
             }
});
CODE

Node.js データコレクタの収集

また、Node.js API を使用して、Node.js ビジネストランザクションから追加データを収集することもできます。Node.js のトランザクション分析データコレクタを設定するには、「Node.jsエージェントAPI参考資料」の「txn.addAnalyticsData()」を参照してください。

PHP アプリケーションの分析の構成

Transaction Analytics Configuration

  1. [Transaction Analytics - Configuration] で [Enable Analytics] チェックボックスをオンにして、PHP アプリケーションでの分析を有効または無効にします。
  2. [Business Transactions] の右側にある [Enable Analytics] チェックボックスをオンにして、アプリケーション内のビジネストランザクションでアプリケーション分析を有効または無効にします。

分析データを PHP CLI プログラムから収集することはできません。

PHP エージェントからトランザクション分析を収集するには、次の手順を実行します。

  1. デフォルトのトランザクションデータを分析エージェントに送信するように PHP エージェントを構成します。PHP エージェントがインストールされているオペレーティングシステムに応じて .ini ファイルを変更します。
    デフォルトでは、.ini ファイルには次の構成が含まれていて、分析エージェントが localhost にあり、ポート 9090 をリッスンします。

    agent.analyticsHostName = localhost
    agent.analyticsPort = 9090
    CODE

    分析エージェントを指すように適切な値を使用して次の変数を追加します。

    agent.analyticsHostName = <analyticsHostName>
    agent.analyticsPort = <analyticsPort>
    CODE

    分析エージェントは、PHP エージェントと同じホストまたは別のホスト上に配置できます。PHP エージェントのインストールについては、「PHPエージェントのインストール」を参照してください。

    分析の報告用のノードレベル設定 analytics-dynamic-service-enabled=true を設定する必要があります。

  2. (オプション)特定の数のデータイベント/トランザクションの後、または特定の時間間隔の後に分析データをレポートする必要がある場合は、.ini ファイルに次のパラメータを追加して、PHP エージェントを設定します。

    agent.analyticsReportingFrequency = <time in seconds>
    agent.analyticsEventThreshold = <number of analytics transaction recorded>
    CODE

    デフォルトのエージェントのレポート頻度は 30 秒で、デフォルトのイベントしきい値(イベント数/トランザクション数)は 10K です。

  3. 分析用の HTTP/メソッド呼び出しデータコレクタは、PHP エージェントからのデータが報告されるように、トランザクション スナップショットとトランザクション分析の両方を有効にする必要があります。
    MIDC を使用してメソッドの戻り値を収集するには、値を変数に割り当てる必要があります。

    $ret = function()
    CODE

    戻り値が変数に保存されていない場合は、スナップショットと分析データの両方で null と表示されます。

Python アプリケーションの分析の構成

  1. [Transaction Analytics - Configuration] で [Enable Analytics] をクリックして、Python アプリケーションでの分析を有効にします。
  2. [Business Transactions] の右側にある [Enable Analytics] をクリックして、アプリケーション内のビジネストランザクションで分析を有効にします。
  3. コントローラバージョンが 21.10 以下の場合は、分析をレポートするには analytics-dynamic-service-enabled=true ノードプロパティを設定します。

    ノードプロパティの追加方法の詳細については、登録済みノードプロパティの追加」を参照してください。

親の構成は、analytics-dynamic-service-enabled プロパティではサポートされません。トランザクション分析をレポートするには、このプロパティを各ノードに設定する必要があります。

トランザクション分析の収集

Python エージェントからトランザクション分析を収集するには、デフォルトのトランザクションデータを分析エージェントに送信するように Python エージェントを設定します。

  • Python エージェント構成ファイルを変更します。 

    [services:analytics]
    host= <analyticsHostName>
    port= <analyticsPort>
    CODE

    デフォルト値は、ホストは localhost、ポートは 9090 です。

    または、

  • 次の環境変数を設定します。

    • APPDYNAMICS_ANALYTICS_HOSTNAME

    • APPDYNAMICS_ANALYTICS_PORT

環境変数の設定方法の詳細については、「Pythonエージェント設定」を参照してください。

Python エージェントと分析エージェント間の SSL の有効化

Python エージェントと分析エージェント間の SSL を有効にするには、次の手順を実行します。

  1. 分析エージェントの証明書に署名した CA のルート証明書を取得します。

  2. SSL を有効にし、Python エージェント構成ファイルで証明書ファイルのパスを指定します。 

    [services:analytics]
    ssl= on
    ca-file=<path of the CA certificate file>
    CODE

    Python エージェントは、.pem 形式の証明書ファイルを受け入れます。

    中間認証局がある場合は、ルート認証局の代わりに信頼チェーンのパスを指定します。

    または、

    次の環境変数を設定します。

    • APPDYNAMICS_ANALYTICS_SSL_ENABLED

    • APPDYNAMICS_ANALYTICS_CAFILE