一、前端监控现状

近年来,前端监控是越来越火,目前已经有很多成熟的产品供我们选择使用,如下图所示

1. 前端监控是什么?前端监控一般分为三种

,分别为**页面埋点、性能监控以及异常监控。**

2.实现思路

1.手写埋点
可以自主选择需要监控的数据然后在相应的地方写入代码。

这种方式的灵活性很大,但是唯一的缺点就是工作量较大,每个需要监控的地方都得插入代 码。

2. 无埋点
不需要开发者手写埋点了,而是统计所有的事件并且定时上报。

这种方式虽然没有前一种方式繁琐了,但是因为统计的是所有事件,所以还需要后期过滤出需要的数据。

4. 性能监控

-性能监控可以很好的帮助开发者了解在各种真实环境下,页面的性能情况是如何的。

5. 异常监控

– 对于代码运行错误,通常的办法是使用 window.onerror 拦截报错。
该方法能拦截到大部分的详细报错信息,但是也 有例外
对于跨域的代码运行错误会显示 Script error. 对于这种情况我们需要给 script 标签添加 crossorigin 属性
对于某些浏览器可能不会显示调用栈信息,这种情况可以通过 arguments.callee.caller 来做栈递归
对于异步代码来说,可以使用 catch 的方式捕获错误。比如 Promise 可以直接使用 catch 函数, async await 可以使用 try catch 。 但是要注意线上运行的代码都是压缩过的,需要在打包时生成 sourceMap 文件便于 debug。
对于捕获的错误需要上传给服务器,通常可以通过 img 标签的 src 发起一个请求。

二、linux安装sentry 个人踩了无数坑总结2022最新安装踩坑日记希望帮助到你

![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/39a8281450724538a2fb79f5cb3e2bc7~tplv-k3u1fbpfcp-watermark.image” />最要的一步
python -V 检查是否是3.0以上 如果不是卸载安装3.0以上 第一个坑
github

https://blog.csdn.net/qq_42306041/article/details/105989393 安装最新链接

# 卸载老版本的 docker 及其相关依赖
yum remove docker docker-common container-selinux docker-selinux docker-engine

# 更新yum
yum update

# 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源
yum install -y yum-utils

# 添加yum源
yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新索引
centos7

yum makecache fast

centos8

yum makecache

# 安装Docker-ce
第一步,卸载旧版本Docker。

# 卸载旧版本Docker

命令:yum remove docker docker-common docker-selinux docker-engine

# 查询docker安装过的包

命令:yum list installed | grep docker

# 删除安装包

命令:yum remove docker-ce.x86_64 docker-ce-cli.x86_64

第二步,安装依赖包。

# 安装依赖包

命令:yum install yum-utils device-mapper-persistent-data lvm2 -y

第三步,添加docker yum源。

# 设置yum源,配置 docker-ce 仓库

命令:yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

[第一种:yum-config-manager –add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)

第二种:yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)]

第四步,安装Docker CE版。

# 可以查看所有仓库中所有docker版本,并选择特定版本安装

命令:yum list docker-ce –showduplicates | sort -r

# 安装指定版本

命令:yum -y install docker-ce-19.03.9

# 安装最新版本的docker

命令:yum install docker-ce -y

第五步,启动Docker后台服务。

# 启动docker

命令:systemctl start docker

第六步,设置开机启动。

# 允许开机启动

命令:systemctl enable docker

第七步,测试Docker。

# 测试Docker

命令:docker run hello-world

若结果出现“Hello from Docker!”,则安装docker成功。

第八步,查看docker版本。

# 没启动docker之前查看docker版本

命令:docker -v

或docker version
安装Docker Compose
# 安装依赖,安装epel源

命令:yum -y install epel-release

# 安装Python 3和pip 3

命令:yum install python3 pip3 -y

# 更新pip3

命令:pip3 install –upgrade pip

# 安装docker-compose

全部安装就不用创建软链接了

pip3 install –upgrade –force-reinstall –no-cache-dir docker-compose && ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

命令:pip3 install docker-compose

# 查看docker compose的版本

1.检查不到执行

pip3 install –upgrade –force-reinstall –no-cache-dir docker-compose && ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

2.执行这个就不执行上面了命令:docker-compose version

# 创建软链接,避免一些应用的安装脚本无法读取docker-compose命令:

sudo ln -fs /usr/bin/docker-compose /usr/local/bin/docker-compose

安装Sentry
第一步,下载onpremise。

命令:mkdir /data

cd /data

wget https://github.com/getsentry/onpremise/archive/20.12.1.tar.gz

tar -zxvf 20.12.1.tar.gz

第二步,编辑配置文件.env。

命令:cd self-hosted-20.12.1

vim .env

将文件中的“SENTRY_EVENT_RETENTION_DAYS=90”改为“SENTRY_EVENT_RETENTION_DAYS=7”,一般保存7天事件数据,视自己情况而定。

在文件最后可添加“限制Kafka磁盘使用量”的配置,新版Sentry使用的Kafka会大量的写入日志信息,特别容易导致磁盘跑满,具体限制额度根据自己的磁盘情况而定。添加代码如下:

Sentry disk cleanup

[kafka]

KAFKA_LOG_RETENTION_HOURS=24

KAFKA_LOG_RETENTION_BYTES=53687091200

KAFKA_LOG_SEGMENT_BYTES=1073741824

KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS=300000

KAFKA_LOG_SEGMENT_DELETE_DELAY_MS=60000
第三步,安装sentry。

# 执行安装脚本

命令:cd self-hosted-20.12.1

./install.sh

若结果提示“ERROR: Volume sentry-data declared as external, but could not be found. Please create the volume manually using docker volume create –name=sentry-data and try again.”等类似错误,则需要依次执行以下命令将对应目录挂载到容器,然后再重新执行以上安装脚本:

sudo docker volume create –name=sentry-data

sudo docker volume create –name=sentry-postgres

sudo docker volume create –name=sentry-redis

sudo docker volume create –name=sentry-zookeeper

sudo docker volume create –name=sentry-kafka

sudo docker volume create –name=sentry-clickhouse

sudo docker volume create –name=sentry-symbolicator

注意:若安装失败,则需要删除掉onpremise-20.12.1目录,然后重新解压20.12.1.tar.gz文件,再安装即可。

若安装完成后结果提示“You’re all done! Run the following command to get Sentry running: docker-compose up -d”,则说明安装sentry成功,后面使用命令“docker-compose up -d”启动服务即可。

注意:命令“docker-compose restart”会导致重启异常,因此不建议使用。

第四步,创建账号。

执行安装脚本后,结果末尾会提示“Would you like to create a user account now”,这时需要选择“Y”,然后输入一个邮箱地址,输入两次密码,这样九创建好了一个默认管理员账号,需要注意的是,邮箱地址必须是正确的邮箱地址,不然通不过校验。等服务启动后通过http://x.x.x.x:9000就可以访问。

第五步,启动所有服务。

#启动服务

命令:docker-compose up -d

第六步,验证docker启动状态。

# 验证状态

命令:docker ps

第七步,访问。

服务启动后通过 http://x.x.x.x:9000就可以看见sentry的界面。

第八步,其他常用命令。

# 修改配置后,重启Sentry

命令:sudo docker-compose restart web worker cron sentry-cleanup

# 启动Docker

命令:sudo systemctl start docker

或sudo service docker start

# 关闭Docker

命令:sudo systemctl stop docker

或sudo service docker stop

# 重启Docker

命令:sudo systemctl restart docker

或sudo service docker restart

# 更新Docker CE

命令:sudo yum update docker-ce

# 卸载Docker CE

命令:sudo yum remove docker-ce

# 主机上的镜像、容器、卷或者自定义配置文件是不会自动删除的,需要使用以下命令手动删除

命令:sudo rm -rf /var/lib/docker

# 卸载Docker Compose

命令:sudo pip3 uninstall docker-compose

或sudo pip uninstall docker-compose

# 卸载老版本Docker

命令:sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

# 希望能帮助到你!