前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >纪录一次sentry升级历史

纪录一次sentry升级历史

作者头像
魔王卷子
发布2020-03-13 15:27:11
8320
发布2020-03-13 15:27:11
举报
文章被收录于专栏:魔王卷子的专栏

起因

IOS同事说他发现了sentry的一个bug。说是因为9.0.0的bug导致debug file 提示上传成功,但是上网站却发现根本没有上传。所以就开始了我的升级之路。

调研

因为我的sentry不仅仅用在了服务器端,而且还用在了客户端上。所以我需要解决如果sentry停止了,那么如何解决请求等待的问题。

Nginx

那么我首先想到的就是修改nginx的配置文件。

下面是我更新的相关内容

代码语言:javascript
复制
server {
    listen       80;
    server_name  track.example.com;

    set_real_ip_from 127.0.0.1;
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;

    location / {
        // 添加这两行
        default_type text/html; // 设置 content-type 表示这是一个网页
        return 202; # 返回 202 表示已经接收,但是并不处理
        client_max_body_size    100M;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host-Real-IP  $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-Pcol http;
        proxy_pass http://localhost:10000;
    }
}

使用这两行,就可以保证客户端正常请求了数据,但是我却把它给抛弃了。保证客户端的正常浏览。

sentry 升级

接下来就是对sentry进行升级了。

首先,进入到指定目录

代码语言:javascript
复制
cd /data/

对相关目录进行备份(备份是个好习惯,千万不要丢弃)

代码语言:javascript
复制
cp -r onpremise onpremise2

然后进入目录

代码语言:javascript
复制
cd onpremise

停止sentry的运行

代码语言:javascript
复制
docker-compose down

拉取最新代码

代码语言:javascript
复制
git pull

这个时候可能会提示以下错误:

代码语言:javascript
复制
error: Your local changes to the following files would be overwritten by merge:
	docker-compose.yml
Please commit your changes or stash them before you merge.

首先我们先对内容进行diff,查看修改的部分:

代码语言:javascript
复制
git diff docker-compose.yml

将输出记录下来,以便更新代码之后对该文件进行还原。

这是因为你对该文件进行了修改。但是该文件是被追踪的,所以说需要先还原,然后再次拉取,执行以下代码:

代码语言:javascript
复制
git checkout docker-compose.yml
git pull

执行完成后就表示拉取最新版本库成功了。

现在就要把配置的docker-compse.yml内容给还原回来。

接下来就是设置环境变量了:

代码语言:javascript
复制
export SENTRY_IMAGE='sentry:9.1.2'

为什么要这么设置呢。因为通过阅读Dockerfile文件可得知,该文件需要读取环境变量SENTRY_IMAGE来拉取相关的docker文件。

再次构建我们的服务

代码语言:javascript
复制
docker-compose build --pull

运行中可能会提示:

代码语言:javascript
复制
09:31:05 [WARNING] sentry.utils.geo: settings.GEOIP_PATH_MMDB not configured.

这个提示应该没有配置GEO数据库的地址。先不管,等以后以后机会可以再去研究它。

现在就是要执行迁移了:

代码语言:javascript
复制
docker-compose run --rm web upgrade

在迁移中可能会提示如下消息:

代码语言:javascript
复制
The following content types are stale and need to be deleted:

    sentry | dsymapp
    sentry | versiondsymfile
    sentry | projectdsymfile
    sentry | grouphashtombstone

Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.

    Type 'yes' to continue, or 'no' to cancel:

因为我也不清楚发生了什么。所以我的回答是no

迁移完成就是剩下启动服务了:

代码语言:javascript
复制
docker-compose up -d

一切正常。

最后我们就是把我们的nginx 202响应给注销掉,然后重启nginx就ok了。

总结

再次进入之后,发现了UI有一些变化。并且IOS大哥的问题也解决了。但是也产生了一些问题,就是统计的bug统计数据都没了。这不重要,只要bug数据还在,那就可以。

通过这次的升级,了解了很多的东西,对我的成长很有帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-072,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 起因
  • 调研
  • Nginx
  • sentry 升级
  • 总结
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档