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

- トレース分析

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

アーキテクチャ

DOG Stackは以下のコンポーネントで構成されています。
- データ収集ツール: ログ、トレース、メトリクスなどのテレメトリーを収集します。OpenTelemetryは2種類の収集ツールを提供します。1つは10以上の言語をサポートするOpenTelemetry SDKで、アプリケーションとAIエージェントのinstrumentationに使用され、通常トレースデータを収集します。もう1つはOpenTelemetry Collector receiversで、ローカルファイル用のfilelog receiver、ホストメトリクス(CPU、メモリなど)用のhostmetrics receiver、Kubernetesのpodメトリクス用のpodmetrics receiverが含まれます。Vector、Fluentbit、Node Exporter、Telegrafなどの多くのサードパーティコレクターは、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ユーザーには馴染み深いものとなるでしょう。