azure-application-insights - Web 应用程序上的分析
问题描述
我们有一个网络应用程序。该应用程序的 Web 的一部分是配置文件。个人资料有以下网址:
/配置文件/1 /配置文件/2 /配置文件/3
我们也有添加。Add 的 url 如下: /Add/1 /Add/2 /Add/3
我需要查看前 20 名查看次数最多的个人资料和前 20 名查看次数最多的添加以及他们有多少查看次数。还必须可以使用 c# 提取这两个列表。这可以通过日志分析来实现吗?您是否需要从应用程序洞察中提取自己的所有内容并进行自我分析,或者您将如何实现这一目标?
我做了一点 POC。我在 AI 中添加了以下内容。https : //gac/url/1有数千个 id。也许我们在 https://gac/url/1 上有 244 次浏览,在https://gac/url/2上有 1128 次浏览等等。
public void WritePageView(string name, string id, Uri url)
{
var pageView = new PageViewTelemetry
{
Name = name,
Id = id,
Url = url
};
pageView.Properties.Add("Id", "1");
telemetry.TrackPageView(pageView);
}
我需要的是访问量最大的https://gac/url的前 20 名(前 x 名) 。就像是:
https://gac/url1 : 3434 https://gac/url1 : 2432 https://gac/url1 : 1298 https://gac/url1 : 8211 .. 如果显示在图表中将非常棒。
所以这将类似于按名称和 ID 分组。但是由于 ID 仅在 url 中存在,我该如何提取呢?
解决方案
使用分析查询很容易获得应用程序洞察力。
导航到您的 azure 门户 -> 应用程序洞察 -> 日志(分析),相关信息应位于pageViews表中。编写查询时,您可以通过 UI 设置自定义“时间范围”或使用 where 子句。
你可以通过写“pageViews”来获取所有的pageViews信息,截图如下:
您可以使用Summarize 运算符和count 运算符来获取每个页面的总查看次数。示例查询代码如下:
pageViews
| summarize totalCount = count(url) by url
| order by totalCount desc
结果如下:
如果您只想获得前 2 个最多浏览的页面,请使用以下代码:
pageViews
| summarize totalCount = count(url) by url
| order by totalCount desc
| top 2 by totalCount
推荐阅读
- swift - 点击 tableViewCell 时的动作(swift)
- git - 会话无法从后端发送到前端
- python - 如果日志显示服务已启动,为什么我的 ECS 任务公共 IP 没有加载?
- python - 在 Python 中循环掷骰子模拟
- typescript - 类实例之前的打字稿装饰器
- python - 删除具有空系列的数据框中的一行
- r - 根据报告运行时间重新分组数据
- c - 在 Brian Gladman 的 AES 实现中,aes_encrypt_key128 是如何映射到 aes_xi 的?
- r - 我可以将乳胶表放入 r 数据框中吗?
- python - Dataframe Groupby 组合多行,对浮点型列求和