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

標準的なリテンション期間より長くテレメトリを残しておきたい、 または特別な方法でテレメトリを処理したい、 このような目的には、連続エクスポートが最適です。 Application Insights ポータルに表示されるイベントは、JSON 形式で Azure のストレージにエクスポートできます。 そこからデータをダウンロードしたり、データを処理するためのコードを自由に記述したりできます。

重要

連続エクスポートをセットアップする前に、次の代替手段を検討してください。

連続エクスポートによってストレージにコピーされたデータは、必要なだけいつまででもそこに保持でき、通常の保持期間の間は引き続き Application Insights で使用できます。

サポートされているリージョン

連続エクスポートは、次のリージョンでサポートされています。

  • 東南アジア
  • カナダ中部
  • インド中部
  • 北ヨーロッパ
  • 英国南部
  • オーストラリア東部
  • 東日本
  • 韓国中部
  • フランス中部
  • 東アジア
  • 米国西部
  • 米国中部
  • 米国東部 2
  • 米国中南部
  • 米国西部 2
  • 南アフリカ北部
  • 米国中北部
  • ブラジル南部
  • スイス北部
  • オーストラリア南東部
  • 英国西部
  • ドイツ中西部
  • スイス西部
  • オーストラリア中部 2
  • アラブ首長国連邦中部
  • ブラジル南東部
  • オーストラリア中部
  • アラブ首長国連邦北部
  • ノルウェー東部
  • 西日本

Note

エクスポートが 2021 年 2 月 23 日より前に構成されている場合、連続エクスポートは米国東部と西ヨーロッパのアプリケーションで引き続き機能します。 アプリケーションの作成日に関わらず、米国東部または西ヨーロッパのアプリケーションで新しい連続エクスポート規則を構成することはできません。

連続エクスポートの高度なストレージ構成

連続エクスポートでは、次の Azure Storage の機能または構成はサポートされません

連続エクスポートを作成する

注意

アプリケーションでは、1 日に 3 TB を超えるデータをエクスポートできません。 1 日あたり 3 TB を超える場合、エクスポートは無効になります。 制限なしでエクスポートするには、診断設定ベースのエクスポートを使用します。

  1. アプリの Application Insights リソースで、左側の [構成] の下の [連続エクスポート] を開き、[追加] を選択します。

  2. テレメトリをエクスポートするデータ型を選択します。

  3. データの保存先となる Azure Storage アカウントを作成または選択します。 ストレージの価格オプションの詳細については、価格に関するページを参照してください。

    [追加]>[エクスポート先]>[ストレージ アカウント] を選択します。 次に、新しいストアを作成するか既存のストアを選択します。

    警告

    既定では、ストレージの場所は、Application Insights のリソースと同じ地理的リージョンに設定されます。 別のリージョンに保存する場合は、転送の料金が発生する可能性があります。

  4. ストレージにコンテナーを作成するか、選択します。

Note

エクスポートを作成すると、新しく取り込まれたデータが Azure Blob Storage へフローするようになります。 連続エクスポートでは、連続エクスポートが有効になった後に作成または取り込まれた新しいテレメトリのみが送信されます。 連続エクスポートを有効にする前に存在していたデータはエクスポートされません。 連続エクスポートを使用して、以前に作成したデータをさかのぼってエクスポートする方法はサポートされていません。

ストレージにデータが表示されるまで、約 1 時間の遅延が発生する可能性があります。

最初のエクスポートが完了すると、Blob Storage コンテナーに次の構造が表示されます。 (この構造は、収集するデータによって異なります)。

名前 説明
可用性 可用性 Web テストをレポートします。
Event TrackEvent()によって生成されたカスタム イベント。
例外 サーバーおよびブラウザーの 例外 をレポートします。
Messages (メッセージ) TrackTrace およびログ アダプターによって送信されます。
Metrics メトリック API 呼び出しによって生成されます。
PerformanceCounters Application Insights によって収集されたパフォーマンス カウンター。
要求数 TrackRequestによって送信されます。 標準モジュールは要求を使って、サーバーで測定されたサーバー応答時間を報告します。

連続エクスポートを編集する

[連続エクスポート] を選択し、編集するストレージ アカウントを選択します。

連続エクスポートを停止する

エクスポートを停止するには、[無効] を選択します。 もう一度 [有効] を選択すると、新しいデータでエクスポートが再開されます。 エクスポートが無効な場合、ポータルに到着したデータは取得されません。

エクスポートを完全に停止するには、対象のエクスポートを削除します。 エクスポートを削除しても、ストレージのデータは削除されません。

エクスポートを追加または変更できない

エクスポートを追加または変更するには、所有者、共同作成者、または Application Insights 共同作成者のアクセス権が必要になります。 ロールの詳細については、こちらを参照してください

取得されるイベント

エクスポートされるデータは、ユーザーのアプリケーションから受信した生のテレメトリに、クライアントの IP アドレスからの位置データが追加されたものです。

サンプリングによって破棄されたデータは、エクスポートされるデータに含まれません。

他の計算されたメトリックは含まれません。 たとえば、平均 CPU 使用率はエクスポートされませんが、平均の計算に使用された未加工のテレメトリはエクスポートされます。

データには、セットアップ済みのすべての可用性 Web テストの結果も含まれます。

Note

アプリケーションで大量のデータを送信すると、サンプリング機能が動作して、生成されたテレメトリのごく一部だけが送信される可能性があります。 サンプリングの詳細については、こちらを参照してください。

データの確認

ポータルでストレージを直接検査することができます。 左端のメニューで [ホーム] を選択します。 上部の [Azure サービス] と記載されている箇所で、[ストレージ アカウント] を選択します。 ストレージ アカウント名を選択し、[概要] ページで [サービス]>[BLOB] を選択します。 最後に、コンテナー名を選択します。

Visual Studio で Azure Storage を検査するには、[表示]>[Cloud Explorer] を選択します。 このメニュー コマンドがない場合は、Azure SDK をインストールする必要があります。 [新しいプロジェクト] ダイアログを開き、[Visual C#]、[クラウド] の順に展開して、[Microsoft Azure SDK for .NET の取得] を選択します。

BLOB ストアを開くと、BLOB ファイルのセットを含むコンテナーが表示されます。 Application Insights のリソース名、そのインストルメンテーション キー、テレメトリの種類、日付、時刻から派生した各ファイルの URI が表示されます。 リソース名はすべて小文字になり、インストルメンテーション キーのダッシュは省略されます。

適切なツールを使用した BLOB ストアの検査を示すスクリーンショット。

注意

インストルメンテーション キーのインジェストのサポートは、2025 年 3 月 31 日に終了します。 インストルメンテーション キーのインジェストは引き続き機能しますが、この機能の更新プログラムやサポートは提供されなくなります。 接続文字列に移行することで、新機能をご利用いただけます。

日付と時刻は UTC 形式で表され、テレメトリが生成された時間ではなく、ストアに格納された日時を示します。 そのため、データをダウンロードするコードを記述する場合は、直線的にデータ内を移動できます。

パスの形式を以下に示します。

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

ここで:

  • blobCreationTimeUtc は、BLOB が内部ステージング ストレージで作成された日時です。
  • blobDeliveryTimeUtc は、BLOB がエクスポート先のストレージにコピーされた日時です。

データ形式

データは次のように書式設定されます。

  • それぞれの Blob は、\n で区切られた複数の行を含むテキスト ファイルです。 約 30 秒の間に処理されたテレメトリが含まれています。

  • 各行は、要求やページ表示などのテレメトリ データ ポイントを表します。

  • それぞれの行は、書式設定されていない JSON ドキュメントです。 行を表示する場合は、Visual Studio で BLOB を開き、[編集]>[詳細設定]>[フォーマットファイル] の順に選択します。

    適切なツールを使用したテレメトリの表示を示すスクリーンショット

時間の長さはティック単位で表記されます。10,000 ティックが 1 ミリ秒です。 たとえば、次の値は、ブラウザーから要求を送信するのに 1 ミリ秒、要求を受信するのに 3 ミリ秒、ブラウザーでページを処理するのに 1.8 秒の時間がかかったことを示しています。

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

プロパティの種類と値の詳細なデータ モデル リファレンスについては、「Application Insights エクスポート データ モデル」を参照してください。

データを処理する

小規模な処理では、データを分解してスプレッドシートに読み込むコードを記述できます。 次に例を示します。

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 ロールの使用」をご覧ください。

古いデータの削除

ストレージ容量の管理と古いデータの削除は、必要に応じて自分で行う必要があります。

ストレージ キーを再生成する

ストレージのキーを変更した場合、連続エクスポートは動作しなくなります。 Azure アカウントに通知が表示されます。

[連続エクスポート] タブを選択し、エクスポートを編集します。 [エクスポート先] の値を編集しますが、同じストレージを選択したままにします。 [OK] を選択して確定します。

連続エクスポートが再開されます。

エクスポート サンプル

エクスポート サンプルについては、次を参照してください。

大規模な処理の場合は、クラウドの HDInsight Hadoop クラスターを検討してください。 HDInsight には、ビッグ データの管理と分析用のさまざまなテクノロジが用意されています。 それを使って、Application Insights からエクスポートされたデータを処理できます。

よく寄せられる質問

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

グラフを 1 回だけダウンロードできますか?

作成したり、 タブの上部にある [データのエクスポート] を選びます。

エクスポートを設定したのにストアにデータがないのはなぜですか?

エクスポートを設定した時点以降に Application Insights がアプリからテレメトリを受信していますか。 取得されるのは新しいデータのみです。

エクスポートを設定しようとしたところ、アクセスが拒否されるのはなぜですか?

アカウントが組織によって所有されている場合は、所有者または共同作成者グループのメンバーである必要があります。

自分のオンプレミスのストアに直接エクスポートできますか。

いいえ。 現在のところ、エクスポート エンジンは、Azure Storage でのみ動作します。

ストアに格納できるデータの量に制限はありますか。

いいえ。 データのプッシュ配信は、エクスポートが削除されるまで続行されます。 Blob Storage の上限に達した場合は停止されますが、その上限は非常に大きな値です。 使用するストレージの量を管理するのはお客様です。

ストレージに表示される BLOB の数を教えてください。

  • データを使用できる場合、エクスポートに選択した各データの種類ごとに、1 つの新しい BLOB が 1 分ごとに作成されます。
  • トラフィック負荷の高いアプリケーションでは、追加のパーティション単位が割り当てられます。 この場合、各単位で 1 分ごとに 1 つの BLOB が作成されます。

ストレージのキーを再生成した後、またはコンテナーの名前を変更したのに、エクスポートが動作しないのはなぜですか?

エクスポートを編集し、[エクスポート先] タブを選択します。ストレージの選択は前と同じままにして、[OK] を選択して確定します。 エクスポートが再開されます。 変更を加えたのが数日前のことであれば、データは失われません。

エクスポートを一時停止できますか。

はい。 [無効にする] を選択します。

コード サンプル

診断設定ベースのエクスポート

診断設定のエクスポートは、追加機能を利用できるようになるため、推奨されます。

  • 仮想ネットワーク、ファイアウォール、プライベート リンクを含む Azure Storage アカウント。
  • Azure Event Hubs にエクスポートします。

診断設定のエクスポートは、次の点で連続エクスポートとはさらに異なります。

  • 更新されたスキーマ。
  • テレメトリ データは、バッチ アップロードではなく、到着時に送信されます。

重要

ストレージ アカウントなどの宛先の呼び出しが増えることで追加のコストが発生する可能性があります。

診断設定のエクスポートに移行するには:

  1. クラシック Application Insights で診断設定を有効にします。
  2. データ エクスポートを構成する: [診断設定] [診断設定>の追加] を Application Insights リソース内から選択します。
  3. 連続エクスポートと同じ新しいデータ エクスポートが構成されていることを確認する

注意事項

Log Analytics ワークスペースに診断ログを格納する場合は、Application Insights に重複データが表示されないようにするために2 つの点を考慮すべきです。

  • 宛先は、Application Insights リソースの基になっているのと同じ Log Analytics ワークスペースにすることはできません。
  • Application Insights ユーザーに、両方のワークスペースへのアクセスを許可しないようにします。 Log Analytics アクセス制御モード[Requires workspace permissions] (ワークスペースのアクセス許可が必要) に設定します。 Azure ロールベースのアクセス制御を使用して、Application Insights リソースの基になっている Log Analytics ワークスペースのみにユーザーがアクセスできるようにします。

これらの手順が必要になるのは、Application Insights が、完全なエンドツーエンドのトランザクション操作と正確なアプリケーション マップを提供するために、Log Analytics ワークスペースを含む Application Insight リソース全体のテレメトリにアクセスするためです。 診断ログでは同じテーブル名が使用されるため、ユーザーが同じデータを含む複数のリソースにアクセスできる場合は、重複するテレメトリが表示される可能性があります。

Application Insights エクスポート データ モデル

次のテーブルは、 Application Insights SDK からポータルに送信されるテレメトリのプロパティを一覧表示したものです。 連続エクスポートからのデータ出力で、テレメトリのプロパティが表示されます。 テレメトリはメトリック エクスプローラー診断検索のプロパティ フィルターでも表示されます。

注意する点:

  • これらの表の [0] は、インデックスを挿入する必要がある、パス内の点を示しています。ただし、常に 0 とは限りません。
  • 期間は 1/10 マイクロ秒なので、10000000 == 1 秒です。
  • 日付と時刻は UTC で、ISO 形式 ( yyyy-MM-DDThh:mm:ss.sssZ

// A server report about an HTTP request
{
  "request": [
    {
      "urlData": { // derived from 'url'
        "host": "contoso.org",
        "base": "/",
        "hashTag": ""
      },
      "responseCode": 200, // Sent to client
      "success": true, // Default == responseCode<400
      // Request id becomes the operation id of child events
      "id": "fCOhCdCnZ9I=",  
      "name": "GET Home/Index",
      "count": 1, // 100% / sampling rate
      "durationMetric": {
        "value": 1046804.0, // 10000000 == 1 second
        // Currently the following fields are redundant:
        "count": 1.0,
        "min": 1046804.0,
        "max": 1046804.0,
        "stdDev": 0.0,
        "sampledValue": 1046804.0
      },
      "url": "/"
    }
  ],
  "internal": {
    "data": {
      "id": "7f156650-ef4c-11e5-8453-3f984b167d05",
      "documentVersion": "1.61"
    }
  },
  "context": {
    "device": { // client browser
      "type": "PC",
      "screenResolution": { },
      "roleInstance": "WFWEB14B.fabrikam.net"
    },
    "application": { },
    "location": { // derived from client ip
      "continent": "North America",
      "country": "United States",
      // last octagon is anonymized to 0 at portal:
      "clientip": "168.62.177.0",
      "province": "",
      "city": ""
    },
    "data": {
      "isSynthetic": true, // we identified source as a bot
      // percentage of generated data sent to portal:
      "samplingRate": 100.0,
      "eventTime": "2016-03-21T10:05:45.7334717Z" // UTC
    },
    "user": {
      "isAuthenticated": false,
      "anonId": "us-tx-sn1-azr", // bot agent id
      "anonAcquisitionDate": "0001-01-01T00:00:00Z",
      "authAcquisitionDate": "0001-01-01T00:00:00Z",
      "accountAcquisitionDate": "0001-01-01T00:00:00Z"
    },
    "operation": {
      "id": "fCOhCdCnZ9I=",
      "parentId": "fCOhCdCnZ9I=",
      "name": "GET Home/Index"
    },
    "cloud": { },
    "serverDevice": { },
    "custom": { // set by custom fields of track calls
      "dimensions": [ ],
      "metrics": [ ]
    },
    "session": {
      "id": "65504c10-44a6-489e-b9dc-94184eb00d86",
      "isFirst": true
    }
  }
}

Context

テレメトリのすべての種類には、コンテキストのセクションが付いています。 これらのフィールドのすべてが各データ ポイントで送信されるわけではありません。

Path Type Notes
context.custom.dimensions [0] object [ ] カスタム プロパティ パラメーターによって設定される、キーと値の文字列ペア。 キーの最大長は 100 で、値の最大長は 1024 です。 100 を超える一意の値で、プロパティを検索することはできますが、セグメント化には使用できません。 ikey あたり最大 200 キー。
context.custom.metrics [0] object [ ] カスタム測定パラメーターと TrackMetrics によって設定される、キーと値のペア。 キーの最大長は 100 で、値は通常は数値です。
context.data.eventTime string UTC
context.data.isSynthetic boolean 要求がボットまたは Web テストから送られてきました。
context.data.samplingRate number ポータルに送信される、SDK によって生成されたテレメトリの割合。 範囲 0.0 ~ 100.0。
context.device object クライアント デバイス
context.device.browser string IE、Chrome、 ...
context.device.browserVersion string Chrome 48.0、 ...
context.device.deviceModel string
context.device.deviceName string
context.device.id string
context.device.locale string en-GB、de-DE、 ...
context.device.network string
context.device.oemName string
context.device.os string
context.device.osVersion string ホスト OS
context.device.roleInstance string サーバー ホストの ID
context.device.roleName string
context.device.screenResolution string
context.device.type string PC、ブラウザー、 ...
context.location object clientip から派生。
context.location.city string clientip から派生 (既知の場合)
context.location.clientip string 最後の 8 文字は 0 に匿名化されます。
context.location.continent string
context.location.country string
context.location.province string 都道府県
context.operation.id string 同じ operation id を持つ項目は、関連項目としてポータルに表示されます。 通常は、request id です。
context.operation.name string URL または要求の名前
context.operation.parentId string 入れ子になった関連項目を許可します。
context.session.id string 同じソースからの操作グループの Id。 30 分間操作が行われないと、セッションの終了が通知されます。
context.session.isFirst boolean
context.user.accountAcquisitionDate string
context.user.accountId string
context.user.anonAcquisitionDate string
context.user.anonId string
context.user.authAcquisitionDate string 認証されたユーザー
context.user.authId string
context.user.isAuthenticated boolean
context.user.storeRegion string
internal.data.documentVersion string
internal.data.id string Application Insights に項目が取り込まれるときに割り当てられる Unique id

events

TrackEvent()によって生成されたカスタム イベント。

Path Type Notes
event [0] count 整数 (integer) 100/(サンプリング レート)。 たとえば、4 => 25% です。
event [0] name string イベント名。 最大長 250。
event [0] url string
event [0] urlData.base string
event [0] urlData.host string

例外

サーバーおよびブラウザーの 例外 をレポートします。

Path Type Notes
basicException [0] assembly string
basicException [0] count 整数 (integer) 100/(サンプリング レート)。 たとえば、4 => 25% です。
basicException [0] exceptionGroup string
basicException [0] exceptionType string
basicException [0] failedUserCodeMethod string
basicException [0] failedUserCodeAssembly string
basicException [0] handledAt string
basicException [0] hasFullStack boolean
basicException [0] id string
basicException [0] method string
basicException [0] message string 例外メッセージ。 最大長 10k。
basicException [0] outerExceptionMessage string
basicException [0] outerExceptionThrownAtAssembly string
basicException [0] outerExceptionThrownAtMethod string
basicException [0] outerExceptionType string
basicException [0] outerId string
basicException [0] parsedStack [0] assembly string
basicException [0] parsedStack [0] fileName string
basicException [0] parsedStack [0] level 整数 (integer)
basicException [0] parsedStack [0] line 整数 (integer)
basicException [0] parsedStack [0] method string
basicException [0] stack string 最大長 10k。
basicException [0] typeName string

トレース メッセージ

TrackTrace およびログ アダプターによって送信されます。

Path Type Notes
message [0] loggerName string
message [0] parameters string
message [0] raw string ログ メッセージ。最大長は 10k。
message [0] severityLevel string

リモート依存関係

TrackDependency によって送信されます。 サーバーでの 依存関係の呼び出し とブラウザーでの AJAX の呼び出しのパフォーマンスおよび使用状況をレポートするために使用されます。

Path Type Notes
remoteDependency [0] async boolean
remoteDependency [0] baseName string
remoteDependency [0] commandName string 例: "home/index"
remoteDependency [0] count 整数 (integer) 100/(サンプリング レート)。 たとえば、4 => 25% です。
remoteDependency [0] dependencyTypeName string HTTP、SQL、...
remoteDependency [0] durationMetric.value number 呼び出しから依存関係による応答の完了までの時間
remoteDependency [0] id string
remoteDependency [0] name string URL。 最大長 250。
remoteDependency [0] resultCode string HTTP の依存関係から
remoteDependency [0] success boolean
remoteDependency [0] type string Http、Sql、...
remoteDependency [0] url string 最大長 2000
remoteDependency [0] urlData.base string 最大長 2000
remoteDependency [0] urlData.hashTag string
remoteDependency [0] urlData.host string 最大長 200

Requests

TrackRequestによって送信されます。 標準モジュールはこれを使用して、サーバーで測定されたサーバー応答時間をレポートします。

Path Type Notes
request [0] count 整数 (integer) 100/(サンプリング レート)。 次に例を示します。4 => 25%。
request [0] durationMetric.value number 要求の到着から応答までの時間。 1e7 == 1 秒
request [0] id string Operation id
request [0] name string GET/POST + URL ベース。 最大長 250
request [0] responseCode 整数 (integer) クライアントに送信された HTTP 応答
request [0] success boolean 既定 == (responseCode < 400)
request [0] url string ホストを含まない
request [0] urlData.base string
request [0] urlData.hashTag string
request [0] urlData.host string

ページ ビュー パフォーマンス

ブラウザーによって送信されます。 ユーザーが要求を開始してから表示が完了するまでの時間を測定します (非同期 AJAX 呼び出しを除外)。

コンテキストの値は、クライアント OS やブラウザーのバージョンを示します。

Path Type Notes
clientPerformance [0] clientProcess.value 整数 (integer) HTML の取得終了からページの表示までの時間。
clientPerformance [0] name string
clientPerformance [0] networkConnection.value 整数 (integer) ネットワーク接続の確立に要した時間。
clientPerformance [0] receiveRequest.value 整数 (integer) 要求の送信の終了から応答での HTML の取得までの時間。
clientPerformance [0] sendRequest.value 整数 (integer) HTTP 要求の送信に要した時間。
clientPerformance [0] total.value 整数 (integer) 要求の送信の開始からページの表示までの時間。
clientPerformance [0] url string この要求の URL
clientPerformance [0] urlData.base string
clientPerformance [0] urlData.hashTag string
clientPerformance [0] urlData.host string
clientPerformance [0] urlData.protocol string

ページ ビュー

trackPageView() または stopTrackPage

Path Type Notes
view [0] count 整数 (integer) 100/(サンプリング レート)。 たとえば、4 => 25% です。
view [0] durationMetric.value 整数 (integer) trackPageView() で、または startTrackPage() - stopTrackPage() によって、オプションで設定される値。 clientPerformance 値と同じではありません。
view [0] name string ページのタイトル。 最大長 250
view [0] url string
view [0] urlData.base string
view [0] urlData.hashTag string
view [0] urlData.host string

可用性

可用性 Web テストをレポートします。

Path Type Notes
availability [0] availabilityMetric.name string availability
availability [0] availabilityMetric.value number 1.0 または 0.0
availability [0] count 整数 (integer) 100/(サンプリング レート)。 たとえば、4 => 25% です。
availability [0] dataSizeMetric.name string
availability [0] dataSizeMetric.value 整数 (integer)
availability [0] durationMetric.name string
availability [0] durationMetric.value number テストの実行時間 1e7==1 秒
availability [0] message string エラーの診断
availability [0] result string 合格/不合格
availability [0] runLocation string HTTP 要求の geo ソース
availability [0] testName string
availability [0] testRunId string
availability [0] testTimestamp string

メトリック

TrackMetric() によって生成されます。

メトリック値は context.custom.metrics[0] にあります。

次に例を示します。

{
  "metric": [ ],
  "context": {
  ...
    "custom": {
      "dimensions": [
        { "ProcessId": "4068" }
      ],
      "metrics": [
        {
          "dispatchRate": {
            "value": 0.001295,
            "count": 1.0,
            "min": 0.001295,
            "max": 0.001295,
            "stdDev": 0.0,
            "sampledValue": 0.001295,
            "sum": 0.001295
          }
        }
      ]  
    }
  }
}

メトリック値について

メトリック値は、メトリック レポートでもそれ以外でも、標準オブジェクト構造で報告されます。 次に例を示します。

"durationMetric": {
  "name": "contoso.org",
  "type": "Aggregation",
  "value": 468.71603053650279,
  "count": 1.0,
  "min": 468.71603053650279,
  "max": 468.71603053650279,
  "stdDev": 0.0,
  "sampledValue": 468.71603053650279
}

現在 (今後変更される可能性があります)、標準 SDK モジュールから報告されるすべての値は、count==1 であり、namevalue フィールドだけが有益です。 それ以外の状態になるのは、独自の TrackMetric 呼び出しを記述して、他のパラメーターを設定する場合だけです。

他のフィールドの目的は、SDK でメトリックを集計できるようにして、ポータルへのトラフィックを減らすことです。 たとえば、各メトリック レポートを送信する前に、連続するいくつかの測定値の平均を求めることができます。 その後、最小、最大、標準偏差、集計値 (合計または平均) を計算し、レポートで表される測定値の数をカウントに設定します。

上の表では、あまり使用されないフィールドである count、min、max、stdDev、sampledValue は省略しました。

テレメトリの量を削減する必要がある場合は、事前集計メトリックの代わりに、 サンプリング を使用することもできます。

期間

特記がない限り、期間は 1/10 マイクロ秒で表されます。そのため、10000000.0 は 1 秒を意味します。

関連項目