|
この記事は、Shao氏が執筆したWeChat公式アカウント「Hacker Afternoon Tea」からの転載です。転載の許可については、「Hacker Afternoon Tea」公式アカウントまでお問い合わせください。 公式ドキュメントには「sentry」と「getsentry」への言及が数多く見られます。どちらもDjangoアプリケーションですが、「sentry」はオープンソースで、「getsentry」はクローズドソースです。これらのアプリケーションにはどのような機能があるのでしょうか?
問題、パフォーマンス、ダッシュボードなど、すべての公式製品機能はSentry(オープンソースコンポーネント)に実装され、利用可能であることを強調しておきます。Sentryは、主要機能を有料で提供する「オープンコア」企業ではありません。Sentryは可能な限りオープンソースです。
では、getsentry には何が含まれているのでしょうか?これは、公式 SaaS である sentry.io の課金およびアカウント管理機能を実装したものです。getsentry は、本番環境にデプロイされた公式 Django アプリケーションです。getsentry は Sentry Django アプリケーションをインポートし、ルートとモデルを追加して、再エクスポートします。 さらに、sentryにはDjangoシグナルを使って実装された多くのフックがあり、getsentryはこれらのフックをサブスクライブします。例えば、sentryにはevent_receivedというDjangoシグナルがあり、これはイベントが保存されたときにトリガーされます。セルフホスト型アプリケーションを実行している場合、このフックをサブスクライブする必要はありません。しかし、getsentryには、このシグナルがトリガーされたときに実行される課金カウンターがあります。 getentryは、Sentry内で、sentry.nodestore、sentry.quotas、カスタム機能フラグシステムなど、交換可能かつプラグイン可能なバックエンドを複数使用します。フックと同様に、これらのモジュール式バックエンドは技術的にはセルフホストインスタンスでも利用可能ですが、ほとんどドキュメント化されていません。例えば、機能フラグシステムには、セルフホストインスタンスで機能の可用性を制御するために使用できる、ハードコードされた機能テーブル(SENTRY_FEATURES)があります。getentryは、公式の課金スキームと早期アクセスプログラムに基づいてフラグを切り替える、異なる機能フラグハンドラーを登録します。
セントリーエンジニアのメモSentry の従業員でない場合は、getentry コードベースで開発することはできません。また、このドキュメント内の以下のコメントやその他の記述は無視できます。
|