Application Insights Connector 管理ソリューション (非推奨)

Application Insights シンボル

Note

リソース間のクエリのサポートにより、Application Insights Connector 管理ソリューションはもはや必要なくなりました。 その機能は非推奨になり、2019 年 1 月 15 日に Azure 商用クラウドで正式に非推奨となった OMS ポータルと共に、Azure Marketplace から削除されています。 Azure US Government クラウドでは 2019 年 3 月 30 日に廃止されます。

既存の接続は 2019 年 6 月 30日まで引き続き機能します。 OMS ポータルの廃止により、ポータルから既存の接続を構成および削除する方法がなくなります。 PowerShell を使用して既存の接続を削除するスクリプトについては、後の「PowerShell でコネクタを削除する」をご覧ください。

複数のアプリケーションに対する Application Insights ログ データのクエリを実行する方法については、「Azure Monitor で複数の Application Insights リソースを統合する」をご覧ください。 OMS ポータルの廃止について詳しくは、「OMS ポータルの Azure への移行」をご覧ください。

Application Insights Connector ソリューションを使用すると、Application Insights でアプリを監視しているときにパフォーマンスに関する問題を診断し、ユーザーがアプリで何を行っているかを理解することができます。 Log Analytics でも Application Insights で開発者に表示されるものと同じアプリケーション テレメトリのビューを使用できます。 しかし、Application Insights アプリを Log Analytics と統合すると、運用データとアプリケーション データを 1 か所にまとめることによってアプリケーションの可視性が向上します。 同じビューの表示は、アプリ開発者との共同作業を支援します。 共通のビューによって、アプリケーションの問題とプラットフォームの問題の両方を検出して解決するための時間を短縮できます。

このソリューションを使用して、次の操作を実行できます。

  • 複数の Azure サブスクリプションに属している場合でも、すべての Application Insights アプリを 1 か所に表示する
  • インフラストラクチャ データとアプリケーション データを相互に関連付ける
  • ログ検索でパースペクティブを使用してアプリケーション データをグラフ化する
  • Azure Portal で、Log Analytics データから Application Insights アプリにピボットする

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

接続先ソース

他のほとんどの Log Analytics ソリューションとは異なり、Application Insights Connector 用のデータはエージェントによって収集されません。 ソリューションで使用されるデータはすべて、Azure から直接収集されます。

接続先ソース サポートされています 説明
Windows エージェント いいえ ソリューションでは、Windows エージェントの情報は収集しません。
Linux エージェント いいえ ソリューションでは、Linux エージェントの情報は収集しません。
SCOM 管理グループ いいえ ソリューションでは、接続された SCOM 管理グループ内のエージェントの情報は収集しません。
Azure Storage アカウント いいえ ソリューションでは、Azure Storage の情報は収集しません。

前提条件

  • Application Insights Connector 情報にアクセスするには、Azure サブスクリプションが必要です。
  • 少なくとも 1 つの Application Insights リソースが構成済みである必要があります。
  • Application Insights リソースの所有者または共同作成者である必要があります。

構成

  1. Azure Web Apps Analytics ソリューションを有効にします。Azure Marketplace から有効にするか、ソリューション ギャラリーからの Log Analytics ソリューションの追加に関するページで説明されているプロセスを使用して有効にしてください。
  2. Azure ポータルにアクセスします。 [すべてのサービス] を選択して、Application Insights を開きます。 次に、"Application Insights" を検索します。
  3. [サブスクリプション] で、Application Insights リソースを所有するサブスクリプションを選択し、 [名前] で、1 つまたは複数のアプリケーションを選択します。
  4. [保存] をクリックします。

約 30 分でデータが使用可能となり、次の図のように、[Application Insights] タイルがデータで更新されます。

[Application Insights] タイル

その他の留意点:

管理パック

このソリューションでは、接続されている管理グループに管理パックがインストールされることはありません。

ソリューションの使用

次のセクションで、Application Insights ダッシュボードに表示されるセクションを使用して、アプリからのデータの表示と操作を行う方法について説明します。

Application Insights Connector 情報を表示する

[Application Insights] タイルをクリックします。Application Insights ダッシュボードが開いて、次のセクションが表示されます。

アプリケーション、データ ボリューム、および可用性のセクションを表示する [Application Insights] ダッシュボードのスクリーンショット。

サーバー要求、障害、および例外のセクションを表示する [Application Insights] ダッシュボードのスクリーンショット。

ダッシュボードには、次の表に示すセクションが含まれます。 それぞれのセクションには、特定のスコープと時間範囲について、そのセクションの基準に該当する項目が最大 10 個表示されます。 セクションの一番下にある [すべて表示] をクリックするかセクション ヘッダーをクリックすると、すべてのレコードを返すログ検索を実行できます。

説明
アプリケーション: アプリケーションの数 アプリケーション リソース内のアプリケーションの数を示します。 アプリケーションの名前と各アプリケーションのレコードの数も示されます。 数値をクリックすると、ログ検索 (ApplicationInsights | summarize AggregatedValue = sum(SampledCount) by ApplicationName) が実行されます。

アプリケーション名をクリックすると、アプリケーションのログ検索が実行され、ホストごとのアプリケーションのレコード数、テレメトリの種類別のレコード数、および種類別のすべてのデータが表示されます (各データは最終日に基づきます)。
データ ボリューム: データを送信中のホスト データを送信しているコンピューター ホストの数を示します。 コンピューター ホストと各ホストのレコード数も示されます。 数値をクリックすると、ログ検索 (ApplicationInsights | summarize AggregatedValue = sum(SampledCount) by Host) が実行されます。

コンピューター名をクリックすると、ホストのログ検索が実行され、ホストごとのアプリケーションのレコード数、テレメトリの種類別のレコード数、および種類別のすべてのデータが表示されます (各データは最終日に基づきます)。
可用性: Web テストの結果 Web テストの結果 (合格または不合格) を示すドーナツ グラフを表示します。 グラフをクリックすると、ログ検索 (ApplicationInsights | where TelemetryType == "Availability" | summarize AggregatedValue = sum(SampledCount) by AvailabilityResult) が実行されます。

結果は、すべてのテストの合格数と不合格数を示します。 直前の 1 分間にトラフィックが発生した Web Apps がすべて表示されます。 アプリケーション名をクリックすると、不合格だった Web テストの詳細を示すログ検索が表示されます。
サーバー要求: 1 時間あたりの要求の数 さまざまなアプリケーションの 1 時間あたりのサーバー要求の数を折れ線グラフで示します。 グラフ内の線上にポインターを置くと、ある時点での要求の受信数が多い上位 3 つのアプリケーションが表示されます。 要求を受信しているアプリケーションの一覧と、選択した期間中の要求の数も示されます。

グラフをクリックすると、ログ検索 (ApplicationInsights | where TelemetryType == "Request" | summarize AggregatedValue = sum(SampledCount) by ApplicationName, bin(TimeGenerated, 1h)) が実行され、さまざまなアプリケーションの 1 時間あたりのサーバー要求の数を示す詳細な折れ線グラフが表示されます。

一覧のアプリケーションをクリックすると、ログ検索 (ApplicationInsights | where ApplicationName == "yourapplicationname" and TelemetryType == "Request" and iff(isnotnull(toint(RequestSuccess)), RequestSuccess == false, RequestSuccess == "false") == true) が実行され、要求の一覧、時間を追った要求数のグラフ、要求の実行時間別の要求数のグラフ、および要求応答コードの一覧が表示されます。
失敗: 1 時間あたりの失敗した要求数 1 時間あたりの失敗したアプリケーション要求の数を折れ線グラフで示します。 グラフ内の線上にポインターを置くと、ある時点での失敗した要求の数が多い上位 3 つのアプリケーションが表示されます。 アプリケーションと各アプリケーションの失敗した要求の数の一覧も表示されます。 グラフをクリックすると、ログ検索 (ApplicationInsights | where TelemetryType == "Request" and iff(isnotnull(toint(RequestSuccess)), RequestSuccess == false, RequestSuccess == "false") == true | summarize AggregatedValue = sum(SampledCount) by ApplicationName, bin(TimeGenerated, 1h)) が実行され、失敗したアプリケーション要求の数を示す詳細な折れ線グラフが表示されます。

一覧の項目をクリックすると、ログ検索 (ApplicationInsights | where ApplicationName == "yourapplicationname" and TelemetryType == "Request" and iff(isnotnull(toint(RequestSuccess)), RequestSuccess == false, RequestSuccess == "false") == true) が実行され、失敗した要求の数、時間を追った失敗要求数のグラフ、要求の実行時間別の失敗要求数のグラフ、および失敗した要求の応答コードの一覧が表示されます。
例外: 1 時間あたりの例外の数 1 時間あたりの例外の数を示す折れ線グラフを表示します。 グラフ内の線上にポインターを置くと、ある時点での例外の数が多い上位 3 つのアプリケーションが表示されます。 アプリケーションと各アプリケーションの例外の数の一覧も表示されます。 グラフをクリックすると、ログ検索 (ApplicationInsights | where TelemetryType == "Exception" | summarize AggregatedValue = sum(SampledCount) by ApplicationName, bin(TimeGenerated, 1h)) が実行され、例外の数を示す詳細な折れ線グラフが表示されます。

一覧の項目をクリックすると、ログ検索 (ApplicationInsights | where ApplicationName == "yourapplicationname" and TelemetryType == "Exception") が実行され、例外の一覧、時間を追った例外のグラフ、失敗した要求の数のグラフ、および例外の種類別の一覧が表示されます。

ダッシュボードのいずれかの項目をクリックすると、検索に Application Insights のパースペクティブが表示されます。 パースペクティブは、選択されたテレメトリの種類に基づく拡張グラフを提供します。 そのため、グラフ化されるコンテンツは、テレメトリの種類に応じて変化します。

[アプリケーション] セクション内の任意の場所をクリックすると、既定のアプリケーション パースペクティブが表示されます。

Application Insights のアプリケーション パースペクティブ

このパースペクティブは、選択されたアプリケーションの概要を示します。

[可用性] セクションには複数のパースペクティブ ビューが表示されるため、Web テストの結果と、関連する失敗した要求を確認できます。

Application Insights の可用性パースペクティブ

[サーバー要求] セクションまたは [失敗] セクション内の任意の場所をクリックすると、パースペクティブ コンポーネントが変わり、要求に関連する視覚化が表示されます。

Application Insights の [失敗] セクション

[例外] セクション内の任意の場所をクリックすると、例外に合わせた視覚化が表示されます。

Application Insights の [例外] セクション

Application Insights Connector ダッシュボードで何かをクリックしているかどうかに関係なく、 [検索] ページでは、Application Insights データを返すすべてのクエリで Application Insights パースペクティブが表示されます。 たとえば、Application Insights データを表示する場合、*クエリでも、次の図のように、パースペクティブ タブが表示されます。

Application Insights

パースペクティブ コンポーネントは、検索クエリに応じて更新されます。 つまり、結果を任意の検索フィールドを使用してフィルター処理することで、以下のデータを表示することができます。

  • すべてのアプリケーション
  • 1 つの選択したアプリケーション
  • アプリケーションのグループ

Azure ポータルでアプリにピボットする

[Application Insights Connector] セクションは、"Azure portal を使用しているときに"、選択した Application Insights アプリにピボットできるように設計されています。 このソリューションを高度な監視プラットフォームとして使用して、アプリのトラブルシューティングを行うことができます。 接続されているアプリケーションのいずれかで潜在的な問題があることを確認したら、Log Analytics 検索で問題をドリルダウンするか、Application Insights アプリに直接ピボットすることができます。

ピボットするには、各行の最後に表示される省略記号 ( ) をクリックし、 [Application Insights で開く] を選択します。

Note

[Application Insights で開く] は Azure ポータルでは使用できません。

Application Insights で開く

サンプリング補正データ

Application Insights では、" サンプリング補正 " によって、テレメトリのトラフィックを削減しています。 Application Insights アプリでサンプリングを有効にすると、Application Insights と Log Analytics の両方に格納されるエントリの数が減少します。 データの整合性は Application Insights Connector ページとパースペクティブで保持されますが、カスタム クエリでは、サンプリング データを手動で補正する必要があります。

ログ検索クエリでのサンプリング補正の例を次に示します。

ApplicationInsights | summarize AggregatedValue = sum(SampledCount) by TelemetryType

SampledCount フィールドはすべてのエントリに存在し、エントリが表すデータ ポイントの数を示します。 Application Insights アプリのサンプリングを有効にした場合、SampledCount は 1 より大きくなります。 アプリケーションが生成するエントリの実際の数をカウントするには、SampledCount フィールドを合計します。

サンプリングは、アプリケーションが生成するエントリの総数のみに影響します。 RequestDurationAvailabilityDuration などのメトリック フィールドは、表わされているエントリの平均値を示すため、これらのフィールドのサンプリングは補正する必要がありません。

入力データ

ソリューションは、接続されている Application Insights アプリから次のテレメトリの種類のデータを受信します。

  • 可用性
  • 例外
  • Requests
  • ページ ビュー: ワークスペースでページ ビューを受信するには、その情報を収集するようにアプリを構成する必要があります。 詳細については、「ページ ビュー」を参照してください。
  • カスタム イベント: ワークスペースでページ ビューを受信するには、その情報を収集するようにアプリを構成する必要があります。 詳細については、「TrackEvent」を参照してください。

データは、使用可能になると、Log Analytics によって Application Insights から受信されます。

出力データ

入力データの種類ごとに、"種類" が "ApplicationInsights" であるレコードが作成されます。 ApplicationInsights レコードには、次のセクションに示すプロパティがあります。

一般的なフィールド

プロパティ 説明
Type ApplicationInsights
ClientIP
TimeGenerated レコードの時刻
ApplicationId Application Insights アプリのインストルメンテーション キー
ApplicationName Application Insights アプリの名前
RoleInstance サーバー ホストの ID
DeviceType クライアント デバイス
ScreenResolution
Continent 要求元の大陸
Country 要求元の国や地域
Province 要求元の都道府県またはロケール
City 要求元の市町村
isSynthetic 要求がユーザーによって作成されたか、自動化された方法で作成されたかを示します。 true = 自動化された方法、false = ユーザーが生成
SamplingRate ポータルに送信される、SDK によって生成されたテレメトリの割合。 範囲 0.0 ~ 100.0。
SampledCount 100/(SamplingRate)。 例: 4 => 25%
IsAuthenticated true または false
OperationID 同じ操作 ID を持つ項目は、関連項目としてポータルに表示されます。 通常は要求 ID です
ParentOperationID 親操作の ID
OperationName
SessionId 要求が作成されたセッションを一意に識別する GUID
SourceSystem ApplicationInsights

可用性に固有のフィールド

プロパティ 説明
TelemetryType 可用性
AvailabilityTestName Web テストの名前
AvailabilityRunLocation Http 要求の地理的ソース
AvailabilityResult Web テストの合格結果を示します
AvailabilityMessage Web テストに添付されたメッセージ
AvailabilityCount 100/(サンプリング レート)。 例: 4 => 25%
DataSizeMetricValue 1.0 または 0.0
DataSizeMetricCount 100/(サンプリング レート)。 例: 4 => 25%
AvailabilityDuration Web テスト継続時間 (ミリ秒単位)
AvailabilityDurationCount 100/(サンプリング レート)。 例: 4 => 25%
AvailabilityValue
AvailabilityMetricCount
AvailabilityTestId Web テストの一意の GUID
AvailabilityTimestamp 可用性テストの正確なタイムスタンプ
AvailabilityDurationMin サンプリング レコードでは、このフィールドは、表されるデータ ポイントの最小の Web テスト継続時間 (ミリ秒単位) を示します
AvailabilityDurationMax サンプリング レコードでは、このフィールドは、表されるデータ ポイントの最大の Web テスト継続時間 (ミリ秒単位) を示します
AvailabilityDurationStdDev サンプリング レコードでは、このフィールドは、表されるデータ ポイントのすべての Web テスト継続時間 (ミリ秒単位) の標準偏差を示します
AvailabilityMin
AvailabilityMax
AvailabilityStdDev  

例外に固有のフィールド

Type ApplicationInsights
TelemetryType 例外
ExceptionType 例外の種類
ExceptionMethod 例外を作成するメソッド
ExceptionAssembly アセンブリには、フレームワーク、バージョン、および公開キー トークンが含まれます
ExceptionGroup 例外の種類
ExceptionHandledAt 例外を処理したレベルを示します
ExceptionCount 100/(サンプリング レート)。 例: 4 => 25%
ExceptionMessage 例外のメッセージ
ExceptionStack 例外の完全なスタック
ExceptionHasStack 例外にスタックがある場合は true

要求に固有のフィールド

プロパティ 説明
Type ApplicationInsights
TelemetryType Request
ResponseCode クライアントに送信された HTTP 応答
RequestSuccess 成功または失敗を示します。 true または false
RequestID 要求を一意に識別する ID
RequestName GET/POST + URL ベース
RequestDuration 要求の実行時間の時間 (秒単位)
URL ホストを含まない要求の URL
Host Web サーバー ホスト
URLBase 要求の完全な URL
ApplicationProtocol アプリケーションで使用されるプロトコルの種類
RequestCount 100/(サンプリング レート)。 例: 4 => 25%
RequestDurationCount 100/(サンプリング レート)。 例: 4 => 25%
RequestDurationMin サンプリング レコードでは、このフィールドは、最小の要求の実行時間 (ミリ秒単位) を示します
RequestDurationMax サンプリング レコードでは、このフィールドは、最大の要求の実行時間 (ミリ秒単位) を示します
RequestDurationStdDev サンプリング レコードでは、このフィールドは、表されるデータ ポイントのすべての要求の実行時間 (ミリ秒単位) の標準偏差を示します

サンプル ログ検索

このソリューションには、ダッシュボードに表示されるサンプル ログ検索のセットはありません。 ただし、サンプル ログ検索クエリとその説明が「Application Insights Connector 情報を表示する」セクションに示されています。

PowerShell でコネクタを削除する

OMS ポータルの廃止により、ポータルから既存の接続を構成および削除する方法がなくなります。 次の PowerShell スクリプトを使用して、既存の接続を削除することができます。 この操作を実行するには、ワークスペースの所有者または共同作成者であり、Application Insights リソースの閲覧者である必要があります。

$Subscription_app = "App Subscription Name"
$ResourceGroup_app = "App ResourceGroup"
$Application = "Application Name"
$Subscription_workspace = "Workspace Subscription Name"
$ResourceGroup_workspace = "Workspace ResourceGroup"
$Workspace = "Workspace Name"

Connect-AzAccount
Set-AzContext -SubscriptionId $Subscription_app
$AIApp = Get-AzApplicationInsights -ResourceGroupName $ResourceGroup_app -Name $Application 
Set-AzContext -SubscriptionId $Subscription_workspace
Remove-AzOperationalInsightsDataSource -WorkspaceName $Workspace -ResourceGroupName $ResourceGroup_workspace -Name $AIApp.Id

REST API 呼び出しを行う次の PowerShell スクリプトを使用して、アプリケーションの一覧を取得することができます。

Connect-AzAccount
$Tenant = "TenantId"
$Subscription_workspace = "Workspace Subscription Name"
$ResourceGroup_workspace = "Workspace ResourceGroup"
$Workspace = "Workspace Name"
$AccessToken = "AAD Authentication Token" 

Set-AzContext -SubscriptionId $Subscription_workspace
$LAWorkspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $ResourceGroup_workspace -Name $Workspace

$Headers = @{
    "Authorization" = "Bearer $($AccessToken)"
    "x-ms-client-tenant-id" = $Tenant
}

$Connections = Invoke-RestMethod -Method "GET" -Uri "https://management.azure.com$($LAWorkspace.ResourceId)/dataSources/?%24filter=kind%20eq%20'ApplicationInsights'&api-version=2015-11-01-preview" -Headers $Headers
$ConnectionsJson = $Connections | ConvertTo-Json

このスクリプトでは、Azure Active Directory に対する認証のためにベアラー認証トークンが必要です。 このトークンを取得する方法の 1 つでは、REST API のドキュメント サイトの記事を使用します。 [試してみる] をクリックして、お使いの Azure サブスクリプションにログインします。 次の図のように、 [Request Preview](要求プレビュー) からベアラー トークンをコピーできます。

ベアラー トークン

また、ログ クエリを使用してアプリケーションの一覧を取得することもできます。

ApplicationInsights | summarize by ApplicationName

次のステップ

  • ログ検索を使用して Application Insights アプリの詳細情報を表示します。