Apigee Microgateway のモニタリング

Apigee Microgateway の監視について学ぶ。

Instana Node.js Collector は、バージョン以降のアピジー・マイクロゲートウェイ @instana/collector@1.89.0(別名 edgemicro :)に対応しています。

edgemicro start または edgemicro forever -a start を実行して Microgateway インスタンスを開始するときは、Instana Node.js コレクターでこのインスタンスを使用する際に必要な追加ステップがあります (このページで説明します)。 このシナリオでは通常、npm install -g edgemicro または yarn global add edgemicro を通じて、edgemicro パッケージが (アプリケーションの依存関係としてインストールされるのではなく) グローバルにインストールされます。

ただし、独自のカスタム・アプリケーションで microgateway-core を依存関係として使用する場合、このページの手順は不要です。 その代わりに、. @instana/collectorに対してはローカルインストール方法を使用してください。

edgemicro を次のように使用して @instana/collector

通常の Node.js アプリケーションでは、コードベースのメインエントリファイルに次の行を追加することで、 Instana Node.js コレクタを有効にします:

require('@instana/collector')();
 

Apigee Microgateway をグローバルに edgemicro インストールし、 edgemicro コマンドラインインターフェースを使用して起動する場合、この行を追加するためのカスタムコードは必要ありません。

このシナリオでは、Instana コレクター・パッケージから、既存の edgemicro インストール済み環境を静的にインスツルメントして、Instana に対応できるようにする実行可能プログラムが提供されます。

監視対象の edgemicro インスタンスを実行しているマシン上で、この設定を行う必要があります。 コンテナ内で edgemicro 実行している場合は、そのコンテナ内で以下の手順を実行してください。 そのマシンまたはコンテナにパッケージ edgemicro をインストールした後、一度だけ実行すればよく、 edgemicro起動するたびに実行する必要はありません。 以下の手順で、 Instanaedgemicro の監視およびトレースのための環境を整えます:

  • Instana Node.js コレクターを、インストール edgemicro 先と同じマシンまたは同じコンテナ内にグローバルにインストールしてください。 コレクターが、インストール edgemicro 環境からアクセス可能なファイルシステム上にインストールされていることを確認してください。
  • @instana/collector がインストールされたら、Instana に対応するように edgemicro インストール済み環境の準備を行います。 以下のコマンドを実行します。
    instana-instrument-edgemicro-cli
     
  • この実行可能プログラムは @instana/collector から提供され、パッケージをグローバルにインストールしたときにパスに含まれている必要があります。 グローバルにインストールされた npm パッケージの実行可能プログラムを検索するようにシェルがセットアップされていない場合は、フォールバックして $(npm root -g)/../../bin/instana-instrument-edgemicro-cli を実行することもできます。
  • このコマンドは、完了時に印刷する必要があります。
    Done: The edgemicro module has been statically instrumented for Instana tracing and metrics collection.
     

注:この手順(特に、instana-instrument-edgemicro-cliの呼び出し)は、edgemicroが再インストールされるか、新しいバージョンに更新されるときに繰り返す必要があります。 同じ edgemicro インストール済み環境に対して複数回実行しても、特に問題はありません。 この実行可能プログラムは、インストール済みシステムが既にインスツルメントされていることを認識でき、必要に応じて既存のインスツルメンテーションを更新します。 パッケージ @instana/collector の場所が変更されたが、それがパッケージの新しいバージョンにインプレースで更新されるタイミングではない場合にも、この手順を繰り返す必要があります。

高度な使用法

この実行可能プログラムは、グローバルにインストールされた edgemicro のインストール済み環境を検出できるため、通常は引数を必要としません。 ただし、オプションで edgegateway (および @instana/collector) の場所を引数として指定できます。

instana-instrument-edgemicro-cli [edgemicro_path [instana-collector-path]]
 

例:

# let Instana figure out the paths
instana-instrument-edgemicro-cli
 
# specify the edgemicro path
instana-instrument-edgemicro-cli /path/to/edgemicro
 
# also specify the @instana/collector path`
instana-instrument-edgemicro-cli /path/to/edgemicro /path/to/@instana/collector
 

edgemicro パッケージがインストールされている場所を検出するには、以下のようにします。

  • コマンド npm root -g を実行して、グローバル node_modules フォルダーの場所を見つけます。 例えば /usr/local/lib/node_modules と出力されるとします。 edgemicro パッケージがグローバルにインストールされている場合、このパッケージはディレクトリー /usr/local/lib/node_modules/edgemicro に存在します。このディレクトリーが、探しているインストール先です。
  • また、コマンド・ラインで edgemicro コマンドを使用するときに、実際に使用される実行可能ファイルを探すには、ls -l $(which edgemicro) を実行します。 出力は以下のようになります。
    ls -l $(which edgemicro)
     
       lrwxrwxrwx 1 user group 01 Jan 19 01:23 /usr/local/bin/edgemicro -> ../lib/node_modules/edgemicro/cli/edgemicro
     
  • これにより、/usr/local/lib/node_modules/edgemicro にインストールされている edgemicro パッケージが、edgemicro コマンドの使用時に使用されるパッケージであることが分かります。

予期しない Instana ログ出力が表示されました。どうしてですか?

このインスツルメンテーションの副次作用として、他のedgemicroコマンド(例:edgemicro stopedgemicro reloadedgemicro versionなど)の実行時にも、@instana/collectorからのログ出力が表示される場合があります。 これは予期されたものであり、無視しても問題ありません。