DOG Stack オープン観測性概要
DOG Stackは、Doris、OpenTelemetry(Doris Exporterを含む)、Grafana(Doris App pluginを含む)で構築されたオープンなobservabilityソリューションです。以下の特徴を持つよう設計されています:
- オープン: 全てのコンポーネントがオープンソースで、ベンダーロックインを回避します。
- 高性能: 数百GB/sまでの書き込みスループット。数十億のレコードに対してサブ秒の検索・クエリ応答時間。
- コスト効率: ELKやDatadogと比較してobservabilityコストを50%以上、場合によっては80%削減。
- スケーラブル: PBまたはEBスケールのデータボリュームを容易に処理。
OpenTelemetryはobservabilityデータ収集の事実上の標準です。Grafanaはobservabilityデータ可視化の事実上の標準です。そのため、Dorisは新しい収集・可視化ツールを再発明するのではなく、これらの上にobservabilityソリューションを構築することを選択しました。Dorisはobservabilityデータの効率的な保存と高速クエリに焦点を当てています。
機能
DOG StackはOpenTelemetryとGrafanaをベースにした豊富な機能を提供します。
- 様々なobservabilityデータの収集
- OpenTelemetry SDKは10以上のプログラミング言語でアプリケーション向けにout-of-the-box、さらにはコード不要のinstrumentationを提供。
- OpenTelemetry Collectorがローカルファイル、ホストメトリクス、コンテナメトリクスを取り込み。
- Vector、Fluentbit、Node Exporter、Telegraf、Logstash、Filebeatなど既存の収集ツールとの統合。
- Kibanaを超える検索体験
- Luceneスタイルの検索構文とネイティブSQL構文の両方をサポート。
- ログとtraceのワンクリック相関。
- テーブルまたはJSON形式での詳細レコード表示。
- 特定のログまたはtraceの時間的前後のデータ表示。
- インタラクティブな時間範囲選択、フィールド選択、フィールドフィルタリング。
- フィールド値分布統計。
- Jaegerライクなtrace体験
- サービス名、オペレーション、タグ、期間範囲でtraceをフィルタ。
- timeline、期間、span数でtraceを可視化。
- timestamp、期間、span数でtraceをソート。
- 特定のtraceのwaterfall可視化。
- trace内のspanをサービス名、span名、タグ、期間範囲でフィルタ。
- ダッシュボード
- line、bar、pie、gauge、heatmap、histogram、geomap等を含む20以上の可視化タイプ。
- ビジュアルビルダーまたは生SQLでダッシュボードを構築。
- Dorisマルチテーブルjoinを使用してログ、trace、メトリクスにわたるダッシュボードを構築。
- アラート
- count、sum、ratio等のメトリクスにわたって、no-data/error、threshold、composite threshold等の複数条件をカバーするアラートルール。
- email、PagerDuty、Slack、Discord、Webhookを含む20以上の通知チャンネル。
- 通知メッセージのカスタマイズ、フォーマット、再利用のためのアラートテンプレート。
- OpenTelemetryとGrafanaでサポートされるその他の機能。
以下はDoris App pluginがインストールされたGrafanaからのクイックルックスクリーンショットです。
- ログ検索

- Trace分析

- メトリクスダッシュボード

アーキテクチャ

DOG Stackは以下のコンポーネントで構成されます。
- データ収集ツール: ログ、trace、メトリクス等のtelemetryを収集します。OpenTelemetryは2種類の収集ツールを提供します。一つは10以上の言語をサポートするOpenTelemetry SDKで、アプリケーションやAIエージェントをinstrumentするために使用され、通常はtraceデータを収集します。もう一つはOpenTelemetry Collector receiverで、ローカルファイル用のfilelog receiver、ホストメトリクス(CPU、メモリ等)用のhostmetrics receiver、KubernetesのPodメトリクス用のpodmetrics receiverを含みます。Vector、Fluentbit、Node Exporter、Telegraf等の多くのサードパーティコレクターがOTLPやその他のプロトコルでOpenTelemetry Collectorにデータを送信できます。
- OpenTelemetry Collector(Doris Exporter付き): 収集ツールからtelemetryデータを受信し、処理して、Doris Exporterを通じてDorisに永続化します。典型的な処理ステップには、フィルタリング、変換、エンリッチ、キューイング、バッチ処理が含まれます。
- Doris: OpenTelemetry Collectorからtelemetryデータを受信し、インデックス付きカラムナーストレージで効率的に保存します。Dorisはinverted index、bloom filter index、zone map index等の様々なインデックスを通じて超高速検索を提供します。また、集計、ソート、joinなどの分析クエリに対して優れたネイティブパフォーマンスを提供します。
- Grafana(Doris App plugin付き): ログ、trace、メトリクス向けに豊富で使いやすい可視化を提供します。GrafanaのベースCapabilityに加えて、Doris App pluginは実用的な機能を追加します。「Discover」機能はKibanaユーザーに評価される一流の検索体験を提供します。「Traces」機能は調査に値するtrace(遅いもの等)を発見するネイティブなtrace探索を提供し、Jaegerユーザーに馴染み深いものとなっています。