为什么需要前端监控?

如果你是一位前端工程师,那你一定不止一次去解决一些顽固的线上问题,你也曾想方设法复现用户的bug,结果可能都不太理想。

如何定位前端线上问题?一直以来,都是很头疼的问题,因为它发生于用户的一系列操作之后。错误的原因可能源于机型,网络环境,复杂的操作行为等等,很难在开发环境中复现出来。特别是前端在没有监控系统加持的情况下,往往需要人肉解决问题,还要应对产品的需求轰炸,真真是太难了!!!

今天给大家推荐一个在GitHub上线仅几个月,就已经获得 2K+星项目——前端业务日志监控工具 Webfunny

https://github.com/a597873885/webfunny_monitor

1、Webfunny概述

Webfunny是一款轻量级前端异常监控和前端性能监控系统,致力于帮助前端工程师定位并解决各种线上问题,确保项目健康良好的运行。支持千万级别日PV量,能够满足用户的各种场景需求。同时,针对不同企业和用户,提供一对一的定制化服务,满足更多业务需求。

官网:www.webfunny.cn

2、Webfunny 特点

  • 轻量级:可以随时部署在任何地方,支持ESC部署和Docker部署,非常快捷方便;

  • 功能全面:不限制应用的流量、自定义日志存储时间,能够适应更多高并发的场景;

  • 针对性强:针对前端使用场景研发,辅助前端开发,容易上手;

  • 无风险:所有监控数据都可以回流,监控日志都存储在你们自己的数据库内,不依赖任何第三方;

3、Webfunny 安装使用

基础环境

安装NodeJS,版本号:10.6.0及以上

第一步、下载(clone)最新部署包,初始化(不要改项目名!!!)

1.本地克隆代码$:git clone https://github.com/a597873885/webfunny_monitor.git使用码云仓库$:git clone https://gitee.com/webfunnyMonitor/webfunny_monitor.git(github网络不稳定,可以使用码云地址)2.在项目根目录下执行初始化命令和安装命令$:npm run init && npm install3.确认是否安装了pm2(执行$:pm2 -v),如果没有安装pm2,请执行安装命令$:npm install pm2 -g

第二步、配置数据库(Mysql)连接

1. 安装 Mysql 数据库(Mysql安装教程)
2. 创建数据库(webfunny_db)
创建数据库:webfunny_db。字符集设置:[Default Character set]:utf8、 [Default Collation]:utf8_bin

3. 数据库连接配置

进入webfunny_monitor/bin/mysqlConfig.js文件中
module.exports = {write: {ip: 'xxx.xxx.xxx.xxx',         // 远程ip地址port: '3306',                  // 端口号dataBaseName: 'webfunny_db',   // 数据库名userName: 'root',              // 用户名password: '123456'             // 密码}
}

第三步、本地部署运行

1) 此时此刻,本地配置已经完成了,尝试运行命令$: npm run prd(第一次运行使用此命令,重启使用:npm run restart)2) 打开浏览器,访问地址:http://localhost:8010/webfunny/register.html?type=1 (初始化管理员账号,并登录)3) 创建新项目后,可以看到探针部署教程,完成部署。

第四步、生产环境部署

1. IP地址或者域名配置

进入webfunny_monitor/bin/domain.js文件中(注意,对应的端口号要保持一致)

IP地址配置方式:module.exports = {localServerDomain: 'xxx.xxx.xxx.xxx:8011',    // 日志上报域名localAssetsDomain: 'xxx.xxx.xxx.xxx:8010',    // 前端页面域名localServerPort: '8011',                      // 日志上报端口号localAssetsPort: '8010',                      // 前端页面端口号
}域名配置方式:module.exports = {localServerDomain: 'www.baidu.com:8011',      // 日志上报域名localAssetsDomain: 'www.baidu.com:8010',      // 前端页面域名localServerPort: '8011',                      // 日志上报端口号localAssetsPort: '8010',                      // 前端页面端口号
}

配置完成后,浏览器访问以下地址,保证能够访问成功。

1.项目列表地址,请在控制台执行:curl http://xxx.xxx.xxx.xxx:8011/server/webMonitorIdList 或 curl http://www.baidu.com:8011/server/webMonitorIdList2.数据展示地址,请在浏览器访问:http://xxx.xxx.xxx.xxx:8010/webfunny/overview.html 或 http://www.baidu.com:8010/webfunny/overview.html

2. 添加执行权限(重要!!!否则无法生成数据库表)

正常情况下 createTable.sh, restart.sh 这两个脚本没有执行权限,需要用户手动授权。

linux、mac系统,需要在项目根目录下执行命令$:chmod 755 createTable.sh, chmod 755 restart.sh 进行授权。其他操作系统,请自行搜索授权方式【注意】如果不授权,可能无法自动创建每天的数据库表
第五步、配置报警信息(钉钉机器人)
webfunny提供了自定义报警拦截功能,执行 npm run init 命令后会出现interceptor目录,需要使用者修改代码,以实现钉钉机器人的报警方式,配置目录如下:
钉钉机器人配置文件:/interceptor/config/dingRobot.js,其他通知方式,请自己查看代码

以下步骤可不必执行,高并发的用户可以继续往下看。

第六步、启动消息队列(非必须)

1. 安装RabbitMq(建议您在云服务器上部署完成后再执行此步骤)

开启消息队列之前,请先 安装RabbitMq消息队列服务,ubantu:https://www.cnblogs.com/warm-stranger/p/11000996.html 安装完成后可以访问Url:http://IP地址:15672 查看消息队列的情况如果需要连接远程消息队列,请在根目录下找到 lib/RabbitMq.js调整代码配置。【小提示】:消息队列不易安装成功,如果中途出现问题,可以选择重启或者初始化云服务器。
2. 启动消息队列
RabbitMq 安装完成后,在 webfunny_monitor/bin/messageQueue.js 文件中找到变量名:messageQueue,将此变量的值设置为:true, 重启服务即可
第七步、配置读写分离(非必须)
1.配置好主从同步的多台MySQL数据库(最好是一主多从,一主一从尚可)2.进入webfunny_monitor/bin/mysqlConfig.js文件中module.exports = {write: {ip: 'xxx.xxx.xxx.xxx',         // 远程ip地址port: '3306',                  // 端口号dataBaseName: 'webfunny_db',   // 数据库名userName: 'root',              // 用户名password: '123456'             // 密码},// 高性能版支持此属性read: [{ host: "xxx.xxx.xxx.xxx", username: "root1", password: "123456" },{ host: "xxx.xxx.xxx.xxx", username: "root2", password: "123456" }]
}

项目地址:

https://github.com/a597873885/webfunny_monitor

关于Webfunny介绍到此就结束啦!

关于安装使用上有任何问题和建议,

欢迎添加下方客服交流、反馈哈~

微信号:webfunny_2020

--------------------------------------

下面是福利时间

本公众号读者现在

可享受2个月免费试用DEMO

????????????

添加Webfunny客服,

添加暗号“试用”

告知客服MM试用账号

方便后台帮你延长试用时间

推荐 GitHub 2K+ 星:前端监控工具 - webfunny 项目相关推荐

  1. 强烈推荐 GitHub 上值得前端学习的开源实战项目

    强烈推荐 GitHub 上值得前端学习的开源实战项目. Vue.js vue-element-admin 是一个后台前端解决方案,它基于和 element-ui 实现 基于 iView 的 Vue 2 ...

  2. 推荐 - Github标星113K的前端学习路线图

    Github上有个前端学习资源一直很火--developer-roadmap,这是国外的一个大佬整理出来的,标星113K,由此可见它有多受欢迎,国内的许多开发者都知道有这么一个项目存在,但苦于英文水平 ...

  3. github多星java项目_可以吹爆的GitHub高星数的干货项目!!

    今天要给大家分享的项目可以说是满满的干货啊,如果你是想学Java的初学者亦或是将要面试的有经验的小伙伴,小编觉得这两个项目都是可以帮到你们的,有很多关于Java方面的核心知识,让你学习路上不心慌,哈哈 ...

  4. Github标星3K+,超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 光学字符识别(OCR)技术已经得到了广泛应用.比如发票上用来识别关键字样,搜题Ap ...

  5. 两天标星2.2K!GitHub 开源自动刷喵币项目?

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 开源最前线(ID:OpenSourceTop) 猿妹综合整理 ...

  6. GitHub 标星 1.6w+,我发现了一个宝藏项目,推荐大家学习

    GitHub 标星 1.6w+,我发现了一个宝藏项目,推荐大家学习 本文链接:https://blog.csdn.net/u013486414/article/details/103274892 大家 ...

  7. GitHub 5W 星:一行命令下载全网视频的两个开源项目

    大家好,我是你们的 猫哥,那个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 前言 相信大多数人都有想下载某个网站上的视频的想法. 比如  B站.优酷.YouTube.腾讯视频等网站上的优质视频. 但是大多数视 ...

  8. 推荐 12 个学习前端必备的神仙级工具类项目与网站

    大家好,我是你们的 猫哥,一个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 前言 猫哥是一个常年混迹在 GitHub 上的猫星人,所以发现了不少好的前端开源项目.常用技巧,在此分享给大家. 公众号:前端Git ...

  9. GitHub标星1.6K,大佬开源的抖音项目,刷屏全网!

    点击上方"Github爱好者社区",选择星标 回复"资料",获取小编整理的一份资料 作者:GG哥 来源:GitHub爱好者社区(github_shequ) 这是 ...

最新文章

  1. 30 万奖金悬赏 | CSDN 软件开发精英赛即日启动!
  2. TCP三次握手与四次断开
  3. MySQL使用Amoeba作为Proxy时的注意事项
  4. 原核表达常见问题解答
  5. 未能为服务器,未能为数据库 'TEMPDB' 分配新页
  6. SAP Fiori应用里的get org sales target
  7. ue4材质节点怎么用_济南装修:阳台储物柜用什么材质好?怎么保养阳台储物柜?...
  8. Intel® Nehalem/Westmere架构/微架构/流水线 (3) - 流水线前端
  9. div 中的i标签如何点击事件_前端优化:语义标签进化史
  10. Atitit.android webview h5运行环境总结
  11. 三菱FX3U,三轴搬运PLC程序,控制三个台达B2伺服,信捷触摸屏的程序,有电气CAD图纸
  12. oracle gbk ebcdic,EBCDIC和GBK/GBK2312的转换
  13. mix2线刷开发板救砖_小米MIX 2S手机开不了机_线刷救砖教程_安卓刷机工具_一键刷机...
  14. 【涨知识】你家用的是A级锁还是B级锁,什么锁最安全?
  15. 微信小程序数据数据绑定显示NaN
  16. win7或win2008系统中,出现【已停止工作,联机检查解决方案并关闭该程序,关闭程序】解决方法!
  17. linux 下 gcc编译程序时,-I(大写i) 与-L(大写l)-l(小写l) 的作用
  18. 如何计算给定二叉树中的叶节点数?
  19. python调用谷歌地图_使用Python调用谷歌地图并记录运动轨迹进行可视化
  20. 朴素贝叶斯(Naive Bayes),联合概率,条件概率,先验概率,后验概率

热门文章

  1. 浅谈C/C++引用和指针的联系和区别
  2. wsl使用可视化界面_通过 VcXsrv 在 WSL2 上使用图形化界面(xfce4)
  3. tensorflow测试gpu_如何检验 tensorflow-gpu 安装成功 ?
  4. Java基础day22
  5. 问:新来的同事都自愿996,这是内卷还是努力啊?
  6. 清华团队最新成果:可致特朗普能咏比特币,AI写古诗“更上一层楼”
  7. 厉害了!Python+matplotlib制作8个排序算法的动画
  8. AI基础:特征工程-文本特征处理
  9. 推荐:学习自然语言处理(NLP)的学习方法和资料合集
  10. 去除冗余token的DETR效果怎么样?NUS颜水成团队提出端到端的PnP-DETR结构