このプロジェクトについて
Glanceは、単一のGoバイナリ(SQLiteファイルでバックアップ)または単一のDockerコンテナとして提供されるセルフホスト型ウェブ解析サービスです。フル機能のプロダクト解析プラットフォームではなく、訪問者数、ページビュー、トップページ、リファラー、国と地域、デバイス、ブラウザ、OS、およびシンプルなカスタムイベントという限定的な指標に特化しています。セッション、ファネル、コホート、ヒートマップ、セッションリプレイなどの機能はありません。
追跡:サイトに /glance.js から提供される約1KBのクッキーレススニペットを埋め込みます。ページビューごとに sendBeacon を使用して小さなJSONボディを送信し、シングルページアプリケーション(SPA)の場合は pushState および popstate 時にも再送信します。ページからカスタムイベントを発生させることができ、プロパティも受け付けますが、現在は無視されます。サーバーはページホストをサイトのドメインと照合し、既知のボット、webdriverフラグ付きブラウザ、過大なボディを破棄し、常に202を返します。デプロイ前のテスト用に、localhostおよびプライベートLANアドレスも受け入れられます。派生ディメンションには、ブラウザ、OS、デバイス、国、地域、キャンペーンタグが含まれます。
プライバシー:クッキーを使用せず、IPアドレスも保存しません。訪問者は、日次ソルト、サイト、IP、ユーザーエージェントを組み合わせたSHA-256ハッシュの切り捨て値で識別されます。ソルトはUTC日のごとに更新され永続化されるため、訪問者を日を跨いで追跡することはできません。1日の訪問者数は正確にカウントされ、複数日の合計は日次ユニークユーザーの合算となります。国と地域は、プロキシの国ヘッダーがある場合はそこから、ない場合はIANA由来のテーブルを介してブラウザのタイムゾーンから取得します。地域はタイムゾーンの都市部分であるため、都市レベルのレポートは提供されません。リファラーはホストのみに簡略化され、一般的なホストはエイリアス化されます。
アーキテクチャ:イベントはメモリ内キューに入り、リクエストパスでデータベースに触れることはありません。ライターgoroutineが1秒ごと、または200イベントごとに1つのトランザクションでキューをコミットします。時間別および日別のロールアップは、1分ごとおよびダッシュボードを開いた時に生イベントから再構築され、ダッシュボードはロールアップのみを読み取ります。生イベントは保持期間(デフォルト7日、最小2日、環境変数で固定しない限り最大90日まで調整可能)の後に削除されますが、ロールアップは無期限に保持されます。ファビコンは、ループバック、プライベート、リンクローカル、キャリアグレードNATアドレスを拒否するSSRFガードを通じてGlance自身が取得します。マップにはMapLibreでレンダリングされたNatural Earthの輪郭線が同梱されているため、実行時にサードパーティサービスを必要としません。
ダッシュボードとAPI:組み込みのSvelte UIでは、ファビコン、14日間のスパークライン、先週に対する今週の訪問者数を表示し、ドラッグによる並べ替えが可能です。サイトごとに、24時間から180日までの前回同期間との比較を含む合計値、チャート、過去30分間のアクティブユーザー、タブ形式の内訳カード(ページ、ソース、場所、デバイス、イベント)、展開可能なフィルタリングリスト、直近5分間のライブ3D地球儀と範囲マップが表示されます。また、名前、ドメイン、デフォルト範囲、アクセントカラー、ホーム国のサイト設定が可能です。エンドポイントは /api/v1 以下にあり、collect, sites, stats, breakdown, live, favicons, rollup, status, settings, export, トークン管理をカバーしています。管理認証にはセッションクッキーまたはHTTP Basicを使用し、APIトークンはハッシュとして保存され、読み取り専用となります。
その他:/mcp (Streamable HTTP) にある読み取り専用のModel Context Protocolエンドポイントは、AIエージェント向けに list_sites, overview, site_stats, breakdown, search_terms, revenue などのツールを公開しています(Glance内部にLLMは搭載されていません)。オプションの統合機能として、OAuth経由でGoogle Search Consoleの検索語句(webmasters.readonlyスコープ、接続時に約16ヶ月分を取得し毎日更新)および、訪問者のlocalStorageに保存されチェックアウトメタデータ経由で渡されるファーストタッチアトリビューション付きのPolar収益を追加できます。デプロイガイドでは、Docker Composeとlinux/amd64およびlinux/arm64用のプリビルド済みghcr.ioイメージ、Dokploy形式のホスト用Composeファイル、およびGo 1.27、Node 24、純粋なGo製SQLiteドライバーを使用したソースからのビルドについて説明しています。公開イメージは約37MBで、アイドル時のメモリ使用量は10MB未満です。ライセンス:MIT。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.