Application Insights URL 分组

Posted

技术标签:

【中文标题】Application Insights URL 分组【英文标题】:Application Insights URL Grouping 【发布时间】:2019-09-03 08:32:56 【问题描述】:

我目前有一个使用以下路由设置的 api:

/api/v1.0/External/id/Player
/api/External/id/Player

当客户端点击这些 URL 时,我们会在 Application Insights 中看到许多不同的 URL,例如:

/api/v1.0/External/1/Player
/api/External/5/Player
/api/v1.0/External/7/Player
/api/External/1/Player
/api/v1.0/External/10/Player
/api/External/8/Player

在查看失败的操作时,这使得在端点中查找常见错误非常困难,因为这些错误遍布各处。

是否有任何方法可以获取应用程序洞察以将上述所有 URL 视为相同的 URL?

【问题讨论】:

【参考方案1】:

您可以使用ITelemetryProcessor 在将数据发送到门户之前对其进行处理。在那里,您可以通过路由逻辑规范化 URL 路径。

另一个选项是在 Analytics 中搜索原始数据,可从“概览”标签顶部的按钮工具栏访问。在那里,您可以使用通配符代替占位符值来按路径查询。

【讨论】:

ITelemetryProcessor 意味着必须手动规范化 1000 个不同的 URL,并且每次添加新 api 时都需要不断更新,并且分析不会有帮助,因为如果我按 operation_Name 进行总结,通配符没有帮助 @bizzehdee 您可以使用正则表达式来制作一般搜索模式,例如/api/v1.0/External/(\d+)/Player(未测试),并将找到的令牌替换为 id 或其他。但是,是的,维护会很痛苦。除非你能找到一种与路由共享代码的方法,例如使用路由来反向映射从 URL 到 Action(我认为 MVC 中有这样的 API) 其他 1000 个 URL 呢?我在系统中不仅有 1 个具有 2 个不同端点的单个 api,还有 1000 个 API。我希望我能够知道遥测初始化程序或处理器中的控制器和方法,但事实证明我不能。 也许this 会有所帮助?

以上是关于Application Insights URL 分组的主要内容,如果未能解决你的问题,请参考以下文章

Application Insights 数据采样

ILogger 到 Application Insights

Azure Application Insights 不显示数据

更改 Application Insights 的位置?

处于调试模式时的 Application Insights

如何使用 Pyspark 提取 Azure Application Insights 事件?