Guance データサンプリング機能技術ガイド:データ量とクエリ効率の最適化¶
機能の処理ロジック¶
Guanceのデータサンプリング機能は、データ処理の全ライフサイクルにわたって機能します。
- 収集フェーズのサンプリング:データの報告前にフィルタリングを行い、データ取り込み量とストレージコストを削減します。
- クエリフェーズのサンプリング:大規模なクエリ結果に対してインテリジェントにダウンサンプリングを実行し、チャートのレンダリングとデータ分析の速度を向上させます。
基本原則¶
2つのフェーズのサンプリングは互いに独立していますが、相互に補完し合います。収集フェーズのサンプリングは、どのデータを永続的に保存するかを決定し、ストレージコストに直接影響します。クエリフェーズのサンプリングはデータの表示方法にのみ影響し、元のデータは完全なまま保持されます。重要なデータの完全性を保証しながら、サンプリング戦略によってリソース消費を最適化します。
データ収集フェーズのサンプリング設定¶
ここでは3つの代表的なシナリオを例示します。
1. リアルユーザーモニタリング(RUM)サンプリング¶
- 設定場所:Guanceコンソール > ユーザーアクセス監視 > アプリケーションの新規作成/編集 > SDK 設定。
- サンプリングロジック:
sampleRateパラメータ(例:sampleRate: 90)を設定することで、データの報告割合を制御します。- SDK 初期化時に乱数(0-100)を生成し、その乱数がサンプリングレート未満の場合にデータを報告します。
- 適用シナリオ:Web/Android/iOS/ミニアプリケーションにおいて、ユーザー行動データのストレージコストを削減する必要がある場合。
2. アプリケーションパフォーマンスモニタリング(APM)サンプリング¶
- 対応方式:
- コード埋め込みによるサンプリングレートの設定(DDTrace、OpenTelemetry など)。
- DataKit コレクターでのトレースデータサンプリングルールの設定。
- サンプリング戦略:
- 全量収集:エラーリクエスト、スローリクエスト。
- ダウンサンプリング:正常リクエスト(1%-10%のサンプリングレートを設定可能)。
3. ログデータサンプリング¶
- 設定機能:
- Pipeline の
drop()関数を使用して冗長なログを破棄、またはsample()関数を使用して比例サンプリングを実行します。 - ブラックリストを設定して、価値の低いログをフィルタリングできます。
- Pipeline の
- 代表的なシナリオ:デバッグログには低いサンプリングレートを適用し、エラーログは全量収集します。
クエリフェーズのサンプリング機能¶
Guanceは、クエリフェーズにおいてインテリジェントサンプリングメカニズムを提供します。これは、クエリデータ量が事前に設定されたしきい値に達したときに自動的にトリガーされ、大規模データクエリの応答パフォーマンスを保証します。
システムが設定する主要なサンプリングしきい値は次のとおりです。
- ダッシュボードクエリ:2億データポイント
- エクスプローラークエリ:1億データポイント
- Facet クエリ:500万データポイント
- その他の汎用クエリ:2億データポイント
サンプリング戦略選択ガイド¶
| シナリオ | サンプリングタイプ | 推奨設定 | 注意事項 |
|---|---|---|---|
| ユーザー行動分析 | RUM 収集サンプリング | ビジネスの重要度に応じてサンプリングレートを設定 | エラー操作と重要なパスは全量収集を確保する必要あり |
| アプリケーションパフォーマンス調査 | APM トレースサンプリング | エラー/スローリクエストは全量収集、正常リクエストはサンプリングレート1%-10% | TraceID によりトレースの完全性を保証 |
| ログ長期保存 | ログ Pipeline サンプリング | 高頻度ログのサンプリングレート ≤5%、エラーログは全量収集 | 機密データマスキングルールと組み合わせる |
| ダッシュボード全体傾向 | クエリサンプリング | サンプリングを有効化、時間範囲 > 24時間 | 具体的な問題調査時はサンプリングを無効にし、時間範囲を絞る |
| リアルタイムアラート | サンプリングなし | 生データに基づいて計算 | サンプリングによる誤報/見逃しを回避 |
重要な注意事項¶
- データの一貫性:サンプリングにより極端な値が希釈される可能性があるため、重要な判断は全量データで検証する必要があります。
- コストとパフォーマンスのバランス:収集サンプリングはストレージコストを削減し、クエリサンプリングは応答速度を向上させます。
- 動的最適化:サンプリング後のデータの統計分布を定期的に確認し、ビジネスの変化に合わせて戦略を調整します。
まとめ¶
Guanceのサンプリング機能は、多層的でカスタマイズ可能なコストとパフォーマンスの最適化ツールです。
- 収集側のサンプリングは、データ流入を直接削減し、RUM、APM、ログなどの高頻度データに適しています。
- クエリ側のサンプリングは、大規模データ操作のスムーズさを保証し、ダッシュボードや履歴分析に適しています。
ビジネスの優先順位(例:エラーは全量、正常はダウンサンプリング)とクエリ要件(全体傾向の把握時は有効化、正確な調査時は無効化)を組み合わせることで、リソース効率とデータ信頼性の最適なバランスを実現できます。