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 管理模板集合中挑选出来的,可以帮助你用 ...
随机推荐
- leetcode第22题:括号生成
力扣上的题目可以大致分为以下种类: 对某种复杂规则的彻底解析,很有可能要构造状态机,充分考虑边界情况. 对某种数据结构及算法的应用. 对数学概念.遍历.动态规划等的综合应用. 通过分析,本题应该属于1 ...
- [洛谷P3369] 普通平衡树 Treap & Splay
这个就是存一下板子...... 题目传送门 Treap的实现应该是比较正经的. 插入删除前驱后继排名什么的都是平衡树的基本操作. #include<cstdio> #include< ...
- mac上svn: This client is too old to work with working copy 问题的解决
安装svn时,提示This client is too old to work with working copy........原因:svn的版本过旧,安装1.8的svn即可.下面简要说明一些步骤: ...
- 吴裕雄--天生自然 python语言数据分析:开普勒系外行星搜索结果分析
import pandas as pd pd.DataFrame({'Yes': [50, 21], 'No': [131, 2]}) pd.DataFrame({'Bob': ['I liked i ...
- 我的python面试简历
分享前一段我的python面试简历,自我介绍这些根据你自己的来写就行,这里着重分享下我的项目经验.公司职责情况(时间倒序),不一定对每个人适用,但是有适合你的点可以借鉴 我的真实经验:(14年毕业,化 ...
- Dykin's blog
回归分析是一种很重要的预测建模技术.主要是研究自变量与因变量之间的因果关系.本文将会从数学角度与代码角度分析不同类型的回归.当你想预测连续型的非独立变量,或者对一系列独立变量或输入项有所反应时,就会使 ...
- Flutter调研(1)-Flutter基础知识
工作需要,因客户端有部分页面要使用flutter编写,需要QA了解一下flutter相关知识,因此,做了flutter调研,包含安装,基础知识与demo编写,第二部分是安装与环境配置. —— Flut ...
- almost最好的Vue + Typescript系列02 项目结构篇
基于vue-cli 3.x,配合typescript的环境构建的新vue项目,跟以前的结构相比,有了一些变化,下面我们来简单的了解一下 基本结构: node_modules: 项目中安装的依赖模块 p ...
- Levenshtein Distance(编辑距离)算法与使用场景
前提 已经很久没深入研究过算法相关的东西,毕竟日常少用,就算死记硬背也是没有实施场景导致容易淡忘.最近在做一个脱敏数据和明文数据匹配的需求的时候,用到了一个算法叫Levenshtein Distanc ...
- 【译文连载】 理解Istio服务网格(第七章 安全)
全书目录 第一章 概述 第二章 安装 第三章 流控 第四章 服务弹性 第五章 混沌测试 第六章 可观测性 本文目录 第7章 安全 7.1 身份认证 7.1.1 Kubernetes上的Istio的身份 ...