Azure App Service Node.js

「 Instana 」を使用して、 Azure App Service として実行されている「 Node.js 」アプリケーションを監視するには、「 Node.js 」 Azure App Service Collector をインストールして有効化してください。

対応するプラットフォーム

Instana Linux プラットフォーム上でのみ、 Azure および App Service の監視に対応しています。

前提条件

Microsoft Azure App Services のメトリクスやインフラストラクチャの相関関係を含む包括的な監視が必要な場合は、 Azure Cloud Serviceエージェントをインストールしてください。

注: エージェントがインストールされていなくても、 Node.js、 Azure、 App Service Collector はトレースデータを収集し、それを Instana のサーバーレス・アクセプター ・エンドポイントに送信します。これにより、 サービスインスタンスが作成されます。

Azure のCLIを使用してコレクターを有効にする

Node.js Azure App Service コレクターを Azure CLI で有効にするには、Node.js Azure App Service インプロセスコレクタを Node.js アプリケーションで設定する必要があります。

コレクターの取り付け

プロジェクトの依存関係に @instana/azure-container-servicesInstana コレクターパッケージを追加してください:

npm install --save @instana/azure-container-services@latest
注: 別のパッケージマネージャーを使用している場合は、 npm のコマンドを適宜変更してください。

トレースの有効化

注: トレース機能を有効にする前に、 Azure ( App Service )が Azure 環境にデプロイされていることを確認してください。

Azure のCLIを使用してコレクターを有効にするには、以下のコマンドを実行します。 アプリケーションで CommonJS, を使用している場合は、 CommonJS セクションの手順に従ってトレースを有効にしてください。 アプリケーションでECMAScriptモジュールを使用している場合は、次の「ECMAScriptモジュール」セクションの手順に従ってトレースを有効にしてください。 Instana の環境変数に関する詳細については、 「環境変数 」のセクションを参照してください。

CommonJS

アプリケーションがCommonJS,を使用している場合は、以下のコマンドを使用する:

az webapp config appsettings set \
    --name <app-name> \
    --resource-group <resource-group-name> \
    --settings NODE_OPTIONS='--require /path/to/instana/node_modules/@instana/azure-container-services' \
    INSTANA_ENDPOINT_URL=<instana-endpoint-url>  INSTANA_AGENT_KEY=<instana-agent-key>
 

次の例は、node_modulesへの典型的なパスを示している:./node_modules/@instana/azure-container-services.

ECMAScriptモジュール

アプリケーションでECMAScriptモジュールを使用している場合は、次のコマンドを実行してください( Node.js のバージョンが 18.19 以上である場合):

az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group <your-resource-group-name> \
    --settings NODE_OPTIONS='--import /path/to/instana/node_modules/@instana/azure-container-services/esm-register.mjs' \
    INSTANA_ENDPOINT_URL=<instana-endpoint-url>  INSTANA_AGENT_KEY=<instana-agent-key>

次の例は、node_modulesへの典型的なパスを示している:./node_modules/@instana/azure-container-services/esm-register.mjs.

注:
  • Node.js のバージョンが v18.19.0 より古い場合は、の代わりに --experimental-loader /path/to/instana/node_modules/@instana/azure-container-services/esm-loader.mjs を使用する必要があります --import /path/to/instana/node_modules/@instana/azure-container-services/esm-register.mjs
  • 現在のバージョンでは、`with --experimental-loader ` の使用はサポート esm-loader.mjs されておらず、次回のアップグレードで削除される予定です。 詳細については、 「互換性のない変更 」のセクションを参照してください。

Azure のCLIを使用せずにコレクターを有効にする

Node.js App Service でコレクタを有効にするには、Manual installation セクションの指示に従うか、Docker を使用している場合は、Docker installation セクションの指示を参照してください。

手動インストール

Node.js Azure App Service Collector を設定するには、Node.js Azure App Service In-process Collector をインストールし、トレースを有効にする必要があります。

コレクターの取り付け

プロジェクトの依存関係に @instana/azure-container-servicesInstana コレクターパッケージを追加してください:

npm install --save @instana/azure-container-services@latest
注: 別のパッケージマネージャーを使用している場合は、 npm のコマンドを適宜変更してください。

トレースの有効化

アプリケーションで CommonJS, を使用している場合は、 CommonJS セクションの手順に従ってトレースを有効にしてください。 アプリケーションでECMAScriptモジュールを使用している場合は、次の「ECMAScriptモジュール」セクションの手順に従ってトレースを有効にしてください。

CommonJS

CommonJS, を使用するアプリケーションの場合、Node.js 実行ファイルを起動するときに、次のいずれかの手順を実行します。 NODE_OPTIONS または --require フラグを設定すると、アプリケーションコードの前に Node.js コレクターがロードされ、初期化されます。

  • Node.jsの起動プロセスを開始する前に、NODE_OPTIONS変数を設定します:

    NODE_OPTIONS="--require /path/to/instana/node_modules/@instana/azure-container-services"
     
  • あるいは、 Node.js を起動するコマンドに --require パラメータを追加してください。普段 node app/index.js コマンドを使用してアプリケーションを起動している場合は、コマンドライン --require 引数を1つ追加してください。 以下の例を参照してください。

    node --require /path/to/instana/node_modules/@instana/azure-container-services app/index.js
     
ECMAScriptモジュール

アプリケーションでECMAScriptモジュールを使用している場合は、 Node.js の実行ファイルを開始する際に、以下のいずれかの手順を実行してください。 この --import 引数を設定 NODE_OPTIONS または使用すると、アプリケーションコードの実行前に Node.js コレクタが初期化されます。 ECMAScriptモジュールに関する詳細については、 Node.js の公式ドキュメントを参照してください。

  • Node.js のアクティベーションプロセスを開始する前に、変数( Node.js、 18.19NODE_OPTIONS 以降)を設定してください:

    NODE_OPTIONS="--import=/path/to/instana/node_modules/@instana/azure-container-services/esm-register.mjs"
  • あるいは、 Node.js アプリケーションを起動する際に、この --import パラメータを指定してください。 アプリケーションを コマンド node app/index.mjs で起動する場合は、コマンドライン引数に コマンド --import を追加してください。 以下の例を参照してください。

    node --import /path/to/instana/node_modules/@instana/azure-container-services/esm-register.mjs app/index.mjs

Dockerのインストール

Docker でアプリケーションをビルドしている場合は、@instana/azure-container-services パッケージを手動でインストールする必要はありません。 このパッケージは Docker イメージに含まれており、icr.io/instana/azure-container-services-nodejs イメージレジストリで入手できます。

Instana 現在、この x86_64 アーキテクチャのみをサポートしています。

トレースの有効化

アプリケーションで CommonJS, を使用している場合は、 CommonJS セクションの手順に従ってトレースを有効にしてください。 アプリケーションでECMAScriptモジュールを使用している場合は、次の「ECMAScriptモジュール」セクションの手順に従ってトレースを有効にしてください。

CommonJS

アプリケーションをビルドする場合Docker、Dockerfileの最後の行の後に次の行を追加します。FROM句:

COPY --from=icr.io/instana/azure-container-services-nodejs:includes/regular/../../../../../../../conrefs.html#conrefs__keyword.tracer_nodejs_version /instana /instana

ENV NODE_OPTIONS="--require /instana/node_modules/@instana/azure-container-services"

次に、コンテナーをビルドし、選択したイメージ・リポジトリーにプッシュします。

ECMAScript モジュール

Dockerfile の最後の FROM `clause` の後に、以下の行を追加してください( Node.js、 18.19 以降):

COPY --from=icr.io/instana/azure-container-services-nodejs:includes/regular/../../../../../../../conrefs.html#conrefs__keyword.tracer_nodejs_version /instana /instana

ENV NODE_OPTIONS="--import=/instana/node_modules/@instana/azure-container-services/esm-register.mjs"

次に、コンテナーをビルドし、選択したイメージ・リポジトリーにプッシュします。

Azure ポータルでの環境変数の設定

環境変数を設定する前に、Node.js Azure App Service Collector を Azure App Service に設定し、Azure 環境にアプリをデプロイしていることを確認してください。 Azure ポータルで必要な Instana 環境変数を設定するには、以下の手順を実行してください:

  1. Instana がトレースを行う必要がある Azure ( App Service )を開きます。

    azure アプリ・サービスを開く

  2. 構成ページで、 「アプリケーション設定」をクリックします。 次に、環境変数セクションで説明したように、環境変数を追加します。

    環境変数の追加

  3. 変更を保存し、アプリケーションを再始動します。

    構成を保管します。