Application Insights からのテレメトリのエクスポートExport telemetry from Application Insights

標準的なリテンション期間より長くテレメトリを残しておきたい、Want to keep your telemetry for longer than the standard retention period? または特別な方法でテレメトリを処理したい、Or process it in some specialized way? そのようなケースには、連続エクスポートが最適です。Continuous Export is ideal for this. Application Insights ポータルに表示されるイベントは、JSON 形式で Microsoft Azure のストレージにエクスポートできます。The events you see in the Application Insights portal can be exported to storage in Microsoft Azure in JSON format. そこからデータをダウンロードしたり、データを処理するためのコードを自由に記述したりできます。From there you can download your data and write whatever code you need to process it.

連続エクスポートを使用すると追加料金が発生する場合があります。Using Continuous Export may incur an additional charge. 価格モデルを確認してください。Check your pricing model.

連続エクスポートをセットアップする前に、次の代替手段を検討してください。Before you set up continuous export, there are some alternatives you might want to consider:

  • メトリック ブレードや検索ブレードの上部にある [エクスポート] ボタンを使用すると、テーブルやグラフを Excel のスプレッドシートに転送できます。The Export button at the top of a metrics or search blade lets you transfer tables and charts to an Excel spreadsheet.

  • Analytics にはテレメトリ用の強力なクエリ言語があります。Analytics provides a powerful query language for telemetry. 結果をエクスポートすることもできます。It can also export results.

  • Power BI でデータを探索する場合は、連続エクスポートを使用せずに実行できます。If you're looking to explore your data in Power BI, you can do that without using Continuous Export.
  • データ アクセス REST API を使用すると、テレメトリにプログラムでアクセスすることができます。The Data access REST API lets you access your telemetry programmatically.
  • PowerShell を使用して連続エクスポートの設定にアクセスすることもできます。You can also access setup continuous export via Powershell.

連続エクスポートによってストレージ (必要な期間の保持が可能) にコピーされたデータは、通常のリテンション期間が過ぎるまで引き続き Application Insights で使用できます。After Continuous Export copies your data to storage (where it can stay for as long as you like), it's still available in Application Insights for the usual retention period.

連続エクスポートを作成するCreate a Continuous Export

  1. アプリの Application Insights リソースで、[連続エクスポート] を開き、[追加] を選択します。In the Application Insights resource for your app, open Continuous Export and choose Add:

    下へスクロールし、[連続エクスポート] をクリックします

  2. テレメトリをエクスポートするデータ型を選択します。Choose the telemetry data types you want to export.

  3. データの保存先となる Azure ストレージ アカウントを作成または選択します。Create or select an Azure storage account where you want to store the data.

    警告

    既定では、ストレージの場所は、Application Insights のリソースと同じ地理的リージョンに設定されます。By default, the storage location will be set to the same geographical region as your Application Insights resource. 別のリージョンに保存する場合は、転送の料金が発生する可能性があります。If you store in a different region, you may incur transfer charges.

    [追加]、[エクスポート先]、[ストレージ アカウント] の順にクリックし、新しいストアを作成するかまたは既存のストアを使用するかを選択します。

  4. ストレージにコンテナーを作成するか、選択します。Create or select a container in the storage:

    [イベントの種類の選択] をクリックします

エクスポートが作成されると、処理が開始されます Once you've created your export, it starts going. エクスポートを作成した後に到着したデータのみが取得されます。You only get data that arrives after you create the export.

ストレージにデータが表示されるまで、約 1 時間の遅延が発生する可能性があります。There can be a delay of about an hour before data appears in the storage.

連続エクスポートを編集するにはTo edit continuous export

後でイベントの種類を変更する場合は、単にエクスポートを編集します。If you want to change the event types later, just edit the export:

[イベントの種類の選択] をクリックします

連続エクスポートを停止するにはTo stop continuous export

エクスポートを停止するには、[無効] をクリックします。To stop the export, click Disable. もう一度 [有効] をクリックすると、新しいデータでエクスポートが再開されます。When you click Enable again, the export will restart with new data. エクスポートが無効な場合、ポータルに到着したデータは取得されません。You won't get the data that arrived in the portal while export was disabled.

エクスポートを完全に停止するには、対象のエクスポートを削除します。To stop the export permanently, delete it. エクスポートを削除しても、ストレージのデータは削除されません。Doing so doesn't delete your data from storage.

エクスポートを追加または変更できないCan't add or change an export?

取得されるイベントWhat events do you get?

エクスポートされたデータは、お客様のアプリケーションから受け取った未加工のテレメトリですが、クライアントの IP アドレスから計算された位置データが追加されます。The exported data is the raw telemetry we receive from your application, except that we add location data which we calculate from the client IP address.

サンプリング によって破棄されたデータは、エクスポートされるデータに含まれません。Data that has been discarded by sampling is not included in the exported data.

他の計算メトリックは含まれません。Other calculated metrics are not included. たとえば、平均 CPU 使用率はエクスポートされませんが、平均の計算に使用された未加工のテレメトリはエクスポートされます。For example, we don't export average CPU utilization, but we do export the raw telemetry from which the average is computed.

データには、セットアップ済みのすべての可用性 Web テストの結果も含まれます。The data also includes the results of any availability web tests that you have set up.

注意

サンプリング。Sampling. アプリケーションで大量のデータを送信すると、サンプリング機能が動作して、生成されたテレメトリのごく一部だけが送信される可能性があります。If your application sends a lot of data, the sampling feature may operate and send only a fraction of the generated telemetry. サンプリングの詳細については、こちらを参照してください。Learn more about sampling.

データの確認Inspect the data

ポータルでストレージを直接検査することができます。You can inspect the storage directly in the portal. [参照] をクリックしてストレージ アカウントを選択し、[コンテナー] を開きます。Click Browse, select your storage account, and then open Containers.

Visual Studio で Azure ストレージを検査するには、[表示][Cloud Explorer] の順に開きます To inspect Azure storage in Visual Studio, open View, Cloud Explorer. (このメニュー コマンドがない場合は、Azure SDK をインストールする必要があります。[新しいプロジェクト] ダイアログを開き、[Visual C#]、[クラウド] の順に展開して、[Microsoft Azure SDK for .NET の取得] を選択します)。(If you don't have that menu command, you need to install the Azure SDK: Open the New Project dialog, expand Visual C#/Cloud and choose Get Microsoft Azure SDK for .NET.)

BLOB ストアを開くと、BLOB ファイルのセットを含むコンテナーが表示されます。When you open your blob store, you'll see a container with a set of blob files. 各ファイルの URI は、Application Insights のリソース名、そのインストルメンテーション キー、テレメトリの種類/日付/時刻から派生します The URI of each file derived from your Application Insights resource name, its instrumentation key, telemetry-type/date/time. (リソース名はすべて小文字になり、インストルメンテーション キーのダッシュは省略されます)。(The resource name is all lowercase, and the instrumentation key omits dashes.)

適切なツールで Blob ストアを調べます

日付と時刻は UTC 形式で表され、テレメトリが生成された時間ではなく、ストアに格納された日時を示します。The date and time are UTC and are when the telemetry was deposited in the store - not the time it was generated. そのため、データをダウンロードするコードを記述する場合は、直線的にデータ内を移動できます。So if you write code to download the data, it can move linearly through the data.

パスの形式を以下に示します。Here's the form of the path:

$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"

WhereWhere

  • blobCreationTimeUtc は、BLOB が内部ステージング ストレージで作成された日時です。blobCreationTimeUtc is time when blob was created in the internal staging storage
  • blobDeliveryTimeUtc は、BLOB がエクスポート先のストレージにコピーされた日時です。blobDeliveryTimeUtc is the time when blob is copied to the export destination storage

データ形式Data format

  • それぞれの Blob は、"\n" で区切られた複数の行を含むテキスト ファイルです。Each blob is a text file that contains multiple '\n'-separated rows. 約 30 秒の間に処理されたテレメトリが含まれています。It contains the telemetry processed over a time period of roughly half a minute.
  • 各行は、要求やページ表示などのテレメトリ データ ポイントを表します。Each row represents a telemetry data point such as a request or page view.
  • それぞれの行は、書式設定されていない JSON ドキュメントです。Each row is an unformatted JSON document. 詳細を確認する場合は、Visual Studio でファイルを開き、[編集]、[詳細]、[フォーマット ファイル] の順に選択します。If you want to sit and stare at it, open it in Visual Studio and choose Edit, Advanced, Format File:

適切なツールでテレメトリを表示します

時間の長さはティック単位で表記されます。10,000 ティックが 1 ミリ秒です。Time durations are in ticks, where 10 000 ticks = 1 ms. たとえば、次の値は、ブラウザーから要求を送信するのに 1 ミリ秒、要求を受信するのに 3 ミリ秒、ブラウザーでページを処理するのに 1.8 秒の時間がかかったことを示しています。For example, these values show a time of 1 ms to send a request from the browser, 3 ms to receive it, and 1.8 s to process the page in the browser:

"sendRequest": {"value": 10000.0},
"receiveRequest": {"value": 30000.0},
"clientProcess": {"value": 17970000.0}

データ モデルについては、プロパティの型と値のリファレンスで詳しく説明されています。Detailed data model reference for the property types and values.

データの処理Processing the data

小規模な処理では、データを分解してスプレッドシートに読み込んだ後で他の処理を実行するコードを記述できます。On a small scale, you can write some code to pull apart your data, read it into a spreadsheet, and so on. 例: For example:

private IEnumerable<T> DeserializeMany<T>(string folderName)
{
  var files = Directory.EnumerateFiles(folderName, "*.blob", SearchOption.AllDirectories);
  foreach (var file in files)
  {
     using (var fileReader = File.OpenText(file))
     {
        string fileContent = fileReader.ReadToEnd();
        IEnumerable<string> entities = fileContent.Split('\n').Where(s => !string.IsNullOrWhiteSpace(s));
        foreach (var entity in entities)
        {
            yield return JsonConvert.DeserializeObject<T>(entity);
        }
     }
  }
}

大規模なコード サンプルについては、「worker ロールの使用」をご覧ください。For a larger code sample, see using a worker role.

古いデータの削除Delete your old data

必要に応じて古いデータを削除するなどしてストレージ容量を管理する責任があることに注意してください。Please note that you are responsible for managing your storage capacity and deleting the old data if necessary.

ストレージ キーを再生成する場合If you regenerate your storage key...

ストレージのキーを変更した場合、連続エクスポートは動作しなくなります。If you change the key to your storage, continuous export will stop working. Azure アカウントに通知が表示されます。You'll see a notification in your Azure account.

[連続エクスポート] ブレードを開き、エクスポートを編集します。Open the Continuous Export blade and edit your export. エクスポート先の編集画面では、同じストレージを選択したままにします。Edit the Export Destination, but just leave the same storage selected. [OK] をクリックして確定します。Click OK to confirm.

連続エクスポートを編集し、3 つのエクスポート先を開いた後閉じます。

連続エクスポートが再開されます。The continuous export will restart.

エクスポート サンプルExport samples

大規模な処理の場合は、 HDInsight (クラウドの Hadoop クラスター) を検討してください。On larger scales, consider HDInsight - Hadoop clusters in the cloud. HDInsight はビッグ データの管理と分析を行うためのさまざまなテクノロジを備えており、Application Insights からエクスポートされたデータの処理に使用できます。HDInsight provides a variety of technologies for managing and analyzing big data, and you could use it to process data that has been exported from Application Insights.

Q & AQ & A

  • グラフを 1 回だけダウンロードしたいのですが。But all I want is a one-time download of a chart.

    はい、できます。Yes, you can do that. ブレードの上部にある、 [データのエクスポート] をクリックします。At the top of the blade, click Export Data.

  • エクスポートを設定したのにストアにデータがありません。I set up an export, but there's no data in my store.

    エクスポートを設定した時点以降に Application Insights がアプリからテレメトリを受信していますか。Did Application Insights receive any telemetry from your app since you set up the export? 取得されるのは新しいデータのみです。You'll only receive new data.

  • エクスポートを設定しようとしたところ、アクセスが拒否されました。I tried to set up an export, but was denied access

    アカウントが組織によって所有されている場合は、所有者または共同作成者グループのメンバーである必要があります。If the account is owned by your organization, you have to be a member of the owners or contributors groups.

  • 自分のオンプレミスのストアに直接エクスポートできますか。Can I export straight to my own on-premises store?

    いいえ、できません。No, sorry. 現在のところ、エクスポート エンジンは、Azure Storage でのみ動作します。Our export engine currently only works with Azure storage at this time.

  • ストアに格納できるデータの量に制限はありますか。Is there any limit to the amount of data you put in my store?

    いいえ。No. データのプッシュ配信は、エクスポートが削除されるまで続行されます。We'll keep pushing data in until you delete the export. Blob Storage の制限に達した場合は配信が停止されますが、その制限には非常に大きな値が設定されています。We'll stop if we hit the outer limits for blob storage, but that's pretty huge. 使用するストレージの量を管理するのはお客様です。It's up to you to control how much storage you use.

  • ストレージに表示される BLOB の数を教えてください。How many blobs should I see in the storage?

    • エクスポートに選択した各データの種類ごとに、1 つの新しい BLOB が 1 分ごとに作成されます (データを使用できる場合)。For every data type you selected to export, a new blob is created every minute (if data is available).
    • さらに、トラフィック負荷の高いアプリケーションでは、追加のパーティション単位が割り当てられます。In addition, for applications with high traffic, additional partition units are allocated. この場合、各単位で 1 分ごとに 1 つの BLOB が作成されます。In this case each unit creates a blob every minute.
  • ストレージのキーを再生成した後、またはコンテナーの名前を変更した後、エクスポートが動作しません。I regenerated the key to my storage or changed the name of the container, and now the export doesn't work.

    エクスポートを編集し、[エクスポート先] ブレードを開きます。Edit the export and open the export destination blade. 以前と同じストレージが選択されていることを確認し、[OK] をクリックして確定します。Leave the same storage selected as before, and click OK to confirm. エクスポートが再開されます。Export will restart. 変更を加えたのが数日前のことであれば、データは失われません。If the change was within the past few days, you won't lose data.

  • エクスポートを一時停止できますか。Can I pause the export?

    はい。Yes. [無効] をクリックします。Click Disable.

コード サンプルCode samples