你知道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 忽略,不會意外地出現在你的提交中。