メインコンテンツまでスキップ
バージョン: 26.x

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をベースにした豊富な機能を提供します。

  1. 様々なobservabilityデータの収集
    1. OpenTelemetry SDKは10以上のプログラミング言語でアプリケーション向けにout-of-the-box、さらにはコード不要のinstrumentationを提供。
    2. OpenTelemetry Collectorがローカルファイル、ホストメトリクス、コンテナメトリクスを取り込み。
    3. Vector、Fluentbit、Node Exporter、Telegraf、Logstash、Filebeatなど既存の収集ツールとの統合。
  2. Kibanaを超える検索体験
    1. Luceneスタイルの検索構文とネイティブSQL構文の両方をサポート。
    2. ログとtraceのワンクリック相関。
    3. テーブルまたはJSON形式での詳細レコード表示。
    4. 特定のログまたはtraceの時間的前後のデータ表示。
    5. インタラクティブな時間範囲選択、フィールド選択、フィールドフィルタリング。
    6. フィールド値分布統計。
  3. Jaegerライクなtrace体験
    1. サービス名、オペレーション、タグ、期間範囲でtraceをフィルタ。
    2. timeline、期間、span数でtraceを可視化。
    3. timestamp、期間、span数でtraceをソート。
    4. 特定のtraceのwaterfall可視化。
    5. trace内のspanをサービス名、span名、タグ、期間範囲でフィルタ。
  4. ダッシュボード
    1. line、bar、pie、gauge、heatmap、histogram、geomap等を含む20以上の可視化タイプ。
    2. ビジュアルビルダーまたは生SQLでダッシュボードを構築。
    3. Dorisマルチテーブルjoinを使用してログ、trace、メトリクスにわたるダッシュボードを構築。
  5. アラート
    1. count、sum、ratio等のメトリクスにわたって、no-data/error、threshold、composite threshold等の複数条件をカバーするアラートルール。
    2. email、PagerDuty、Slack、Discord、Webhookを含む20以上の通知チャンネル。
    3. 通知メッセージのカスタマイズ、フォーマット、再利用のためのアラートテンプレート。
  6. OpenTelemetryとGrafanaでサポートされるその他の機能。

以下はDoris App pluginがインストールされたGrafanaからのクイックルックスクリーンショットです。

  • ログ検索

Log search

  • Trace分析

Trace analysis

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

Metrics dashboard

アーキテクチャ

DOG Stack Architecture

DOG Stackは以下のコンポーネントで構成されます。

  1. データ収集ツール: ログ、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にデータを送信できます。
  2. OpenTelemetry Collector(Doris Exporter付き): 収集ツールからtelemetryデータを受信し、処理して、Doris Exporterを通じてDorisに永続化します。典型的な処理ステップには、フィルタリング、変換、エンリッチ、キューイング、バッチ処理が含まれます。
  3. Doris: OpenTelemetry Collectorからtelemetryデータを受信し、インデックス付きカラムナーストレージで効率的に保存します。Dorisはinverted index、bloom filter index、zone map index等の様々なインデックスを通じて超高速検索を提供します。また、集計、ソート、joinなどの分析クエリに対して優れたネイティブパフォーマンスを提供します。
  4. Grafana(Doris App plugin付き): ログ、trace、メトリクス向けに豊富で使いやすい可視化を提供します。GrafanaのベースCapabilityに加えて、Doris App pluginは実用的な機能を追加します。「Discover」機能はKibanaユーザーに評価される一流の検索体験を提供します。「Traces」機能は調査に値するtrace(遅いもの等)を発見するネイティブなtrace探索を提供し、Jaegerユーザーに馴染み深いものとなっています。
このページでは