Sentry 开源版与商业 SaaS 版的区别
您会在官方的文档中找到大量对 sentry
和 getsentry
的引用。两者都是 Django
应用程序,但 sentry 是开源的,
getsentry
是闭源的。里面有什么?
- https://github.com/getsentry/sentry
主要要强调的是,官方所有的产品功能 —
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
忽略,不会意外地出现在你的提交中。
更多
- Sentry 企业级数据安全解决方案 - Relay 入门
- Sentry 企业级数据安全解决方案 - Relay 运行模式
- Sentry 企业级数据安全解决方案 - Relay 配置选项
- Sentry 企业级数据安全解决方案 - Relay 监控 & 指标收集
- Sentry 企业级数据安全解决方案 - Relay 项目配置
- Sentry 开发者贡献指南 - SDK 开发(性能监控:Sentry SDK API 演进)