• Stars
    star
    875
  • Rank 52,157 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 6 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

灯塔开源文档地址

灯塔

介绍

fee(灯塔) 是前端监控系统,贝壳找房主要前端监控系统,服务公司上百条产品线。 特点:架构简单、轻量、支持私有化部署。可收集前端设备、系统、环境信息, 可以对前端页面js报错、资源错误、性能指标进行配置报警等, 并且可以通过上报错误信息引导用户快速定位解决问题。

系统功能

用户行为

  • 用户在线时长

在线时长

  • 菜单点击量

菜单点击量

  • 用户增长

用户增长 用户增长

异常监控

  • 页面性能

页面性能 页面性能

  • 错误看板

错误看板

报警

  • 报警配置

报警配置

  • 报警日志

报警日志

环境搭建

下述mysql以及redis环境的搭建,大家可以移步配套 Docker集成环境一键部署(欢迎大家star)。可以帮助大家一键创建相关服务环境,免去繁琐的环境部署与配置给大家带来的不必要的时间开销!

  1. mysql

  2. Node.js

  3. redis

  4. 克隆项目 在克隆项目之前确保你的nodejsmysqlredis环境是可用的。

     mkdir -p ~/www/ \
     &&  cd ~/www/ \
     &&  git clone [email protected]:LianjiaTech/fee.git \
     &&  cd fee

    ~/www/openfee找到我们克隆的项目

  5. 配置MySQL

  • server/src/configs/mysql.js中修改主机地址/数据库端口/数据库用户名/数据库密码/数据库库名
  • 在数据库中创建一个空的名字叫做『platform』的数据库。
    const development = {
      host: '127.0.0.1', // 主机地址
      port: '3306', // 数据库端口
      user: 'root', // 数据库用户名
      password: '00000000', // 数据库密码
      database: 'platform'  // 数据库库名
    }
  1. 配置redis
  • server/src/configs/redis.js中修改主机地址或redis端口
    // 开发环境配置
    const development = {
      host: '127.0.0.1', // 主机地址
      port: '6379' // redis端口
    }
  1. 安装依赖,在项目 server 目录下
    npm install
  2. 编译 server,打开一个新的窗口在项目 server 目录下
    npm run watch
  3. 启动server服务,在项目 server 目录下
    npm run dev
  4. 创建数据库
  • a. 在项目 server 目录下执行下列指令,会在当前目录下生成 init.sql 文件
    npm run fee Utils:GenerateSQL 1 '2020-01' '2020-07' > init.sql
  • b. 复制 init.sql中的内容(不包括文件中的前两行),完成数据库表的创建。
  1. 初始化样例数据。在项目 server 目录下,执行下列指令

    npm run fee Utils:TemplateSQL

    执行成功后,样例数据会被写入数据库中。

  2. 安装 Client 依赖,在项目 client 目录下

    npm install
  3. 启动 Client 服务,在项目 client 目录下

    npm run dev
  4. 访问本地服务: 127.0.0.1:8080

  • a. 使用默认管理员账户登录
  • b. 或进行注册登录,就能看到模板项目数据了。

npm依赖插件说明

dependencies =>

mysql           =>  mysql客户端
ioredis         =>  redis客户端
knex            =>  SQL Query Builder
@adonisjs/ace   =>  命令注册/管理工具
node-schedule   =>  node版crontab, 用于进程调度
log4js          =>  日志记录
lei-stream      =>  流式读取/写入文件. 对node的ReadStream/WriteStream的简单封装
query-string    =>  解析url
ua-parser-js    =>  解析ua
axios           =>  发起http请求
shelljs         =>  执行常见shell命令, 例如, mkdir -p
date-fns@next   =>  替代moment进行日期操作, 目前2.0版本还处于alpha状态, 待正式发布后即可取消@next标记
ini             =>  读取线上环境的ini配置文件
ipip-datx       =>  将ip转换为对应坐标, ipip.net出品

devDependencies =>

node-rdkafka                =>  获取kafka数据, 如果node-kafka无法运行, 考虑本机中是否有librdkafka库 => `sudo apt-get install librdkafka-dev` & 本机是否安装了Python2.7
                            =>  说明: node-rdkafka需要使用gcc进行编译, 但Jinkins上没有相应的编译脚本, 为了能从Jinkins上编译通过, `node-rdkfka`放在了dev依赖中.
                            =>  线上发布时, 直接把预编译好的tar文件解压到node_module文件夹里, 跳过gcc编译流程(开发机环境和线上环境一致, 因此使用开发机进行预编译)
                            =>  预编译时需要使用和线上node一致的版本
                            =>  打包命令demo => `tar cfv  pre_package.tar.gz node-rdkafka nan bindings`
                            =>  打包完成后使用 `sz node-rdkafka.tar.gz` 即可将文件下载到本机

@babel/*                    =>  7.0系列, 方便脱离对node环境的依赖, 使用js的最新特性
babel-plugin-root-import    =>  解除对相对路径的依赖(项目中通过webpack.config.js(WebStrom) & jsconfig.json(VSCode)辅助编辑器识别路径)
nodemon                     =>  动态启动/载入项目
standard                    =>  JS Standard代码规范

打点服务Demo搭建

参见打点服务Demo搭建

加入群来和开发人员讨论问题

作者书籍

项目搭建背景,以及前端监控平台搭建原理,设计思路,一步一步教你做。

购书链接

License

MIT

Copyright(c) 2017 Lianjia, Inc. All Rights Reserved

More Repositories

1

BELLE

BELLE: Be Everyone's Large Language model Engine(开源中文对话大模型)
HTML
7,841
star
2

bruno

An enterprise-class package of Flutter components for mobile applications. ( Bruno 是基于一整套设计体系的 Flutter 组件库。)
Dart
3,258
star
3

retrofit-spring-boot-starter

A spring-boot starter for retrofit, supports rapid integration and feature enhancements.(适用于retrofit的spring-boot-starter,支持快速集成和功能增强)
Java
1,762
star
4

keframe

Components that optimize Flutter fluency.(Flutter 流畅度优化的通用方案,轻松解决卡顿问题)
Dart
935
star
5

hetu

低代码平台, 可视化编辑器,单手打代码,解放你的双手
TypeScript
795
star
6

sosotest

sosotest自动化测试平台
Python
509
star
7

kob

中心化的作业调度系统,定义了任务调度模型,实现了任务调度的统一管理和监控。
Java
423
star
8

d18n

d18n is a data desensitization tool for RDBMS.
Go
162
star
9

gson-plugin

辅助 Gson 库的 gradle 插件,防止 Json 数据解析类型异常。
Groovy
151
star
10

Beike_AspectD

Flutter AOP framework. Now compatible with Flutter v3.10.5
Dart
144
star
11

ProgressLayout

A simple Android library about progress layout
Java
89
star
12

flutter_fdb_package

Flutter应用的调试工具,协助采集性能优化、设计走查、QA测试等数据问题 ,提供UI拾取、UI标尺、取色器、内存信息、FPS检测和展示页面代码等功能。
Dart
85
star
13

LJRouter

Objective-C
83
star
14

lightning

lightning is a tool for binlog parsing. It can generate original SQL or flashback SQL.
Go
74
star
15

ke-ve

一站式的可视化服务集成平台
JavaScript
58
star
16

bk_flutter_image

flutter image,降低内存使用
Dart
48
star
17

flutter_ui_auto_test

贝壳 flutter UI 自动化测试
Dart
47
star
18

json-diff

A tool for find difference between two json-string. Support JSON string depth comparison, support JSON array unordered comparison. (用于比较两个JSON字符串的工具,支持JSON字符串深度比较,支持无序数组比较)
Java
46
star
19

dgraph-sql

Java
40
star
20

athena

An open-source implementation of sequence-to-sequence based speech processing engine
C++
38
star
21

Snap

网页截图
JavaScript
34
star
22

kbms

一个轻量级c++网络框架
C++
31
star
23

UIC

User Information Center
Go
30
star
24

flutter_beike_engine

C++
25
star
25

bucky-core

bucky框架核心模块
JavaScript
14
star
26

cicada-ci

TypeScript
12
star
27

BKFlutterWebNativeBridge

Flutter Web和Flutter Mobile桥接。
Objective-C
9
star
28

benchmark

Objective-C
8
star
29

newsboy

web platform to manage api, support mock service and api test
JavaScript
8
star
30

ked

ked 是基于 Ke Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。
TypeScript
4
star
31

bucky-cli

bucky框架业务使用脚手架
JavaScript
3
star
32

Storm-Counter

Storm consumer command queue from Kafka, then parse and excute command to storage numbers into Hbase
Java
2
star
33

athena-model-zoo

Athena-model-zoo can provide a lot of kinds of pre-trained models to be used for others.
2
star
34

gson-plugin-sdk

gson-plugin依赖这个sdk
Java
1
star