您会在官方的文档中找到大量对 sentry
和 getsentry
的引用。两者都是 Django
应用程序, 但 sentry
是开源的, getsentry
是闭源的。里面有什么?
主要要强调的是,官方所有的产品功能 — Issues
、 Performance
、 Dashboards
等等 — 都在 sentry
(开源组件)中实现并可用。 sentry
不是将关键功能隐藏在付费墙后面的 “开放核心”
公司。Sentry
尽可能地开源。
- https://docs.sentry.io/product/issues/
- https://docs.sentry.io/product/performance/
- https://docs.sentry.io/product/dashboards/
- https://docs.sentry.io/product/
- https://open.sentry.io/licensing/
那么 getsentry
中有什么?它为官方的 SaaS
, sentry.io 实现了计费和帐户管理功能。 getsentry
是官方部署到生产环境的 Django
应用程序。它导入 sentry
Django 应用程序, 添加一些路由和模型,并重新导出它。
此外,sentry
有许多 hooks
,使用 Django signals
实现,getsentry
订阅这些 signal
。例如,在 sentry
中有一个名为 event_received
的 Django signal
,它在保存事件时被触发。如果您运行自托管,则不会订阅此 hook
。但是在 getsentry
中,我们有一个计费计数
器,它会在该 signal
触发时运行。
getsentry
使用的 sentry
中还有一些可交换可插拔的后端, 例如 sentry.nodestore
、sentry.quotas
和一个自制的功能标记系统。与 hooks
一样,这些模块化后端在技术上可用于自托管实例,但它们在很大程度上没有文档记录。例如,功能标记系统有一个硬编码的功能表 (SENTRY_FEATURES
), 自托管安装可以使用它来控制功能可用性。 getentry
注册了一个不同的功能 flag
处理程序,它根据官方的计费方案和抢先体验计划翻转 flag
。
- https://develop.sentry.dev/self-hosted/
- https://github.com/getsentry/sentry/blob/master/src/sentry/features/__init__.py
- https://develop.sentry.dev/feature-flags/
- https://sentry.io/pricing/
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
忽略,不会意外地出现在你的提交中。