Core + Vue 后台管理基础框架7——APM
1、前言
APM,又称应用性能统计,主要用来跟踪请求调用链,每个环节调用耗时,为我们诊断系统性能、定位系统问题提供了极大便利。本系统采用的是Elastic Stack体系中的APM,主要是之前部门搞PCI认证,其中有一环ELK,而刚好ELK就是我搭建的,这里就顺便使用ELK体系的APM,没必要再另起一套了。
2、实现
首先,你需要搭建好ELK平台,这里搭建过程不做赘述,大家参考Elastic Stack官网,简单明了。
然后,安装Elastic APM Server,就是一个Linux RPM包,一行Linux命令的事情,也不做赘述。这里交代下APMServer的几个关键配置,以centos7为例。在/etc/apm-server目录下,有个apm-server.yml配置文件,修改其中如下几处:
apm-server访问地址,改成你自己服务器IP和端口:

APM Agent访问token凭证,这是个静态口令,你可以随意调整:

SSL启用,代表各agent需要以https方式来链接apm-server,换成你自己的证书和key:

到ES存储的链接,同样需要调整成你自己的:

其中各项配置的参数,配置文件中已经注释的比较清楚了,大概看下其描述我们就知道该怎么配。
Apm-server配置好之后,接下来就是我们应用中引入和配置agent了。首选,在我们待监控应用系统配置文件appsetting.json中,加入如下一段配置:

SecretToken是我们服务端配置的那个secret_token,必须一致。ServerURLs是apmserver访问地址,对应服务端的host参数。ServiceName是我们系统标识,ES和kibana中我们会以此来区分不同应用的监控数据。VerifyServerCert代表是否需要校验apm-server服务端证书,这里方便起见,直接配置false了,否则agent端会直接把到apm-server的链接给拒绝。
然后,引入Elastic.Apm.NetCoreAll包,ElasticStack包含各种原子包,可以分别监控.NETCORE、aspnetcore、EF等,可以根据具体需求引入对应包,而Elastic.Apm.NetCoreAll直接囊括所有,这里因为系统要监控应用、EF、数据库执行等,所以直接引用了这个大而全的包。之后,引入中间件:

此中间件引入最好放在最靠前的位置,因为要监控整条链路。
3、效果
登录系统,然后随便开几个页面,如下:

然后,我们进入kibana,找到对应的APM菜单进去:

右边列表名称那一栏,是我们agent配置中,对应的ServiceName,找到对应系统,点击进去:


两张图上边一张是请求负载情况,下边是应用系统收到的每个http请求,我们以searchroles这个为例,进去看看:

可以看到,searchroles的所有请求数量,每个请求各环节执行时间,最下面默认展示最近一次请求的跟踪数据,里边可以直观体现本次http请求处理总时间、数据库执行时间,如果有跨服务调用,还会统计其他服务调用时间,甚至帮我们追踪到了执行的SQL,非常之方便,开箱即用。所以,以后再也不要说EF性能低、出问题不好定位之类的话,一定是你姿势不对。
Core + Vue 后台管理基础框架7——APM的更多相关文章
- Core + Vue 后台管理基础框架0——开篇
1.背景 最近,打算新开个项目,鉴于团队技术栈,选型.net core + vue,前后端分离.本打算捡现成的轮子的,github上大致逛了逛,总发现这样那样的不太适合心中那些“完美实践”,例如:Ab ...
- Core + Vue 后台管理基础框架4——前端授权
1.前言 上篇,我们讲了后端的授权.与后端不同,前端主要是通过功能入口如菜单.按钮的显隐来控制授权的.具体来讲,就是根据指定用户的制定权限来加载对应侧边栏菜单和页面内的功能按钮.我们一个个来讲. 2. ...
- Core + Vue 后台管理基础框架2——认证
1.前言 这块儿当时在IdentityServer4和JWT之间犹豫了一下,后来考虑到现状,出于3个原因,暂时放弃了IdentityServer4选择了JWT: (1)目前这个前端框架更适配JWT: ...
- Core + Vue 后台管理基础框架3——后端授权
1.前言 但凡业务系统,授权是绕不开的一环.见过太多只在前端做菜单及按钮显隐控制,但后端裸奔的,觉着前端看不到,系统就安全,掩耳盗铃也好,自欺欺人也罢,这里不做评论.在.NET CORE中,也见过不少 ...
- Core + Vue 后台管理基础框架9——统一日志
1.背景 前阵子有园友留言,提到日志相关的东西,同时,最近圈子里也有提到日志这个东西.一个充分.集中的统一日志平台还是很有必要的,否则系统出问题了只能靠猜或者干瞪眼.何谓充分,日志记录满足最低要求.出 ...
- Core + Vue 后台管理基础框架1——运行系统
1.down源码 git clone https://github.com/KINGGUOKUN/SystemManagement.git,项目目录如下: 2.还原数据库 找到项目根目录下System ...
- Core + Vue 后台管理基础框架8——Swagger文档
1.前言 作为前后端分离的项目,或者说但凡涉及到对外服务的后端,一个自描述,跟代码实时同步的文档是极其重要的.说到这儿,想起了几年前在XX速运,每天写完代码,还要给APP团队更新文档的惨痛经历.给人家 ...
- hsweb 企业后台管理基础框架
hsweb 详细介绍 业务功能 现在: 权限管理: 权限资源-角色-用户. 配置管理: kv结构,自定义配置.可通过此功能配置数据字典. 脚本管理: 动态脚本,支持javascript,groovy, ...
- 基于bootstrap的漂亮网站后台管理界面框架汇总
基于bootstrap的漂亮网站后台管理界面框架汇总 10个最新的 Bootstrap 3 管理模板 这里分享的 10 个模板是从最新的 Bootstrap 3 管理模板集合中挑选出来的,可以帮助你用 ...
随机推荐
- 在HADOOP中使用MRUNIT进行单元测试
在HADOOP中使用MRUNIT进行单元测试 前提 1. 了解JUnit4.x的使用. 2. 了解Mock的概念在单元测试中的应用. 3. 了解Hadoop中MapReduce的编程模型. 如果您对J ...
- Mac使用sublime text3的快捷键
符号说明⌘:command⌃:control⌥:option⇧:shift↩:enter⌫:delete 打开/关闭/前往⌘⇧N 打开一个新的sublime窗口⌘N 新建文件⌘⇧W 关闭sublime ...
- DjangoModels
传智博客的python的笔记 数据库配置 ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换 ...
- Spring MVC 增加静态资源配置mvc:resources跳转不了链接
在使用mvc:resources 要配合 <mvc:annotation-driven/> 一起
- 剑指CopyOnWriteArrayList
上期回顾 之前的一篇 剑指ConcurrentHashMap[基于JDK1.8] 给大家详细分析了一波JUC的ConcurrentHashMap,它在线程安全的基础上提供了更好的写并发能力.那么既然有 ...
- Flask向模板中JS传值简便方式
后台传值: return render_template('statistics/numberofuserlogin/login_number.html', result_json = json.du ...
- IT培训的背后,是“韭菜”的躺赚梦!
作者:九歌 本文转自公众号:Hack 本文只谈"骗局",不谈其他,绝不引战,如有错误,希望指出我会及时改正 导语 为什么要写这篇文章呢,近些年培训这个话题也比较火,很多在看这篇文章 ...
- Linux USB 鼠标驱动程序详解(转)
Linux USB 鼠标驱动程序详解 USB 总线引出两个重要的链表!一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表.设备链表包含各种系统中的 USB 设备以 ...
- Vimium - 让你体验Geek般的浏览体验
相信很多电脑高手们都会寻找一一些快捷高效的操作方式,如经常利用键盘的快速操作,让你脱离鼠标,可以让你不用花太多精力地去移动细小的指针进行操作,使得工作的效率提高许多. 不过,实际上很多时候我们还是不得 ...
- 基于arduino的红外传感系统
一.作品背景 在这个科技飞速发展的时代,物联网已经成为了我们身边必不可少的技术模块,我这次课程设计做的是一个基于arduino+树莓派+OneNet的红外报警系统,它主要通过识别人或者动物的运动来判断 ...