当前位置: 首页 > news >正文

基于Sentry打造前端性能监控平台

为什么要搭建前端性能监控平台?

1.研发人员并不能避免百分百没有bug,以及测试同学也不能覆盖整个项目。

2.如果等待用户反馈,时间周期长,不易复现,增加额外的沟通成本,领导也不高兴。

上线的项目我们也要对他进行个兜底原则,至少在一定范围内我们知道它内部发生了什么,什么时候,什么地方,怎样的方式。

我们的期望: 用户踩了雷,我们要同步的知道问题,第一时间排掉。

自己去写一个这样的监控系统不是很难,但是需要时间,也需要调试,对于小团队来说,时间就是成本,现成的开源项目sentry反馈都不错,所以优选还是他。(工作久了,觉得精力有限,这些活用开源的就好,免费,又好用不香吗)。

搭建sentry两种方式。

1:商业版, 优点:省事,只需要配置就好了,有限额(花钱可以解决)

2:开源版 优点:一劳永逸,不用向sentry

好评: 商业版和开源版功能讲都差不多,这也是sentry社区意思 会尽量保证商业版本和开源版本一致

这里是个例子主动抛出了异常,后面开启sourcemap 精准定位,邮件通知,基本无缝衔接

能看到调用栈,以及上下文,用户的环境,ip地址,浏览器环境,应有尽有

安装方式:(docker安装)

安装docker
 $ curl -sSL https://get.daocloud.io/docker | sh

安装 docker-compose
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.28.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

这里注意版本需要1.28.0

检查是否安装成功
docker-v

docker-compose -v

随便找个目录下

git clone https://github.com/getsentry/onpremise.git
 $ cd onpremise
$ ./install.sh

过程很漫长,最后会让你输入一个管理员账户

docker-compose up -d//启动 

然后访问http://localhost:9000 (服务器的话就是你ip)

这里sentry默认端口是9000,不建议修改默认端口,注意其他进程别占用

接下来设置邮件服务

当前目录应该还在onpremise下

vim sentry/config.yml 

这里用的是QQ

mail.username 你的邮箱

mail.password 授权码

use-tls 开启

mail.from ‘admin<你邮箱>’

这里admin前缀 就是发邮件时你的发件名字 自己可以修改 后面的跟着邮箱

!! smtp中的密码不是你邮箱的真实密码,而是你邮箱安全设置的smtp授权码

docker-compose stop//停止

docker-compose up -d//再次启动 

邮件服务搭建完毕 !!!

点击头像可以测试下

基本搭建就完成了 接下来会说一些在react umi中项目中应用 先更到这里

相关文章:

  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • 强化学习(ICML2022)
  • CS5181E 单节锂电池充电管理IC特点及应用
  • 计算机毕业论文基于springboot的社区物业服务管理项目源码
  • Hbase大批量数据迁移之BulkLoad
  • java计算机毕业设计外贸服装订单管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  • C#基于asp.net的社区团购网站
  • Spring Boot + Netty + WebSocket 消息推送
  • 【Elasticsearch教程13】Mapping字段类型之nested
  • Java基础之:线程可重入锁,公平锁,非公平锁
  • MockServer 服务框架设计
  • 【web-利用信息泄露】(10.2)收集公布的信息、使用推论
  • java计算机毕业设计文档资料管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  • JS中数组reduce()方法使用
  • 国稻种芯百团计划行动 任万军:减穴稳苗方法提高稻米品质
  • ----------
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【node学习】协程
  • css属性的继承、初识值、计算值、当前值、应用值
  • Django 博客开发教程 8 - 博客文章详情页
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Leetcode 27 Remove Element
  • Less 日常用法
  • Python十分钟制作属于你自己的个性logo
  • Travix是如何部署应用程序到Kubernetes上的
  • Yeoman_Bower_Grunt
  • 番外篇1:在Windows环境下安装JDK
  • 聚类分析——Kmeans
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 探索 JS 中的模块化
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 微服务框架lagom
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 新书推荐|Windows黑客编程技术详解
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 转载:[译] 内容加速黑科技趣谈
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • scrapy中间件源码分析及常用中间件大全
  • 正则表达式-基础知识Review
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # Maven错误Error executing Maven
  • # 达梦数据库知识点
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #数学建模# 线性规划问题的Matlab求解
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (3)选择元素——(17)练习(Exercises)
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (九)One-Wire总线-DS18B20
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (五)Python 垃圾回收机制
  • (一)为什么要选择C++
  • (转)Linux下编译安装log4cxx