你知道Sentry 開源版與商業(yè) SaaS 版的區(qū)別嗎?
本文轉(zhuǎn)載自微信公眾號(hào)「黑客下午茶」,作者為少。轉(zhuǎn)載本文請(qǐng)聯(lián)系黑客下午茶公眾號(hào)。
您會(huì)在官方的文檔中找到大量對(duì) sentry 和 getsentry 的引用。兩者都是 Django 應(yīng)用程序, 但 sentry 是開源的, getsentry 是閉源的。里面有什么?
- https://github.com/getsentry/sentry
主要要強(qiáng)調(diào)的是,官方所有的產(chǎn)品功能 — Issues、 Performance、 Dashboards 等等 — 都在 sentry (開源組件)中實(shí)現(xiàn)并可用。 sentry 不是將關(guān)鍵功能隱藏在付費(fèi)墻后面的 “開放核心” 公司。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 實(shí)現(xiàn)了計(jì)費(fèi)和帳戶管理功能。 getsentry 是官方部署到生產(chǎn)環(huán)境的 Django 應(yīng)用程序。它導(dǎo)入 sentry Django 應(yīng)用程序, 添加一些路由和模型,并重新導(dǎo)出它。
此外,sentry 有許多 hooks,使用 Django signals 實(shí)現(xiàn),getsentry 訂閱這些 signal。例如,在 sentry 中有一個(gè)名為 event_received 的 Django signal,它在保存事件時(shí)被觸發(fā)。如果您運(yùn)行自托管,則不會(huì)訂閱此 hook。但是在 getsentry 中,我們有一個(gè)計(jì)費(fèi)計(jì)數(shù)器,它會(huì)在該 signal 觸發(fā)時(shí)運(yùn)行。
getsentry 使用的 sentry 中還有一些可交換可插拔的后端, 例如 sentry.nodestore、sentry.quotas 和一個(gè)自制的功能標(biāo)記系統(tǒng)。與 hooks 一樣,這些模塊化后端在技術(shù)上可用于自托管實(shí)例,但它們?cè)诤艽蟪潭壬蠜](méi)有文檔記錄。例如,功能標(biāo)記系統(tǒng)有一個(gè)硬編碼的功能表 (SENTRY_FEATURES), 自托管安裝可以使用它來(lái)控制功能可用性。 getentry 注冊(cè)了一個(gè)不同的功能 flag 處理程序,它根據(jù)官方的計(jì)費(fèi)方案和搶先體驗(yàn)計(jì)劃翻轉(zhuǎn) 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 工程師注意事項(xiàng)
如果您不是 Sentry 的員工,您將無(wú)法在 getentry 代碼庫(kù)上進(jìn)行開發(fā),并且您可以忽略本文檔中的以下注釋和其他提及。
- 您通??梢詫?sentry CLI 替換為 getsentry CLI,它們的行為將相同。在其他情況下,官方試圖指出行為上的差異。
- getsentry 的設(shè)置在 getsentry/conf/settings/defaults.py 中配置。在與環(huán)境名稱匹配的文件中可以找到其他特定于環(huán)境的覆蓋。例如,本地開發(fā)的默認(rèn)設(shè)置可以在 getsentry/conf/settings/dev.py 中找到。您還可以使用getsentry/conf/settings/devlocal.py 進(jìn)行個(gè)人配置覆蓋。 devlocal.py 文件被 git 忽略,不會(huì)意外地出現(xiàn)在你的提交中。