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以上のプログラミング言語で、すぐに使える、さらにはコード不要のアプリケーション計装を提供
- OpenTelemetry Collectorはローカルファイル、ホストメトリクス、コンテナメトリクスを取り込み
- Vector、Fluentbit、Node Exporter、Telegraf、Logstash、Filebeatなど、既存の収集ツールとの統合
- Kibanaを超える検索体験
- Lucene形式の検索構文とネイティブSQL構文の両方をサポート
- ログとトレースのワンクリック相関
- テーブル形式またはJSON形式での詳細レコード表示
- 特定のログまたはトレースの前後の時間におけるデータ表示
- インタラクティブな時間範囲選択、フィールド選択、フィールドフィルタリング
- フィールド値分布統計
- Jaeger的なトレース体験
- サービス名、オペレーション、タグ、期間範囲によるトレースフィルタリング
- タイムライン、期間、スパン数によるトレースの可視化
- タイムスタンプ、期間、スパン数によるトレースソート
- 特定のトレースのウォーターフォール可視化
- サービス名、スパン名、タグ、期間範囲によるトレース内のスパンフィルタリング
- ダッシュボード
- 線、棒、円、ゲージ、ヒートマップ、ヒストグラム、ジオマップなど、20以上の可視化タイプ
- ビジュアルビルダーまたは生SQLによるダッシュボード構築
- Dorisマルチテーブル結合を使用したログ、トレース、メトリクス横断ダッシュボード構築
- アラート
- カウント、合計、比率などのメトリクスを対象とした、データなし/エラー、閾値、複合閾値など複数条件をカバーするアラートルール
- 電子メール、PagerDuty、Slack、Discord、Webhookを含む20以上の通知チャネル
- 通知メッセージのカスタマイズ、フォーマット、再利用のためのアラートテンプレート
- OpenTelemetryとGrafanaによってサポートされるその他の機能
以下は、Doris App pluginがインストールされたGrafanaのクイックルックスクリーンショットです。
- ログ検索

- トレース分析

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

アーキテクチャ

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