監視用アプリをインストルメント化する

完了

基本的なレベルでは、"インストルメント化" は、単純にアプリケーションでテレメトリをキャプチャできるようにすることです。 アプリケーションをインストルメント化する方法には、次の 2 つがあります。

  • 自動インストルメンテーション (autoinstrumentation)
  • 手動インストルメンテーション

自動インストルメンテーションは、アプリケーションのコードに触れることのない、構成を通じたテレメトリ収集を可能にします。 便利ですが、構成が少なくなる傾向があります。 また、すべての言語で使用できるわけではありません。 「自動インストルメンテーションでサポートされている環境と言語」を参照してください。 自動インストルメンテーションを利用できる場合、これは Azure Monitor Application Insights を有効にする最も簡単な方法です。

手動インストルメンテーションは、Application Insights または OpenTelemetry API に対するコーディングです。 ユーザーのコンテキストでは、これは通常、アプリケーションで言語固有の SDK をインストールすることを指します。 つまり、最新バージョンのパッケージへの更新を自分で管理する必要があります。 自動インストルメンテーションで既定ではキャプチャされないカスタム依存関係呼び出しや API 呼び出しを作成する必要がある場合は、このオプションを使用できます。 手動インストルメンテーションには、次の 2 つのオプションがあります。

Application Insights SDK を使用して有効にする

Application Insights SDK は、次の状況でのみインストールする必要があります。

  • カスタム イベントとメトリックが必要
  • テレメトリのフローを制御する必要がある
  • 自動インストルメンテーションは使用できません (通常は、言語またはプラットフォームの制限が原因)

SDK を使用するには、アプリに小さなインストルメンテーション パッケージをインストールし、Web ページ内で Web アプリ、バックグラウンド コンポーネント、JavaScript をインストルメント化します。 アプリとそのコンポーネントを Azure でホストする必要はありません。 インストルメンテーションを使用すると、アプリが監視され、一意のトークンを使用してテレメトリ データが Application Insights リソースに転送されます。

SDK のバージョンと名前の一覧は、GitHub でホストされています。 詳しくは、「SDK バージョン」をご覧ください。

OpenTelemetry 経由での有効化

Microsoft は、以前人気のあった 2 つのオープンソース テレメトリ プロジェクト OpenCensusOpenTracing のプロジェクト利害関係者と連携しました。 一緒に、1 つのプロジェクトである OpenTelemetry の作成を支援しました。 OpenTelemetry は、Cloud Native Computing Foundation (CNCF)内 にあり、すべての主要なクラウド ベンダーと Application Performance Management (APM) ベンダーがこのプロジェクトにコントリビュートしています。 Microsoft は、CNCF プラチナムメンバーです。

Application Insights のレガシ用語のいくつかは、業界が OpenTelemetry に集中するので紛らわしくなっています。 これらの違いを次の表に示します。 Application Insights の用語は OpenTelemetry の用語によって置き換えられます。

Application Insights OpenTelemetry
自動コレクター インストルメンテーション ライブラリ
チャネル エクスポーター
コード不要/エージェント ベース 自動インストルメンテーション
トレース ログ
Requests サーバー スパン
依存関係 その他のスパンの種類 (クライアント、内部など)
操作 ID トレース ID
ID または操作の親 ID スパン ID