從 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
- 阿拉伯聯合大公國中部
- 巴西東南部
- 澳大利亞中部
- 阿拉伯聯合大公國北部
- 挪威東部
- 日本西部
注意
如果匯出是在 2021 年 2 月 23 日之前設定,則美國東部和西歐的應用程式可以繼續使用連續匯出。 不論應用程式是在何時建立,美國東部或西歐的任何應用程式都無法設定新的連續匯出規則。
連續匯出進階儲存體設定
連續匯出「不支援」下列 Azure 儲存體功能/設定:
- 使用 Azure 虛擬網路/Azure 儲存體防火牆搭配 Azure Blob 儲存體。
- Azure Data Lake Storage Gen2。
建立連續匯出
注意
應用程式每天匯出的資料不能超過 3 TB。 如果每天匯出的資料超過 3 TB,則會停用匯出。 若要在不受限制的情況下匯出,請使用診斷設定型匯出。
在您應用程式的 Application Insights 資源中,於左側 [設定] 之下開啟 [連續匯出],然後選擇 [新增]。
選擇您想要匯出的遙測資料類型。
建立或選取要用來儲存資料的 Azure 儲存體帳戶。 如需有關儲存體價格選項的詳細資訊,請參閱定價頁面。
選取 [新增]>[匯出目的地]>[儲存體帳戶]。 然後建立新的存放區或選擇現有存放區。
警告
根據預設,儲存體位置將設為與您 Application Insights 資源相同的地理區域。 如果您儲存在不同的區域中,可能會產生傳輸費用。
建立或選取儲存體中的容器。
注意
建立匯出後,新的內嵌資料即會開始流向 Azure Blob 儲存體。 連續匯出只會傳輸啟用連續匯出之後所建立或內嵌的新遙測資料。 不會匯出啟用連續匯出之前存在的任何資料。 不支援使用連續匯出來追溯匯出先前建立的資料。
資料出現在儲存體中之前可能有大約一小時的延遲。
第一次匯出完成之後,您會在 Blob 儲存體容器中找到下列結構。 (此結構會根據您收集的資料而有所不同。)
名稱 | 描述 |
---|---|
可用性 | 回報 可用性 Web 測試。 |
事件 | TrackEvent()產生的自訂事件。 |
例外狀況 | 回報在伺服器和瀏覽器中的 例外狀況 。 |
訊息 | 由 TrackTrace 及記錄配接器傳送。 |
計量 | 由計量 API 呼叫所產生。 |
PerformanceCounters | Application Insights 所收集的效能計數器。 |
要求 | 由 TrackRequest傳送。 標準模組使用要求來回報在伺服器上測量的伺服器回應時間。 |
編輯連續匯出
選取 [連續匯出],然後選取要編輯的儲存體帳戶。
停止連續匯出
若要停止匯出,請選取 [停用]。 當您再次選取 [啟用] 時,匯出將會以新資料重新啟動。 您無法取得在停用匯出時送抵入口網站的資料。
若要永久停止匯出,請刪除它。 這麼做不會將您的資料從儲存體刪除。
無法加入或變更匯出?
若要新增或變更匯出,您需要擁有者、參與者或 Application Insights 參與者存取權。 了解角色。
您取得什麼事件?
匯出的資料是我們從您的應用程式接收的原始遙測,並加入了從用戶端 IP 位址新增的位置資料。
取樣已捨棄的資料不會包含在匯出的資料中。
未包含其他計算的計量。 例如,我們不會匯出平均 CPU 使用率,但我們會匯出用以計算平均的原始遙測。
該資料也包含您曾設定之 可用性 Web 測試 的任何結果。
注意
如果應用程式會傳送大量資料,取樣功能或許會運作,並只傳送一小部分產生的遙測。 深入了解取樣。
檢查資料
您可以直接在入口網站中檢查儲存體。 選取最左邊功能表上的 [首頁]。 在顯示 Azure 服務的頂端,選取 [儲存體帳戶]。 選取儲存體帳戶名稱,然後在 [概觀] 頁面上選取 [服務]>[Blob]。 最後,選取容器名稱。
若要在 Visual Studio 中檢查 Azure 儲存體,請依序選取 [檢視]>[Cloud Explorer]。 如果您沒有該功能表命令,您需要安裝 Azure SDK。 開啟 [新增專案] 對話方塊,展開 Visual C#/Cloud並選取 [取得 Microsoft Azure SDK for .NET]。
當您開啟 Blob 存放區時,您會看到含有一組 Blob 檔案的容器。 您會看到衍生自您的 Application Insights 資源名稱、其檢測金鑰、遙測類型、日期和時間之每個檔案的 URI。 資源名稱全部小寫,而檢測金鑰會省略連字號。
日期和時間為 UTC,並且是遙測存放在儲存區的時間,而不是產生的時間。 基於這個理由,如果您編寫程式碼來下載資料,其可以透過資料線性地移動。
以下是路徑的格式︰
$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"
其中:
blobCreationTimeUtc
是在內部暫存儲存體中建立 Blob 的時間。blobDeliveryTimeUtc
是將 Blob 複製到匯出目的地儲存體的時間。
資料格式
資料格式的設定方式:
每個 Blob 是包含多個以
\n
分隔的列的文字檔案。 它包含大約半分鐘的時間內所處理的遙測。每個資料列都代表遙測資料點,例如要求或頁面檢視。
每列是未格式化的 JSON 文件。 如果您想要檢視資料列,請在 Visual Studio 中開啟 Blob,然後選取 [編輯]>[進階]>[格式檔案]。
時間期間依刻度為單位,10000 刻度 = 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);
}
}
}
}
如需較大型的程式碼範例,請參閱使用背景工作角色。
刪除舊資料
您需負責管理儲存容量,以及在必要時刪除舊資料。
重新產生儲存體金鑰
如果您變更儲存體的金鑰,連續匯出將停止運作。 您將在 Azure 帳戶中看到通知。
選取 [連續匯出] 索引標籤,然後編輯您的匯出。 編輯 [匯出目的地] 值,但只保留選取相同的儲存體。 選取確定以確認。
連續匯出將重新開始。
匯出範例
如需匯出範例,請參閱:
就更大型規模而言,請考慮雲端中的 HDInsight Hadoop 叢集。 HDInsight 提供各種技術來管理和分析巨量資料。 您可以用其來處理已從 Application Insights 匯出的資料。
常見問題集
本節提供常見問題的答案。
我可以取得圖表的一次性下載嗎?
您可以辦得到。 在索引標籤頂端,選取 [匯出資料]。
我設定匯出,但我的存放區中為何沒有任何資料?
自從設定匯出之後,Application Insights 是否從您的應用程式收到任何遙測? 您將只會收到新資料。
我嘗試設定匯出,但我為何被拒絕存取?
如果帳戶是組織所擁有,您必須是擁有者或參與者群組的成員。
我是否能直接匯出到我本身的內部部署儲存區?
否。 我們的匯出引擎目前僅適用於 Azure 儲存體。
放置在我的儲存區中的資料量有任何限制?
否。 我們將持續送入資料,直到刪除匯出為止。 我們會在達到 Blob 儲存體外部限制時停止,但是該限制很大。 您可以自行控制使用的儲存體數量。
應該在儲存體中看到多少 Blob?
- 針對您選取要匯出的每個資料類型,會每分鐘建立一個新的 Blob (如果有可用的資料)。
- 針對具有高流量的應用程式,則會配置額外的分割單位。 在此情況下,每個單位會每分鐘建立一個 Blob。
我對我的儲存體重新產生了金鑰,或變更了容器的名稱,但匯出為何沒有作用?
編輯匯出並選取 [匯出目的地] 索引標籤。照舊保留選取相關的儲存體,並選取 [確定] 確認。 匯出將重新開始。 如果變更是在最近幾天內,您不會遺失資料。
我可以暫停匯出嗎?
是。 選取停用。
程式碼範例
診斷設定型匯出
建議使用診斷設定匯出,因為可以提供額外功能:
- 具有虛擬網路、防火牆和私人連結的 Azure 儲存體帳戶。
- 匯出至 Azure 事件中樞。
診斷設定匯出與連續匯出的進一步差異如下:
- 更新的結構描述。
- 遙測資料會在到達時傳送,而不是批次上傳。
重要
由於對目的地 (例如儲存體帳戶) 的呼叫增加,因此可能產生額外的成本。
如何移轉至診斷設定匯出:
- 在傳統 Application Insights 上啟用診斷設定。
- 設定數據匯出:選取 [診斷設定>],從 Application Insights 資源內新增診斷設定。
- 確認新的數據匯出設定與您連續匯出相同
警告
若想將診斷記錄儲存在 Log Analytics 工作區,為避免 Application Insights 中出現重複資料,請注意下列兩點:
- 目的地不能與 Application Insights 資源當作基礎的 Log Analytics 工作區相同。
- Application Insights 使用者不能同時存取兩個工作區。 將 Log Analytics 存取控制模式設定為 [需要工作區權限]。 透過 Azure 角色型存取控制,確保使用者只能存取 Application Insights 資源作為基礎的 Log Analytics 工作區。
請務必採取這些步驟,因為 Application Insights 為了提供完整的端對端交易作業和精確的應用程式對應,會跨 Application Insight 資源 (包括 Log Analytics 工作區) 存取遙測資料。 由於診斷記錄都使用相同的資料表名稱,因此一旦使用者能夠存取包含相同資料的多個資源,系統就可能會顯示重複的遙測資料。
Application Insights 匯出資料模型
此表列出從 Application Insights SDK 傳送至入口網站的遙測屬性。 您會在 連續匯出的資料輸出中看到這些屬性。 它們也會出現在計量瀏覽器和診斷搜尋的屬性篩選中。
注意事項:
[0]
代表您必須在路徑中插入索引的一點,但它未必是 0。- 持續時間的長度單位是微秒,因此 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.custom.dimensions [0] | 物件 [ ] | 由自訂屬性參數設定的索引鍵-值字串組。 索引鍵的最大長度 100,值的最大長度 1024。 超過 100 個唯一值時,屬性可供搜尋,但無法用來分割。 每個 ikey 的最大值 200 索引鍵。 |
context.custom.metrics [0] | 物件 [ ] | 由自訂測量參數和 TrackMetrics 設定的索引鍵-值組。 索引鍵的最大長度 100,值可能為數值。 |
context.data.eventTime | string | UTC |
context.data.isSynthetic | boolean | 要求似乎來自 bot 或 web 測試。 |
context.data.samplingRate | 數值 | 由傳送至入口網站之 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 | 主機作業系統 |
context.device.roleInstance | string | 伺服器主機的識別碼 |
context.device.roleName | string | |
context.device.screenResolution | string | |
context.device.type | string | PC, Browser, ... |
context.location | object | 衍生自 clientip 。 |
context.location.city | string | 衍生自 clientip (如果已知) |
context.location.clientip | string | 最後一個八邊形匿名設定為 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 |
事件
TrackEvent()產生的自訂事件。
路徑 | 類型 | 備註 |
---|---|---|
事件 [0] 計數 | 整數 | 100/(取樣 率)。 例如 4 => 25%。 |
事件 [0] 名稱 | string | 事件名稱。 最大長度 250。 |
事件 [0] url | string | |
事件 [0] urlData.base | string | |
事件 [0] urlData.host | string |
例外狀況
回報在伺服器和瀏覽器中的 例外狀況 。
路徑 | 類型 | 備註 |
---|---|---|
basicException [0] 組件 | string | |
basicException [0] 計數 | 整數 | 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] 方法 | string | |
basicException [0] 訊息 | 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] 組件 | string | |
basicException [0] parsedStack [0] fileName | string | |
basicException [0] parsedStack [0] 層級 | 整數 | |
basicException [0] parsedStack [0] 列 | 整數 | |
basicException [0] parsedStack [0] 方法 | string | |
basicException [0] 堆疊 | string | 最大長度 10k |
basicException [0] typeName | string |
追蹤訊息
由 TrackTrace 及記錄配接器傳送。
路徑 | 類型 | 備註 |
---|---|---|
訊息 [0] loggerName | string | |
訊息 [0] 參數 | string | |
訊息 [0] 原始碼 | string | 記錄檔訊息,最大長度 10k。 |
訊息 [0] severityLevel | string |
遠端相依性
由 TrackDependency 傳送。 用於回報伺服器中 相依性呼叫 以及瀏覽器中 AJAX 呼叫的效能和使用情形。
路徑 | 類型 | 備註 |
---|---|---|
remoteDependency [0] async | boolean | |
remoteDependency [0] baseName | string | |
remoteDependency [0] commandName | string | 例如 "home/index" |
remoteDependency [0] 計數 | 整數 | 100/(取樣 率)。 例如 4 => 25%。 |
remoteDependency [0] dependencyTypeName | string | HTTP、SQL、... |
remoteDependency [0] durationMetric.value | 數值 | 從根據相依性呼叫回應完成開始計算的時間 |
remoteDependency [0] id |
string | |
remoteDependency [0] 名稱 | string | Url。 最大長度 250。 |
remoteDependency [0] resultCode | string | 從 HTTP 相依性 |
remoteDependency [0] 成功 | boolean | |
remoteDependency [0] 類型 | 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 |
要求
由 TrackRequest傳送。 標準模組使用它回報在伺服器上測量的伺服器回應時間。
路徑 | 類型 | 備註 |
---|---|---|
要求 [0] 計數 | 整數 | 100/(取樣 率)。 例如:4 => 25%。 |
要求 [0] durationMetric.value | 數值 | 從要求抵達到回應的時間。 1e7 == 1s |
要求 [0] id |
string | Operation id |
要求 [0] 名稱 | string | GET/POST + url 基底。 最大長度 250 |
要求 [0] responseCode | 整數 | 傳送至用戶端的 HTTP 回應 |
要求 [0] 成功 | boolean | 預設值 == (responseCode < 400) |
要求 [0] url | string | 不包括主機 |
要求 [0] urlData.base | string | |
要求 [0] urlData.hashTag | string | |
要求 [0] urlData.host | string |
頁面檢視效能
由瀏覽器傳送。 測量處理頁面的時間,從使用者起始要求到顯示完成 (不包括非同步 AJAX 呼叫)。
內容值會顯示用戶端作業系統和瀏覽器版本。
路徑 | 類型 | 備註 |
---|---|---|
clientPerformance [0] clientProcess.value | 整數 | 從接收 HTML 完成到顯示頁面的時間。 |
clientPerformance [0] 名稱 | string | |
clientPerformance [0] networkConnection.value | 整數 | 建立網路連線所需的時間。 |
clientPerformance [0] receiveRequest.value | 整數 | 從傳送要求完成至接收回覆中 HTML 的時間。 |
clientPerformance [0] sendRequest.value | 整數 | 傳送 HTTP 要求所需的時間。 |
clientPerformance [0] total.value | 整數 | 從開始傳送要求到顯示頁面的時間。 |
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 傳送
路徑 | 類型 | 備註 |
---|---|---|
檢視 [0] 計數 | 整數 | 100/(取樣 率)。 例如 4 => 25%。 |
檢視 [0] durationMetric.value | 整數 | 在 trackPageView() 中或由 startTrackPage() - stopTrackPage() 選擇性設定的值。 和 clientPerformance 的值不同。 |
檢視 [0] 名稱 | string | 頁面標題。 最大長度 250 |
檢視 [0] url | string | |
檢視 [0] urlData.base | string | |
檢視 [0] urlData.hashTag | string | |
檢視 [0] urlData.host | string |
可用性
回報 可用性 Web 測試。
路徑 | 類型 | 備註 |
---|---|---|
可用性 [0] availabilityMetric.name | string | availability |
可用性 [0] availabilityMetric.value | 數值 | 1.0 或 0.0 |
可用性 [0] 計數 | 整數 | 100/(取樣 率)。 例如 4 => 25%。 |
可用性 [0] dataSizeMetric.name | string | |
可用性 [0] dataSizeMetric.value | 整數 | |
可用性 [0] durationMetric.name | string | |
可用性 [0] durationMetric.value | 數值 | 測試持續時間。 1e7==1s |
可用性 [0] 訊息 | string | 失敗診斷 |
可用性 [0] 結果 | string | 通過/失敗 |
可用性 [0] runLocation | string | http req 的地理區域來源 |
可用性 [0] testName | string | |
可用性 [0] testRunId | string | |
可用性 [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 中彙總,以減少入口網站的流量。 例如,您可以在傳送每個度量報告之前平均數個連續的讀數。 然後您會計算 min、max、標準差和彙總值 (sum 或 average),並將計數設為報告所代表的讀數數目。
在上述資料表中,我們省略了很少使用的欄位計數、min、max、stdDev 和 sampledValue。
除了使用預先彙總的度量,如果您需要減少遙測量,您可以改為使用 取樣 。
持續時間
除非另有說明,否則持續時間皆以十分之一微秒表示,所以 10000000.0 表示 1 秒。