Astro Realtime Web Analytics:収集・集計の設計ノート
ブラウザーのイベントを上限付きキューとバッチで収集し、ClickHouseで集計する分析パイプラインの正確性と保管ポリシーを扱います。
1. 収集範囲とデータの最小化
この文書は分析パイプラインの設計ノートであり、本番環境の処理能力や法令遵守の認証を示すものではありません。収集項目、利用目的、保管期間、アクセス権限を先に定義し、URL内の機密性の高いクエリや不要な個人識別情報を収集しない方針で設計します。
Cookieを使わないことやIPアドレスのハッシュ化だけで、完全な匿名性や、すべての個人情報関連規制への適合が自動的に保証されるわけではありません。IPに基づく値は、共有ネットワークやアドレス変更のため、正確な個人単位の訪問者数とは一致しません。実際の適用には別途検討が必要です。
2. バッチとバックプレッシャーの設計
- イベントサイズとキュー長を制限し、上限を超えた場合の拒否、サンプリング、再試行の方針を明示します。
- イベントIDで重複を識別し、再試行によって集計値が増えないように処理します。
- ClickHouseへの挿入はバッチサイズと遅延を併せて調整します。非同期挿入の完了確認のタイミングとエラー処理も明示する必要があります。
- ClickHouseの非同期挿入ドキュメントに基づいて、バッファーのフラッシュと完了確認の設定を検証します。
3. ダッシュボードと運用検証
WebSocketで集計結果を送信する際は、再接続、最後に受信した位置、低速なクライアントへの対応を設計します。ユーザー側の測定値とサーバー自身の測定値を区別し、非対応や欠落したデータを0に置き換えません。
負荷試験では、収集成功率、重複率、欠落率、p95・p99の遅延、保存コストを併せて記録します。処理能力やクエリ速度は、データ規模、スキーマ、ハードウェアを公開した再現可能な測定資料がある場合に限り、成果として示します。