Application Insights からのテレメトリのエクスポート
標準的なリテンション期間より長くテレメトリを残しておきたい、 または特別な方法でテレメトリを処理したい、 このような目的には、連続エクスポートが最適です。 Application Insights ポータルに表示されるイベントは、JSON 形式で Azure のストレージにエクスポートできます。 そこからデータをダウンロードしたり、データを処理するためのコードを自由に記述したりできます。
重要
- 2024 年 2 月 29 日の時点で、連続エクスポートは廃止されます。
- ワークスペース ベースの Application Insights リソースに移行するときは、診断設定を使ってテレメトリをエクスポートする必要があります。 ワークスペースベースの Application Insights リソースではすべて、診断設定を使用する必要があります。
- 診断設定のエクスポートにより、コストが増加する可能性があります。 詳細については、「断設定ベースのエクスポート」を参照してください。
連続エクスポートをセットアップする前に、次の代替手段を検討してください。
- メトリック タブや検索タブの上部にある [エクスポート] ボタンを使用すると、テーブルやグラフを Excel のスプレッドシートに転送できます。
- Log Analytics にはテレメトリ用の強力なクエリ言語があります。 結果をエクスポートすることもできます。
- Power BI でデータを探索するときは、ワークスペース ベースのリソースに移行した場合は、連続エクスポートを使用せずにこれを行うことができます。
- データ アクセス REST API を使用すると、テレメトリにプログラムでアクセスすることができます。
- PowerShell を使用した連続エクスポートの設定にアクセスすることもできます。
連続エクスポートによってストレージにコピーされたデータは、必要なだけいつまででもそこに保持でき、通常の保持期間の間は引き続き Application Insights で使用できます。
サポートされているリージョン
連続エクスポートは、次のリージョンでサポートされています。
- 東南アジア
- カナダ中部
- インド中部
- 北ヨーロッパ
- 英国南部
- オーストラリア東部
- 東日本
- 韓国中部
- フランス中部
- 東アジア
- 米国西部
- 米国中部
- 米国東部 2
- 米国中南部
- 米国西部 2
- 南アフリカ北部
- 米国中北部
- ブラジル南部
- スイス北部
- オーストラリア南東部
- 英国西部
- ドイツ中西部
- スイス西部
- オーストラリア中部 2
- アラブ首長国連邦中部
- ブラジル南東部
- オーストラリア中部
- アラブ首長国連邦北部
- ノルウェー東部
- 西日本
Note
エクスポートが 2021 年 2 月 23 日より前に構成されている場合、連続エクスポートは米国東部と西ヨーロッパのアプリケーションで引き続き機能します。 アプリケーションの作成日に関わらず、米国東部または西ヨーロッパのアプリケーションで新しい連続エクスポート規則を構成することはできません。
連続エクスポートの高度なストレージ構成
連続エクスポートでは、次の Azure Storage の機能または構成はサポートされません。
- Azure Virtual Network/Azure Storage ファイアウォールと Azure Blob Storage の併用。
- Azure Data Lake Storage Gen2。
連続エクスポートを作成する
注意
アプリケーションでは、1 日に 3 TB を超えるデータをエクスポートできません。 1 日あたり 3 TB を超える場合、エクスポートは無効になります。 制限なしでエクスポートするには、診断設定ベースのエクスポートを使用します。
アプリの Application Insights リソースで、左側の [構成] の下の [連続エクスポート] を開き、[追加] を選択します。
テレメトリをエクスポートするデータ型を選択します。
データの保存先となる Azure Storage アカウントを作成または選択します。 ストレージの価格オプションの詳細については、価格に関するページを参照してください。
[追加]>[エクスポート先]>[ストレージ アカウント] を選択します。 次に、新しいストアを作成するか既存のストアを選択します。
警告
既定では、ストレージの場所は、Application Insights のリソースと同じ地理的リージョンに設定されます。 別のリージョンに保存する場合は、転送の料金が発生する可能性があります。
ストレージにコンテナーを作成するか、選択します。
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 が表示されます。 リソース名はすべて小文字になり、インストルメンテーション キーのダッシュは省略されます。
注意
インストルメンテーション キーのインジェストのサポートは、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 にエクスポートします。
診断設定のエクスポートは、次の点で連続エクスポートとはさらに異なります。
- 更新されたスキーマ。
- テレメトリ データは、バッチ アップロードではなく、到着時に送信されます。
重要
ストレージ アカウントなどの宛先の呼び出しが増えることで追加のコストが発生する可能性があります。
診断設定のエクスポートに移行するには:
- クラシック Application Insights で診断設定を有効にします。
- データ エクスポートの構成: Application Insights リソース内から Diagnostic 設定>診断設定の追加 を選択します。
- 新しいデータ エクスポートが連続エクスポートと同じように構成されていることを確認する
注意事項
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
であり、name
と value
フィールドだけが有益です。 それ以外の状態になるのは、独自の TrackMetric 呼び出しを記述して、他のパラメーターを設定する場合だけです。
他のフィールドの目的は、SDK でメトリックを集計できるようにして、ポータルへのトラフィックを減らすことです。 たとえば、各メトリック レポートを送信する前に、連続するいくつかの測定値の平均を求めることができます。 その後、最小、最大、標準偏差、集計値 (合計または平均) を計算し、レポートで表される測定値の数をカウントに設定します。
上の表では、あまり使用されないフィールドである count、min、max、stdDev、sampledValue は省略しました。
テレメトリの量を削減する必要がある場合は、事前集計メトリックの代わりに、 サンプリング を使用することもできます。
期間
特記がない限り、期間は 1/10 マイクロ秒で表されます。そのため、10000000.0 は 1 秒を意味します。