【问题标题】:Azure insights: 'requests' item type are only stored with success=='False'Azure 见解:“请求”项类型仅与成功 ==“假”一起存储
【发布时间】:2022-01-17 12:04:32
【问题描述】:

我有由计时器触发器运行的 Azure 持久函数,该函数运行另一个函数 (UploadActivity),该函数对 Azure REST 服务的外部进行一些 http 调用。我们确定所有UploadActivity 调用中的一小部分最终会导致http 错误并引发异常,其余的是无异常并将一些数据上传到远程http 资源。我得到的有趣发现是 Azure Insight 的“请求”集合只包含失败的请求,没有记录成功的请求

// gives no results
requests
| where success == "True"


// gives no results
requests
| where success <> "False"


// gives results
requests
| where success == "False"

我不明白为什么。如果有助于找出原因,以下是返回请求之一的一些属性,成功=='False'

operation_Name:
UploadActivity 

appName:
/subscriptions/1b3e7d9e-e73b-4061-bde1-628b728b43b7/resourcegroups/myazuretest-rg/providers/microsoft.insights/components/myazuretest-ai

sdkVersion:
azurefunctions: 4.0.1.16815

'resource' 在 Azure 中定义为对 http 触发函数的 http 调用,但我的应用程序中没有 http 触发函数,这让事情变得更加混乱,我认为这些请求可能属于 Azure Insights 调用,可能是也是基于 Azure Functions 构建的

【问题讨论】:

  • requests | summarize count() by success 的结果是什么?
  • @Peter 它与数字相同,就像我运行requests | where success == "False" 一样,表示给定期间的所有记录。显示&gt; False 996
  • 那么可能只是没有成功的调用。除非源应用程序中定义了某种过滤器,或者即使结果正常,状态也设置为 false。我认为您可以排除采样,因为它不会仅过滤成功的请求
  • 有成功的调用,我可以在 Insights 的“依赖项”集合中看到它们,http 状态代码 = 200,我可以在目标中看到数据。由于某种原因,它只是不去“请求”,没有我明确设置的过滤器,只有当某些东西在幕后设置 Azure 时

标签: azure azure-application-insights


【解决方案1】:

对于计时器触发的函数,Application Insights 的 requests 集合中没有记录是正常的。如果它是一个 http 触发函数,您将拥有 1. 只有触发该函数的请求才会在 Application Insights 中记录为请求。计时器触发器不响应请求。

一旦触发该函数,该函数执行的所有 http 请求(以及所有类型的其他通信,如对服务总线的调用等)将被记录为 dependency 集合中的 dependencies 。这是by design,这是 Application Insight 的工作原理。

【讨论】:

  • 这是有道理的,我在这里唯一缺少的是为什么失败的执行被记录为[请求]。我可以理解“全部”或“无”的情况,我只是不明白为什么只失败了
  • 你能分享记录的网址吗?
  • 嗨@Peter,我没有看到存储在任何请求中的任何 url,唯一与 url 有点相似的字段是 appName_ResourceId,值是相等的,你可以在问题描述中看到。谢谢
  • @YMC 你能用requests | project url, operation_Name, cloud_RoleInstance, cloud_RoleName, operation_SyntheticSource得到任何信息吗?有时,roleinstance 和 rolename 可以识别导致请求的资源。此外,操作名称也是如此。 SyntheticSource 可以指示请求是由看门狗引起的。
  • 我得到了结果,但是urloperation_SyntheticSource 是空的(空白),cloud_RoleInstance 是某种长字母数字标识符,并且 operation_Name 与问题描述中的相同。
猜你喜欢
  • 2020-06-20
  • 2017-12-26
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 2021-09-13
  • 2019-01-20
相关资源
最近更新 更多