【发布时间】: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"一样,表示给定期间的所有记录。显示> False 996 -
那么可能只是没有成功的调用。除非源应用程序中定义了某种过滤器,或者即使结果正常,状态也设置为 false。我认为您可以排除采样,因为它不会仅过滤成功的请求
-
有成功的调用,我可以在 Insights 的“依赖项”集合中看到它们,http 状态代码 = 200,我可以在目标中看到数据。由于某种原因,它只是不去“请求”,没有我明确设置的过滤器,只有当某些东西在幕后设置 Azure 时
标签: azure azure-application-insights