请求遥测 - "durationMetric"?

Request telemetry - "durationMetric"?

解析从 Blob 存储导出的 Application Insights 遥测数据时,请求数据如下所示:

{
  "request": [
    {
      "id": "3Pc0MZMBJgQ=",
      "name": "POST Blah",
      "count": 6,
      "responseCode": 201,
      "success": true,
      "url": "https://example.com/api/blah",
      "durationMetric": {
        "value": 66359508.0,
        "count": 6.0,
        "min": 11059918.0,
        "max": 11059918.0,
        "stdDev": 0.0,
        "sampledValue": 11059918.0
      },
      ...
    }
  ],
  ...
}

我正在寻找请求的持续时间,但我发现我看到了一个 durationMetric 对象。

根据 documentationrequest[0].durationMetric.value 字段被描述为

Time from request arriving to response. 1e7 == 1s

但是如果我使用 Analytics 进行查询,该值与此字段不匹配:

但是,它们确实匹配 minmaxsampledValue 字段。

我应该使用哪个字段?上例中的 "value": 66359508.0 值代表什么?

它不匹配,因为您看到的是采样数据(意味着此事件代表来自多个请求的采样数据)。我建议从 https://azure.microsoft.com/en-us/documentation/articles/app-insights-sampling/ 开始,以了解采样的工作原理。

在这种情况下,"matching" 值将来自 duration.sampledValue(注意 value == count * sampledValue

很难准确比较你所看到的内容,因为你没有显示你正在使用的 Kusto 查询,但你在编写 AI Analytics 查询时确实需要注意采样。有关后者的更多详细信息,请参阅 https://azure.microsoft.com/en-us/documentation/articles/app-insights-analytics-tour/#counting-sampled-data