Sentry 开源版与商业 SaaS 版的区别

981 阅读2分钟

您会在官方的文档中找到大量对 sentrygetsentry 的引用。 两者都是 Django 应用程序, 但 sentry 是开源的getsentry 是闭源的。里面有什么?

主要要强调的是,官方所有的产品功能 — IssuesPerformanceDashboards 等等 — 都在 sentry (开源组件)中实现并可用。 sentry 不是将关键功能隐藏在付费墙后面的 “开放核心” 公司。 Sentry 尽可能地开源

那么 getsentry 中有什么? 它为官方的 SaaS, sentry.io 实现了计费和帐户管理功能。 getsentry 是官方部署到生产环境的 Django 应用程序。它导入 sentry Django 应用程序, 添加一些路由和模型,并重新导出它。

此外,sentry 有许多 hooks,使用 Django signals 实现,getsentry 订阅这些 signal。 例如,在 sentry 中有一个名为 event_receivedDjango signal,它在保存事件时被触发。 如果您运行自托管,则不会订阅此 hook。 但是在 getsentry 中,我们有一个计费计数器,它会在该 signal 触发时运行。

getsentry 使用的 sentry 中还有一些可交换的后端, 例如 sentry.nodestoresentry.quotas 和一个自制的功能标记系统。 与 hooks 一样,这些模块化后端在技术上可用于自托管实例,但它们在很大程度上没有文档记录。 例如,功能标记系统有一个硬编码的功能表 (SENTRY_FEATURES), 自托管安装可以使用它来控制功能可用性。 getentry 注册了一个不同的功能 flag 处理程序,它根据官方的计费方案和抢先体验计划翻转 flag

Sentry 工程师注意事项

如果您不是 Sentry 的员工,您将无法在 getentry 代码库上进行开发,并且您可以忽略本文档中的以下注释和其他提及。

  • 您通常可以将 sentry CLI 替换为 getsentry CLI,它们的行为将相同。在其他情况下,官方试图指出行为上的差异。

  • getsentry 的设置在 getsentry/conf/settings/defaults.py 中配置。在与环境名称匹配的文件中可以找到其他特定于环境的覆盖。例如,本地开发的默认设置可以在 getsentry/conf/settings/dev.py 中找到。您还可以使用getsentry/conf/settings/devlocal.py 进行个人配置覆盖。 devlocal.py 文件被 git 忽略,不会意外地出现在你的提交中。

更多