在11月9号的上海.Net Conf开发者峰会上,我作了一个对Application Insights的Persentation,原本想着快速将其转化为一篇博客无赖最近忙成🐶。java
因为Application Insights依赖于Azure,可能对于大多数人没有Azure订阅,为了便于你们了解Application Insights,我这里提供一个简单的demo
帐号 publicdemo@myluobin.onmicrosoft.com
密码 Qq123654.. (最后面有2个英文句号,被那该死密码规则搞死了)
在 http://portal.azure.com
登陆,以后能够看到一个叫bookStore的Application Insights的资源,能够体验下Application Insights
该Application Insights绑定了网站 http://appinsightsdemotest.azurewebsites.net/
该网站基于abp.vnext里的一个bookStore的Sample构建的一个简单示例(原本想用eShop,无耐那货太多站点我私人的订阅hold不住那个费用)
上述资源由本人私人的Azure订阅提供(是须要扣费的)
不提供稳定性保证,不承诺SLA,任何状况下均可能发生不可用的状况,不接受投诉
因为使用的是丐中丐配置,网站的速度稍慢请谅解
该Demo网站须要注册个帐号,对于懒癌患者可使用帐号123,密码 !QAZ2wsx 来进行使用python
Application Insights在如下简称AI,因此后面看到AI时候不要觉得是人工智能,这是Application Insights的缩写。git
既然写博客了,就能够不用在乎Persentation时候那样时间限制,能够随心所欲的写多点了。github
这个做为开篇章节先简单说几个最基础的东西:
①AI是什么
②AI是如何工做的
③AI使用入门web
AI是微软基于Azure平台所提供的一个应用程序性能管理 (APM) 服务, 使用它能够监视实时 Web 应用程序。 它会自动检测性能异常。 其中包含强大的分析工具来帮助诊断问题,了解用户在应用中实际执行了哪些操做。
虽然它是微软家的东西可是它毫不是只可用于微软家的产品,对js/java/python等之类非微软家的产品它也提供支持。同时github上也有不少其余开源的sdk可使用。
github上AI的topic能够了解下 https://github.com/topics/application-insights数据库
AI是依赖于在程序里集成SDK的形式由SDK发送数据来进行数据收集。app
下图是微软官方文档里的工做方式说明
工具
右下角带AI字样就是能够集成SDK的(都是“你的",你确定能集成)而后由它们发送数据到Azure上的AI,以后他在数据用于各类用途。
有一些地方不能进行整合的好比外部服务或者SQL之类的在AI里会体现为依赖项的形式。性能
另外默认状况下AI的数据是发给国际版的Azure上的AI,若是是国内版的AI记得要修改其终结点地址,否则会发到国际版去(就至关于没收集到数据)
能够参考 https://docs.azure.cn/zh-cn/azure-monitor/app/custom-endpoints
固然你能够将地址改成你本身搭建的一个logstash 上而后自个收集AI的SDK发送的数据来作本身的APM,就像咱们曾经干过的那样...测试
用最开始上文提到的帐号登陆以后,点击”全部资源“
找到一个叫bookStore的资源点击进入
下面我会简单说下左侧侧边栏框出来的4个内容
应用程序映射
有时候,你会不会想知道,你的站点调用了哪几个别人家的站点,调用了几个数据库,当前性能如何,错误率怎样。
应用程序映射就是为了解决你这个问题而生的。
在bookStore这个demo里它只调用了一个数据库,看起来好像没啥特别的,来看看我司的调用拓扑吧(测试环境的)
通常公司的内部调用可能会更接近我上面图的状况,再配合一些筛选,就能够从这个图里整理出你所想知道的某站点调用关系拓扑,以及性能和错误率等数据,
在整理站点间关系的时候这个仍是挺有用的。
实时指标流
正常来讲从程序触发了某个行为开始,此行为的数据要进入到AI里且能在图表上展现出这个数据,通常要延迟个三五分钟左右。
由于AI首先它是有一个独立线程它会收集数据,积攒起来,到达某个阈值或者某个间隔时间的时候它才会将数据一次性发送给AI。
否则每请求一次接口就将数据直接上报给AI这都要流量风暴了,由于上述机制首先数据发送的时候就会有延迟。
另外AI收集到数据后它也要作数据的处理,这也会产生必定的延迟。
可是有时候你新上线一个东西,你很急,你就想立马看到结果是怎样(好比线上改bug什么的😂)
此时你能够找到实时指标流,点进去,立马看到结果。
(我站点里点击下实时指标流里立马就能体现出来)
通常实时指标流延迟不会超过1秒,你操做以后立马会在AI的实时指标流面板里体现。
可是请注意:实时指标流里的任何数据都不会存储到AI里,因此它是属于转瞬即逝的数据,要看请抓紧。
同时此功能是不收费的,正统AI的收费就是收存储数据的¥,而由于实时指标流不存数据因此是免费的。
异常和性能
异常和性能这两个页面感受主要你们多点点,没啥太多好说的。
若是点到爆炸了能够在右上方发个哭脸投诉微软🤣
另外不管是异常仍是性能页面在最右下方会有要给“深刻钻取",里面点击”示例“以后能够看到你每一个请求的信息
点击以后会进入它的一个端到端事务的视图,通俗的说就是该请求下的调用链的状况
此页面你能够看到你请求哪里来的而后经历了什么步骤,而后分析出瓶颈再作优化。
若是你多个站点都是集成了AI,他会将其余站点的状况只要和这个请求有关联的一并反映到该视图下。
本篇入门级的就大概先说那么多。 后续有空的话再写一篇如何使用AI的语句查询(我以为这是AI最强的地方之一的功能,也是我我的平时用的最多的功能)。 有兴趣的能够点击”日志(分析)“本身先进去玩玩。