次の方法で共有


Application Insights リソースの作成と構成

重要

この記事は、 ワークスペースベースの Application Insights リソースに適用されます。 従来の Application Insights リソースは廃止されました。 新しい機能を利用するために、ワークスペースベースの Application Insights に移行します。

Application Insights はLog Analytics と統合され、テレメトリを共通の Log Analytics ワークスペースに送信します。 このセットアップにより、Log Analytics 機能へのフル アクセスが提供され、ログが 1 か所に統合され、 Azure ロールベースの 統一されたアクセス制御が可能になり、アプリ間/ワークスペース クエリの必要がなくなります。

強化された機能は次のとおりです。

この記事では、Application Insights リソースを作成して構成する方法について説明します。 Application Insights リソース自体と共に、 日次 上限や 価格プランの設定など、さまざまな構成を追加できます。 また、Azure Resource Manager を使用して、可用性テストの作成、メトリック アラートの設定、プロセスの自動化を行うこともできます。

注意

ワークスペース ベースの Application Insights リソースのデータ インジェストとリテンション期間は、データが保管されている Log Analytics ワークスペースを通じて課金されます。 請求の詳細については、Azure Monitor ログの価格の詳細を参照してください。

[前提条件]

  • アクティブな Azure サブスクリプション。
  • リソースを作成するために必要なアクセス許可。

その他の要件

追加の要件はありません。

Application Insights リソースの作成

  1. Azure portal にサインインします。
  2. [リソースの作成] を選択します。
  3. [ 監視] と [診断] カテゴリを開き、[ Application Insights] を選択します。
  4. すべての関連情報を入力し、確認のうえ、Application Insights リソースを作成します

Application Insights リソースを示すスクリーンショット。

注意

リソースの作成時に既存の Log Analytics ワークスペースに接続しない場合は、Application Insights リソースと共に新しい Log Analytics リソースが自動的に作成されます。

リソースを作成すると、対応するワークスペース情報が Application Insights の [概要 ] ウィンドウに表示されます。

ワークスペース名を示すスクリーンショット。

青いリンク テキストを選び、関連する Log Analytics ワークスペースに移動します。ここでは、新しい統合ワークスペース クエリ環境を利用できます。

注意

Application Insights クラシックのリソース クエリ、ブック、ログ ベースのアラートについては、引き続き完全な下位互換性を提供します。 新しいワークスペース ベースのテーブル構造またはスキーマのクエリまたは表示を行うには、まず Log Analytics ワークスペースに移動する必要があります。 従来の Application Insights クエリ エクスペリエンスにアクセスするには、[Application Insights] ペインの [ログ (Analytics)] を選びます。

監視の構成

Application Insights リソースを作成したら、監視を構成します。

接続文字列を取得する

接続文字列は、テレメトリーデータと関連付けたいリソースを識別します。 また、これを使用して、リソースでテレメトリの宛先として使用するエンドポイントを変更できます。 接続文字列をコピーし、アプリケーションのコードまたは環境変数に追加する必要があります。

Application Insights リソースの接続文字列を取得するには:

  1. Azure portal に Application Insights のリソースを開きます。
  2. [要点] セクションの [概要] ウィンドウで、接続文字列を探します。
  3. 接続文字列をポイントすると、アイコンが表示され、クリップボードにコピーできます。

OpenTelemetry を使用したアプリケーションの監視

OpenTelemetry を使用してアプリケーションを監視するには、適切な Azure Monitor OpenTelemetry Distro をインストールし、接続文字列を新しく作成したリソースにポイントします。

OpenTelemetry を使用してアプリケーション監視を設定する方法については、言語に固有の次のドキュメントを参照してください。

注意

ブラウザーを対象とする Web アプリの場合は、 Application Insights JavaScript SDK を使用することをお勧めします。

自動インストルメンテーション

Azure FunctionsAzure App Service などの監視サービスの場合は、最初に Application Insights リソースを作成してから、監視を有効にしたときにそれをポイントできます。 または、有効化プロセス中に新しい Application Insights リソースを作成することもできます。

Application Insights リソースを構成する

関連するワークスペースを変更する

Application Insights リソースを作成したら、関連付けられている Log Analytics ワークスペースを変更できます。

Application Insights リソースで、プロパティ>ワークスペースの変更>Log Analytics ワークスペースを選択します。

テレメトリのエクスポート

従来の連続エクスポート機能は、ワークスペース ベースのリソースではサポートされていません。 代わりに、 診断設定を使用します。

注意

診断設定のエクスポートにより、コストが増加する可能性があります。 詳細については、「Application Insights からのテレメトリのエクスポート」を参照してください。 この機能の価格情報については、「Azure Monitor の価格」ページを参照してください。 課金が開始される前に、通知が送信されます。 通知期間後もテレメトリ エクスポートを引き続き使用する場合は、該当する料金で課金されます。

Application Insights リソースで、 診断設定>診断設定の追加を選択します。

ストレージ アカウントにアーカイブするすべてのテーブルまたはテーブルのサブセットを選択できます。 イベント ハブにストリーミングすることもできます。

データ保有期間を設定する

Application Insights リソースのデータ保有期間は、関連付けられている Log Analytics ワークスペースで設定できます。

詳細については、「 Analytics テーブルの既定の対話型リテンション期間を構成する」を参照してください。

1 日の上限を設定する

Application Insights と基になる Log Analytics ワークスペースの両方に対して、日次上限を個別に設定する必要があります。 有効な日次上限は、2 つの設定の最小値です。

Azure portal で日次上限を設定する方法については、「 Log Analytics ワークスペースで日次上限を設定する」を参照してください。

料金プランを設定する

Application Insights リソースの価格プランは、関連付けられている Log Analytics ワークスペースで設定できます。 使用可能な価格プランの詳細については、「 Azure Monitor ログのコストの計算とオプション」を参照してください。

注意

Application Insights で予期しない料金や高コストが表示される場合は、このガイドが役立ちます。 テレメトリの量が多い、データ インジェストの急増、サンプリングが正しく構成されていないなどの一般的な原因について説明します。 コストの急増、テレメトリボリューム、サンプリングが機能しない、データ上限、高インジェスト、または予期しない課金に関連する問題をトラブルシューティングする場合に特に便利です。 開始するには、「 Application Insights での高いデータ インジェストのトラブルシューティング」を参照してください。

Azure portal で価格プランを設定する方法については、 Application Insights の課金に関するページを参照してください。

IP マスクを無効にする

既定では、Application Insights には IP アドレスは格納されません。 IP マスクを無効にする方法については、 位置情報と IP アドレスの処理に関するページを参照してください。

追加のリソースを作成する

可用性テストを作成する

Azure portal で可用性テストを作成する方法については、 Application Insights 可用性テストに関するページを参照してください。

メトリック アラートの追加

ヒント

各 Application Insights リソースには、すぐに使用できるメトリックが付属しています。 分離されたコンポーネントが同じ Application Insights リソースに報告している場合は、これらのメトリックでアラートを生成しても意味がない場合があります。

Azure portal でメトリック アラートを作成する方法については、「 チュートリアル: Azure リソースのメトリック アラートを作成する」を参照してください。

メトリック アラートの作成を自動化するには、「メトリック アラート テンプレート」に関する記事を参照してください。

追加で Application Insights リソースを作成する

デプロイする Application Insights リソースは何個必要ですか?

Web アプリケーションの次のバージョンを開発する際に、新しいバージョンの Application Insights テレメトリとリリース済みのバージョンのテレメトリが混在することがないように設定します。

混乱を避けるために、個別の接続文字列を使用して、異なる開発段階のテレメトリを個別の Application Insights リソースに送信します。

システムが Azure Cloud Services のインスタンスである場合は、個別の接続文字列を設定する別の方法があります。

単一の Application Insights リソースを使用するケース

以下の場合、単一の Application Insights リソースを使用します。

  • 一緒にデプロイされ、通常は同じチームによって開発および管理されるアプリケーションの DevOps/ITOps 管理を合理化する。
  • 既定ではダッシュボードで応答時間や失敗率などの主要業績評価指標を一元管理する。 必要に応じ、メトリック エクスプローラーでロール名ごとにセグメント化する。
  • アプリケーション コンポーネント間で異なる Azure ロールベースのアクセス制御を管理する必要がない場合。
  • 同じメトリック アラート条件、連続エクスポート、コンポーネント間の課金/クォータ管理で十分な場合。
  • 1 つのAPI キーがすべてのコンポーネントのデータに同様にアクセスしても問題なく、10 個の API キーがすべてのコンポーネントのニーズを満たす場合。
  • すべてのロールで同じスマート検出と作業項目の統合を設定することが適切な場合。

注意

複数の Application Insights リソースを統合する場合、統合後の新しい Application Insights リソースに既存のアプリケーション コンポーネントをさし向けることができます。 古いリソースに格納されているテレメトリは、新しいリソースに転送されません。 ビジネスを継続するのに十分なテレメトリが新しいリソースにある場合にのみ、古いリソースを削除するようにしてください。

その他の考慮事項

ポータル エクスペリエンスを有効化するには、カスタム コードを追加して、Cloud_RoleName 属性に意味のある値を割り当てます。 これらの値がないと、ポータル機能は機能しません。

Azure Service Fabric アプリケーションと従来のクラウド サービスについては、SDK が Azure ロール環境からこれらのサービスを読み取ることで、自動的に設定します。 他の種類のアプリの場合、通常は明示的に設定する必要があります。

ライブ メトリックは、ロール名ごとにデータを分割できません。

バージョンおよびリリースの追跡

アプリケーションの新しいバージョンを発行するときに、テレメトリを異なるビルドから分離できるようにする必要があります。 アプリケーション バージョン プロパティを設定して、検索メトリック エクスプローラーの結果をフィルター処理できます。

[Application Version](アプリケーション バージョン) プロパティを設定するには複数の方法があります。

  • オプション 1: バージョンを直接設定する

    アプリケーションの初期化コードに telemetryClient.Context.Component.Version = typeof(MyProject.MyClass).Assembly.GetName().Version; 行を追加します。

    すべての TelemetryClient インスタンスが一貫して設定されるようにするには、その行を テレメトリ初期化子でラップします。

  • オプション 2:BuildInfo.configでバージョンを設定する (ASP.NET のみ)

    Application Insights Web モジュールは、 BuildLabel ノードからバージョンを取得します。 このファイルをプロジェクトに追加し、ソリューション エクスプローラーで [Copy Always](常にコピーする) プロパティを設定します。

    <?xml version="1.0" encoding="utf-8"?>
    <DeploymentEvent xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/DeploymentEvent/2013/06">
      <ProjectName>AppVersionExpt</ProjectName>
      <Build type="MSBuild">
        <MSBuild>
          <BuildLabel kind="label">1.0.0.2</BuildLabel>
        </MSBuild>
      </Build>
    </DeploymentEvent>
    
    

    Microsoft ビルド エンジンで BuildInfo.config を自動的に生成します。 .csproj ファイルに次の行を追加します。

    <PropertyGroup>
      <GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>
      <IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
    </PropertyGroup>
    

    このステップにより、yourProjectName.BuildInfo.config という名前のファイルが生成されます。 これは発行プロセスで BuildInfo.config という名前に変更されます。

    Visual Studio でビルドすると、ビルド ラベルにはプレースホルダー (*AutoGen_...*) が含まれます。 Microsoft ビルド エンジンを使用してビルドすると、プレースホルダーに正しいバージョン番号が設定されます。

    Microsoft Build Engine でバージョン番号を生成できるようにするには、1.0.*AssemblyReference.cs のようにバージョンを設定します。

リリース注釈

Azure DevOps を使用する場合は、新しいバージョンをリリースするたびに、グラフに注釈マーカーを追加できます。

リソース作成プロセスを自動化する

リソースの作成プロセスは、 Azure Resource Manager で Bicep または JSON テンプレートを使用して自動化できます。 複数のリソースをまとめてパッケージ化して、1 つのデプロイで作成できます。 たとえば、可用性テスト、メトリック アラート、診断設定を使用して Application Insights リソースを作成し、テレメトリを Azure Storage アカウントに送信できます。

Azure portal でテンプレートを生成する

既存のリソースからテンプレートを生成できます。

Application Insights のみ

  1. Azure portal で Application Insights リソースに移動します。
  2. 左側のナビゲーション バーの [オートメーション] の下に一覧表示されているエクスポート テンプレートを開きます。
  3. (省略可能): 独自のパラメーターを使用するには、[パラメーターを 含める] をオフにします。
  4. テンプレート ファイルをダウンロードするか、Azure portal で直接デプロイします。

複数のリソース

  1. Application Insights リソースのリソース グループに移動します。
  2. [ 概要 ] ウィンドウで、テンプレートに含めるすべてのリソースをマークし、上部のナビゲーション バーで [ テンプレートのエクスポート ] を選択します。
  3. (省略可能): 独自のパラメーターを使用するには、[パラメーターを 含める] をオフにします。
  4. テンプレート ファイルをダウンロードするか、Azure portal で直接デプロイします。

テンプレートをゼロから作成する

ARM テンプレートを最初から作成する方法については、 ARM テンプレートのドキュメント を参照してください。このドキュメントには、 テンプレートの作成リソースの追加、パラメーターの 追加などのチュートリアルが含まれています。

Application Insights可用性テストメトリック アラート診断設定、およびその他のリソースで使用できるプロパティは、Azure リソースリファレンス ドキュメントの>> ノードにあります。

ヒント

このセクションでリンクされている各 Azure リソース リファレンス ドキュメント ページの下部にあるクイック スタート テンプレートを使用することもできます。 テンプレートの使用方法については、「 チュートリアル: Azure クイック スタート テンプレートを使用する」を参照してください。

よく寄せられる質問

このセクションでは、一般的な質問への回答を示します。

Application Insights リソースを新しいリージョンに移動するにはどうすればよいですか?

リージョン間で既存の Application Insights リソースを転送することはできず、履歴データは新しいリージョンに移行できません。 回避策には次のものが含まれます。

  • 目的のリージョンに新しい Application Insights リソースを作成する。
  • 元のリソース用の独自カスタマイズを新しいリソースで再作成します。
  • 新しいリージョンのリソースの接続文字列を使用してアプリケーションを更新します。
  • 新しい Application Insights リソースですべてが期待どおりに動作することを確認するためのテストを実施します。
  • 元の Application Insights リソースを保持または削除するのか決定します。 従来のリソースを削除すると、すべての履歴データが失われます。 リソースがワークスペース ベースの場合、データは Log Analytics に残るため、保持期間が切れるまで履歴データにアクセスできます。

新しいリージョンのリソースに対して、通常、手動で再作成または更新する必要がある独自のカスタマイズには、以下のものがありますが、これらに限定されません。

  • カスタム ダッシュボードとブックを再作成します。
  • カスタム ログまたはメトリック アラートのスコープを再作成または更新します。
  • 可用性アラートを再作成します。
  • ユーザーが新しいリソースにアクセスするために必要なカスタムの Azure ロールベースのアクセス制御設定を再作成します。
  • インジェスト サンプリング、データ保有、日次上限、およびカスタム メトリックの有効化を含む設定をレプリケートします。 これらの設定は、 [使用量と推定コスト] ペインで制御します。
  • リリース注釈ライブ メトリックと安全なコントロール チャネルなど、API キーに依存するすべての統合。 新しい API キーを生成し、関連する統合を更新する必要があります。
  • クラシック リソースの連続エクスポートを再構成する必要があります。
  • ワークスペースベースのリソースの診断設定を再構成する必要があります。

Azure Resource Manager のデプロイで providers('Microsoft.Insights', 'components').apiVersions[0] を使用できますか?

API バージョンの設定に、この方法を使用することは推奨されません。 最新バージョンは、破壊的変更が含まれる可能性があるプレビュー リリースを表す場合があります。 新しいプレビュー以外のリリースでも、API のバージョンは常に既存のテンプレートと下位互換性があるわけではありません。 場合によっては、API バージョンがすべてのサブスクリプションで使用できないことがあります。

次のステップ