关于前端:Sentry-在百瓶的落地实践

38次阅读

共计 3233 个字符,预计需要花费 9 分钟才能阅读完成。


前言

本文不仅仅面向 Flutter 开发者,而且还面 Web、React、Vue、Go、iOS 等其余开发者。笔者次要从计划选型 & 落地实际两个大的方面进行论述。提供一些罕用的 Sentry 实际,心愿能帮忙开发者更好的应用 Sentry。

计划选型

Sentry 是什么

Sentry 是一个开源的应用程序监控平台,它能够应用文件名和行号上报解体,监控您的残缺堆栈信息,让您进行猜想和开掘日志,能够帮忙您跟踪、修复所有次要语言和框架中的谬误。

长处

  • 精美的 UI 界面,产品体验好,功能完善;
  • 反对简直所有的支流开发语言的 SDK(JavaScript、Node.js、Python、PHP、Ruby、Java、React、Go、Android、iOS、Flutter 等 101 中平台),接入比较简单;
  • 提供残缺的谬误详情;
  • 反对对立的谬误聚合剖析;
  • 反对团队成员治理;
  • 能够及时更新谬误日志,反对邮箱报警设置 & WebHook;
  • 反对多种环境设置(development、testing、staging 或 production);
  • 被动邮件正告;
  • 开源有免费版,能够部署本人的服务器、平安。

毛病

下面说了一堆 Sentry 的长处,当然它也有一些毛病,比方:

  • 部署依赖繁多,须要利用官网提供的 GitHub 仓库,基于 Docker & Docker Compose 能够实现一键部署,然而 Docker 容器过多;
  • 须要本人保障高可用。

本人部署

在 Sentry 的介绍中曾经讲过了它的长处和毛病,那咱们先来看下如何疾速本人部署吧~

环境要求:

  • Docker 19.03.6+
  • Compose 1.28.0+
  • 4 CPU Cores
  • 8 GB RAM
  • 20 GB Free Disk Space

装置步骤:

  1. 首先须要到官网下载 Docker,这个大家能够自行 Google or 百度一下;
  2. 因为本示例是在 Mac 下进行演示,Docker Desktop for Mac 包含 Compose 以及其余 Docker 应用程序,因而 Mac 用户无需独自装置 Compose;
  3. 下载安装 Sentry 安装文件;

上面就能够进行欢快地装置了,然而在进入仓库根目录后,执行 ./install.sh,发现报错,如下所示:

当然遇到问题不要慌,咱们通过降级 coreutils 后,问题便能够迎刃而解。

brew install coreutils

当再次执行 ./install.sh,而后就是漫长的期待了。

然而,咱们发现 Fetching and updating Docker images 等了几个世纪也没有反馈,切实是太慢了。当然,山人自有妙计,咱们只须要把 Docker Engine 配置镜像就好了。接下来,咱们关上 阿里云企业应用核心,在上面的镜像搜寻框中搜寻 Docker,而后会看到如下界面:

依照阿里云镜像减速进行操作,如下图:

而后咱们就能够欢快的进行接下来的操作了,咱们再次在命令行里执行 ./install.sh,一顿操作猛如虎,接下来就会提醒让咱们创立账号,如下图所示:

在命令行里输出 docker-compose up -d 命令,接下来在浏览器输出 127.0.0.1:9000,就会呈现如下登录界面:

输出方才咱们设置的账号密码登录,就功败垂成了!

付费

如果抉择付费版本,咱们有 Developer、Business、Team 和 Enterprise 几个版本可供选择,那么这两个版本有什么区别呢?当然 Developer 是收费用,不过性能绝对较少,咱们团队以后抉择的是 Team,差不多够用了,当然 Business 和 Enterprise 有更高级的性能,大家能够自行去官网钻研下,在这里就不再赘述了。

落地实际

下面曾经讲述了计划选型,上面咱们就正式开始进入落地实际局部吧~

注册

应用 Sentry 首先得注册,注册当然是收费的,置信这对大家并不生疏,就不再具体介绍了。

我的项目集成

  1. 抉择 Create Project 图标来创立一个新的我的项目;
  2. Sentry 有各种各样的开发平台反对,在本文中咱们只针对 Flutter 平台,抉择默认报警设置,并且给我的项目起一个名字 test;
  3. 为了向 Sentry 报告谬误,咱们须要一个 DSN(数据源名称),它将用 Sentry 服务器惟一的标识咱们的应用程序。因而在 Sentry 上创立我的项目后,咱们讲从下面的步骤中创立的应用程序中复制 DSN,切记不要泄露它;
  4. Flutter 我的项目中应用 Sentry 咱们还须要从 pub 中找到 sentry_flutter 接入到咱们的我的项目中。

至此咱们曾经胜利部署并且把 Sentry 接入到了咱们的 Flutter 我的项目中。

报警机制

方才创立我的项目时,咱们用的是默认设置,当然咱们也能够设置预警规定来进行欠缺上报机制,上面咱们就一起来看一下如何设置预警规定:

顺次找到 Settings -> 你的项目组 -> 我的项目 -> Alert Settings -> View Alert Rules -> Create Alert -> Set Conditions,如下如所示:



举个例子:

上面咱们以一个小时内,事件级别为 Warn 以上并且在一个小时内间断触发 50 次为例,设置邮件告诉团队所有成员为例来进行设置。当然咱们也能够设置其余条件。

而后咱们便能够在方才设置的报警规定看到具体数据了。

如果只设置这些报警规定进行邮件告诉,在泛滥的邮件中,咱们很有可能没能及时看到,这些 Sentry 都为咱们思考到了,咱们也能够设置 WebHooks 进行企业微信等告诉等。

咱们只须要记住上图中的 Callback URls 就能够本人定义 WebHooks 进行告诉了。

查问上报

当我的项目出现异常,咱们能够点击 左侧 Issues,而后依据条件来进行筛选,比方:依据环境、日期、问题类型等筛选咱们想要的后果。

当咱们抉择某一条 issue 后,点击后能够查看详细信息,如下:

  • issue 产生次数
  • 影响用户数
  • 环境信息
  • 额定信息(App 版本号,操作系统、SDK 版本等),这些须要在初始化 SDK 时额定配置

配额治理

事件和配额在 Sentry 中是互相关联的,当咱们订阅 Sentry 时,咱们须要为咱们跟踪的事件的数量进行付费。这些事件都有肯定的配额,当 Sentry 承受一个事件时,它就会计入该类型的事件的配额当中。

比如说,咱们抉择了如下图所示的版本,每个月能够接管 Errors(谬误)为 5K 条,Transactions(事务)为 10W 条,Attachments(附件)为 1GB。当咱们当月应用完后,就不会再接管到新的事件。那这个时候咱们该怎么办呢?

1. SDK 配置采样率

SDK 配置容许事件或过滤掉事件,要避免某些事务被报告给 Sentry,咱们能够应用 tracesSampler 配置选项,它容许咱们提供一个函数来评估以后事务,如果不是咱们想要的,则将其抛弃。

2. 删除谬误并抛弃

如果咱们抉择删除并抛弃一个问题,那么将来雷同的谬误事件将不会计入配额。咱们只须要找到一个 issue,而后点击 ... 而后抉择 delete & discard future events 就能够了,很遗憾的是,这个操作须要购买 Business Plan 或者更高版本才能够。


3. 入站过滤器配置

咱们能够在入站过滤器配置以下规定:

  • 浏览器扩大谬误
  • 本地主机事件
  • 已知的旧浏览器谬误
  • 已知的网络爬虫
  • 谬误音讯类型过滤
  • 特定谬误事件过滤
  • 特定的 IP
  • 公布版本过滤

咱们能够到 Project > Settings > Inbound Filters 下进行设置,然而,公布版本、谬误音讯类型、特定谬误事件过滤也是须要 购买 Business Plan 或者更高版本才能够应用。

4. 购买配额

当然,也能够购买新的配额持续应用。相干的费用,大家能够自行查看一下官网免费规范。

最初

通过上述对 Sentry 的介绍以及实际,想必大家曾经对 Sentry 有了大抵的理解。后续笔者会依据 Sentry 在百瓶 APP 生产过程中上报的一些异样进行剖析(自我忏悔)一下。

参考文献

https://docs.docker.com/compo…

https://develop.sentry.dev/

更多精彩请关注咱们的公众号「百瓶技术」,有不定期福利呦!

正文完
 0