博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ApplicationInsights的探测器尝鲜
阅读量:4355 次
发布时间:2019-06-07

本文共 1103 字,大约阅读时间需要 3 分钟。

通常我们可以依靠ApplicationInsights(以下简称ai)来收集比如请求(request),依赖项(dependencies),异常(exception)等信息,但是无法收集到比如一个方法(方法内部比如没有依赖项调用)的信息。

很多时候如果一个方法很慢,我们只能根据ai分析首先是不是依赖项慢导致,如果不是,就以依赖项为节点,看这个依赖项是前面慢还是后面慢,然后在进行下一步分析。

然后又回到了性能优化全靠猜的地步。

 

ai能不能也有类似一些高阶的分析工具所具有的分析代码某路径耗时的功能呢?答案是肯定的。

 

ai有一个功能称之为探查器,就是专门用于诊断这种代码级性能的,其中早期的只能在azure上才能使用(无论你是web app部署还是vm部署都可以但是必须要是在azure上的)

这个其实限制了其使用范围,因为我司并没有使用azure web app来承载站点而是跑在自己机房上(只能干瞪眼流口水)

 

现在他有一个面向core的可以自己安装的版本

具体地址  

目前这个项目还处于beta阶段,可以运行在windows和linux下

 

使用也很简单,首先项目肯定要是用了ai的,而且要是2.1以上的asp.net core项目,然后在使用ai的基础上安装对应的包,然后添加一行代码即可

 

需要安装一个新的ai的profiler的nuget包,注意目前该包只有pre-release版本,如果搜索不到注意下是否勾选了show pre-release package

添加使用Profiler的代码

 

装好之后,站点直接启动运行即可

此时站点除了常规的ai监控外,额外获得了profiler的能力,他会偶尔的汇报几个profiler的包,汇报的策略目前我个人还不清楚不过可以确定这个汇报的包肯定不多

我手头一个一天5万多访问量(2台机器)的站点1天下来也就4个profiler

众所周知的是ai是基于数据量收费的,如果过多的包这个荷包子是个问题,我这边目前也是一个项目先扔上去看下会导致多少费用增长,目前看起来还好。

 

先看看profiler的效果,如果收集到了profiler的话,会在性能面板里显示出来,嗯。我这里只有4个

 

点进去可以看到ai所收集到的profiler的详细信息

 

这里可以看到我整个流程的一个耗时(当前选中的这个)是300多ms,然后这里可以细化到每个方法的耗时是多少,我就随便找一个分支不断点下去

 

 

 

 

从上图我们可以看到我这每个操作流程中的耗时,具体可以参考官方文档   如何从中分析出你的代码

转载于:https://www.cnblogs.com/leolaw/p/10960853.html

你可能感兴趣的文章
添加时动态的在页面生成表格,使用ajax异步在后台添加到数据库
查看>>
伴随我成长的编程书
查看>>
一些平台无关的整型类型,int8_t,uint8_t....
查看>>
day040MySQL视图、触发器、事务、存储过程、函数、流程控制
查看>>
SpringMVC之使用 @RequestMapping 映射请求
查看>>
CentOS 7 yum 安装redis(更简单)
查看>>
来博客园的第一天
查看>>
[IIS]修改MaxFieldLength与MaxRequestBytes彻底解决Request Too Long的问题
查看>>
apache2 配置 vhost的方法
查看>>
css3中filter的各种特效
查看>>
记一次数据库迁移遇到问题
查看>>
简单对比一下不同Windows操作系统在相同硬件配置的情况下浏览器js引擎的性能...
查看>>
CodeForces755F 贪心 + 多重背包二进制优化
查看>>
JS调用PageMethods(转)
查看>>
如何用js获取当前url的参数值
查看>>
传统形态抗锯齿 2.0
查看>>
Java的变量命名
查看>>
venv转向pipenv
查看>>
清除WKWebView的缓存
查看>>
数据结构实验之链表九:双向链表
查看>>