您會在官方的文檔中找到大量對 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
忽略,不會意外地出現在你的提交中。