一文看懂 Sentry 里的各种概念

1,786 阅读2分钟

Sentry 是错误追踪领域一个流行的实现。Sentry 拥有很多概念,如 Release、Issue 等,这些概念空间上穿梭于项目代码和管理面板,时间上出现在各个生命周期。这样的特点常常使创建 Sentry 项目的程序员容易感到吃力。本文通过介绍 Sentry 的主要概念和它们使用环境,使读者对 Sentry 的结构有概括性的了解。

1. Sentry 中的概念

Sentry 最新版本(10)有如下的概念:Organization, Team, Project, Release, Environment, Deploy, Issue, Event

2. Organization - 组织

组织用于 Sentry Saas 区分不同的组织,在自建 Sentry 中有且仅有一个组织。

3. Team - 团队

团队是数个项目组成的组。团队在创建项目时创建。

4. Project - 项目

项目是基本的组成单元,对应一个代码项目。

5. Issue - 问题

问题是项目中出现的问题。由客户端发出的事件创建。

6. Event - 事件

事件是项目中出现并上报的一个问题实例。

7. Environment - 环境

环境是一个用户设置的字符串。可以在客户端中设置。客户端设置环境字符串后,服务端接收到客户端事件时会得到字符串,分析问题时就可以根据环境进行过滤。设置不同的环境后,过滤特定环境下的问题,或分析不同环境下同问题的频率,可以辅助判断问题的原因。

8. Release - 版本

版本是一个用户设置的字符串。用于在 Release 菜单下查看版本视图下的版本问题统计情况和版本问题列表。版本可以通过在客户端设置版本字符串的形式设置,也可以通过使用 sentry-cli 生成。通过设置版本,可以看到问题在版本间的收敛情况。使用 sentry-cli,还可将版本和 Git Commit 关联起来,开启 Commits 推测功能,自动推测引入问题的 Commit,加快问题的解决速度。

9. Deploy - 部署

部署是一个抽象概念,可以理解为是一个环境和版本组成的序对。当一个版本在某个环境下部署后,在 Release 菜单和 Projects 菜单下会有相关的部署 Tag 。当使用 Commits 推测时可以在部署时通知这个版本下的 Commit 的作者。