メインコンテンツまでスキップ

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

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

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

  • ログ検索

Log search

  • トレース解析

Trace analysis

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

Metrics dashboard

アーキテクチャ

DOG Stack Architecture

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

  1. データ収集ツール: ログ、トレース、メトリクスなどのテレメトリを収集します。OpenTelemetryは2種類の収集ツールを提供します。1つは10以上の言語をサポートするOpenTelemetry SDKで、アプリケーションやAIエージェントの計装に使用され、通常はトレースデータを収集します。もう1つはOpenTelemetry Collector receiversで、ローカルファイル用のfilelog receiver、ホストメトリクス(CPU、メモリなど)用のhostmetrics receiver、Kubernetes内のポッドメトリクス用のpodmetrics receiverを含みます。Vector、Fluentbit、Node Exporter、Telegrafなどの多くのサードパーティコレクターは、OTLPやその他のプロトコルを介してOpenTelemetry Collectorにデータを送信できます。
  2. OpenTelemetry Collector(Doris Exporterを含む): 収集ツールからテレメトリデータを受信し、処理して、Doris Exporterを介してDorisに永続化します。典型的な処理ステップには、フィルタリング、変換、エンリッチメント、キューイング、バッチングが含まれます。
  3. Doris: OpenTelemetry Collectorからテレメトリデータを受信し、インデックス付き列指向ストレージに効率的に保存します。Dorisは転置インデックス、ブルームフィルターインデックス、ゾーンマップインデックスなどの様々なインデックスを通じて超高速検索を提供します。また、集計、ソート、結合などの分析クエリに対して優れたネイティブパフォーマンスも提供します。
  4. Grafana(Doris App pluginを含む): ログ、トレース、メトリクスに対して豊富で使いやすい可視化を提供します。Grafanaの強力な基本機能に加えて、Doris App pluginは実用的な機能を追加します。「Discover」機能はKibanaユーザーが評価するファーストクラスの検索エクスペリエンスを提供します。「Traces」機能は調査する価値のあるトレース(遅いものなど)を浮き彫りにするネイティブトレース探索を提供し、Jaegerユーザーには馴染みのある感覚を提供します。
このページでは