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

概要

オブザーバビリティとは?

オブザーバビリティとは、システムの外部出力データを通じて、システムの内部状態を推測する能力を指します。オブザーバビリティプラットフォームは、3つのコアデータであるログ、トレース、Metricsを収集、保存、可視化します。これにより、チームは分散システムの運用状況を包括的に理解し、リソース最適化、障害予測、根本原因分析をサポートし、システムの信頼性を向上させ、ユーザーエクスペリエンスを強化することができます。

オブザーバビリティが重要性を増している理由

オブザーバビリティプラットフォームには、システムの安定性向上、運用効率の最適化、ビジネスイノベーションの実現において重要な複数の利用ケースがあります。

  1. 障害診断と根本原因分析: リアルタイム監視、異常検知、トレース機能により、障害を迅速に特定・分析できます。例えば、金融業界では、オブザーバビリティをトランザクショントレーシングやAI技術と組み合わせることで、復旧時間を短縮し、ビジネス継続性を確保できます。また、カオスエンジニアリングをサポートして障害シナリオをシミュレートし、システムの耐障害性を検証します。

  2. パフォーマンス最適化とリソース計画: システムのリソース使用率と応答時間を分析することで、パフォーマンスのボトルネックを特定し、設定を動的に調整(例:ロードバランシング、オートスケーリング)できます。履歴データを使用してリソース需要を予測し、クラウドリソース配分を最適化し、コストを削減できます。

  3. ビジネス意思決定支援: ITパフォーマンスデータをビジネス成果(ユーザー定着率や取引量など)と関連付けることで、ビジネス戦略の策定に役立ちます。例えば、ユーザーエクスペリエンスメトリクスを分析することで、製品機能の改善を導くことができます。

  4. セキュリティとコンプライアンス監視: 異常な動作(例:ゼロデイ攻撃)を検知し、自動応答をトリガーしてシステムセキュリティを強化します。同時に、ログ監査により規制要件への準拠を確保します。

  5. DevOpsコラボレーション: カナリアリリース中、トラフィックタギングにより新バージョンの動作を追跡できます。呼び出しチェーン分析と組み合わせることで、リリース進行について情報を提供し、開発者がコードパフォーマンスを最適化し、本番インシデントを削減するのに役立ちます。

近年におけるオブザーバビリティの重要性の高まりは、主に2つの要因によって推進されています:

  1. ビジネスとITシステムの複雑性の増大: クラウドコンピューティングとマイクロサービスの発展により、ビジネスシステムはますます複雑になっています。例えば、GenAIアプリケーションのリクエストでは、App、サービスゲートウェイ、認証サービス、課金サービス、RAGエンジン、Agentエンジン、ベクトルデータベース、ビジネスデータベース、分散キャッシュ、メッセージキュー、大規模モデルAPIなど、数十のサービスが関与する可能性があります。SSHによるサーバー状態確認やログ分析などの従来手法は、このような複雑な環境では効果的ではありません。オブザーバビリティプラットフォームは、ログ、trace、Metricデータの収集と保存を統合し、一元的な可視化と迅速な問題調査を提供します。

  2. ビジネス信頼性への高い要求: システム障害がユーザーエクスペリエンスに与える影響はますます高くなっています。そのため、障害検知と復旧の効率性がより重要になっています。オブザーバビリティは完全なデータ可視性とパノラマ分析を提供し、チームが根本原因を迅速に特定し、ダウンタイムを短縮し、サービス可用性を確保することを可能にします。さらに、グローバルデータ分析と予測により、潜在的なリソースボトルネックを早期に特定し、障害が発生する前に防止できます。

オブザーバビリティソリューションの選択方法

オブザーバビリティデータにはいくつかの特性があり、大量データの保存と分析の課題に対処することが、あらゆるオブザーバビリティソリューションにとって重要です。

  1. 高いストレージ量とコスト感度: オブザーバビリティデータ、特にログとトレースは、一般的に大量で継続的に生成されます。中大規模企業では、日次データ生成量は多くの場合テラバイトやペタバイトに達します。ビジネスや規制要件を満たすため、データを数か月または数年間保存する必要があることが多く、ストレージ量がPBやEBスケールに達し、大幅なストレージコストを招きます。時間の経過とともに、このデータの価値は減少するため、コスト効率がますます重要になります。

  2. リアルタイム要件を伴う高スループット書き込み: 日次でTBまたはPBスケールのデータ取り込みを処理するには、多くの場合1~10GB/sまたは数百万から数千万レコード/秒の書き込みスループットが必要です。同時に、リアルタイムトラブルシューティングとセキュリティ調査の必要性から、プラットフォームはリアルタイムデータ可用性を確保するためサブ秒の書き込みレイテンシをサポートする必要があります。

  3. リアルタイム分析と全文検索機能: ログとトレースには大量のテキストデータが含まれています。キーワードやフレーズの迅速な検索は不可欠です。従来のフルスキャンや文字列マッチング手法では、特にこのスケールでのリアルタイムパフォーマンスを実現できないことが多く、特に高スループット、低レイテンシの取り込み条件下では困難です。そのため、テキスト向けに調整された転置インデックスの構築が、サブ秒のクエリレスポンシブネス実現に重要になります。

  4. 動的データスキーマと頻繁な拡張ニーズ: ログは元々非構造化フリーテキストログとして存在していましたが、半構造化JSON形式に発展しました。プロデューサーはJSONフィールドを頻繁に変更するため、スキーマの柔軟性が不可欠です。従来のデータベースやデータウェアハウスは、このような動的スキーマを効率的に処理するのに苦労しますが、datalakeシステムはストレージの柔軟性を提供するものの、リアルタイム分析パフォーマンスでは不十分です。

  5. 複数のデータソースと分析ツールとの統合: データ収集と可視化には多くのオブザーバビリティエコシステムツールがあります。ストレージと分析エンジンは、これらの多様なツールとシームレスに統合する必要があります。

Elasticsearch、ClickHouse、Doris、クラウドベンダーが提供するロギングサービスなどの選択肢がある中で、どのように選択すべきでしょうか?主要な評価基準は以下の通りです:

1. パフォーマンス: 書き込みとクエリパフォーマンスを含む

オブザーバビリティはトラブルシューティングなどの緊急時によく使用されるため、クエリは迅速に応答する必要があります。特にログとトレースのテキストコンテンツについては、反復的な探索をサポートするリアルタイム全文検索が必要です。さらに、ユーザーはリアルタイムに近いデータをクエリできる必要があります。数時間または数分前のデータに限定されたクエリでは不十分で、過去数秒からの新鮮なデータが必要です。

  • Elasticsearchは転置インデックスと全文検索で知られ、サブ秒での検索を提供します。しかし、高スループット書き込みに苦労し、ピーク負荷時に書き込みを拒否したり、高レイテンシを経験したりすることがあります。集約と統計分析のパフォーマンスも比較的弱いです。
  • Cloud Logging Servicesは豊富なリソースを通じて十分なパフォーマンスを提供しますが、コストが高くなります。
  • ClickHouseは列指向ストレージとベクトル化実行を使用して、高い書き込みスループットと高い集約クエリパフォーマンスを実現します。しかし、全文検索パフォーマンスはElasticsearchやDorisに何倍も劣り、実験的段階で本番使用には不適切です。
  • Dorisは、列指向ストレージとベクトル化実行を活用し、オブザーバビリティシナリオ向けに転置インデックスを最適化しています。Elasticsearchより優れたパフォーマンスを提供し、書き込みが約5倍高速で、クエリが約2倍高速です。集約パフォーマンスはElasticsearchより最大6~21倍優れています。

2. コスト: ストレージとコンピュートコストを含む

オブザーバビリティデータ量は膨大で、特にログとトレースが該当します。中大規模企業では、日次でTBやPBものデータを生成します。ビジネスや規制ニーズにより、データを数か月または数年間保持する必要があり、ストレージ要件をPBまたはEBの範囲に押し上げます。ビジネスクリティカルなデータと比較して、オブザーバビリティデータは価値密度が低く、その価値は時間とともに減少するため、コスト感度が重要です。さらに、大量のデータを処理すると、相当なコンピュートコストが発生します。

  • Elasticsearchは高コストに悩まされます。そのストレージモデルは、行ベースの生データ、転置インデックス、docvalue列指向ストレージを組み合わせており、一般的な圧縮比は約1.5:1です。JVMやインデックス構築による高いCPUオーバーヘッドが、コンピュートコストをさらに増加させます。
  • Dorisには、オブザーバビリティシナリオ向けの多数の最適化が含まれています。Elasticsearchと比較して、総コストを50~80%削減します。これには、簡略化された転置インデックス、ZSTDによる列指向ストレージ圧縮(5:1~10:1)、コールド・ホット階層ストレージ、シングルレプリカ書き込み、書き込み増幅を削減する時系列コンパクション、ベクトル化インデックス構築が含まれます。
  • ClickHouseは列指向ストレージとベクトル化エンジンを使用し、より低いストレージと書き込みコストを実現します。
  • Cloud Logging ServicesはElasticsearchと同様に高価です。

3. オープン性: オープンソースとマルチクラウド中立性を含む

オブザーバビリティプラットフォームを選択する際は、オープンソースであるかどうかやマルチクラウド中立性を含むオープン性を考慮してください。

  • ElasticsearchはElastic社が維持するオープンソースプロジェクトで、複数のクラウドで利用できます。そのELKエコシステムは自己完結型で、他のエコシステムとの統合が困難です。例えば、KibanaはElasticsearchのみをサポートし、拡張が困難です。
  • DorisはApache Top-Levelオープンソースプロジェクトで、主要なグローバルクラウドプロバイダーによってサポートされています。OpenTelemetry、Grafana、ELKとよく統合され、オープン性と中立性を維持します。
  • ClickHouseはClickHouse Inc.が維持するオープンソースプロジェクトで、複数のクラウドで利用できます。OpenTelemetryとGrafanaをサポートしていますが、オブザーバビリティ企業の買収により、将来の中立性に懸念が生じています。
  • Cloud Logging Servicesは各クラウドに密結合しており、オープンソースではなく、ベンダー間で異なるため、一貫したエクスペリエンスと移行柔軟性が制限されます。

4. 使いやすさ: 管理可能性と使用可能性を含む

データ量により、オブザーバビリティプラットフォームは通常分散アーキテクチャを採用します。デプロイメント、スケーリング、アップグレード、その他の管理タスクの容易さが、スケーラビリティに大きく影響します。システムが提供するインターフェースが、開発者効率とユーザーエクスペリエンスを決定します。

  • ElasticsearchのKibana web UIは非常にユーザーフレンドリーで管理可能です。しかし、DSLクエリ言語は複雑で習得が困難で、統合と開発に課題をもたらします。
  • DorisはKibanaに似たインタラクティブ分析インターフェースを提供し、GrafanaやKibana(近日公開)とネイティブに統合します。そのSQLは標準でMySQL互換であり、開発者やアナリストにとって使いやすくなっています。Dorisはデプロイと保守が容易なシンプルなアーキテクチャを持ち、サービス中断なしのオンラインスケーリング、自動ロードバランシング、ビジュアルCluster Managerを含みます。
  • ClickHouseはSQLインターフェースを提供しますが、独自の構文を使用します。ローカルTable対分散Tableなどの概念の露出や、スケーリング時の自動リバランシングの欠如により、保守が困難です。一般的に、カスタムクラスター管理システムの開発が必要です。
  • Cloud Logging ServicesはSaaSの利便性を提供し、ユーザーはインフラストラクチャを管理する必要がなく、使いやすさを享受できます。

上記の分析に基づくと、Dorisは高パフォーマンスな取り込みとクエリを実現しながら、コストを低く抑えます。そのSQLインターフェースは使いやすく、アーキテクチャは保守とスケーリングが簡単です。また、複数のクラウドで一貫したエクスペリエンスを確保し、オブザーバビリティプラットフォーム構築の最適な選択となります。

Dorisに基づくオブザーバビリティソリューション

システムアーキテクチャ

Apache DorisはMPP分散アーキテクチャを持つ現代的なデータウェアハウスで、ベクトル化実行エンジン、CBOオプティマイザー、高度なインデックス、マテリアライズドビューを統合しています。大規模リアルタイムデータセットでの超高速クエリと分析をサポートし、優れた分析エクスペリエンスを提供します。継続的な技術革新により、DorisはClickBench(単一Table)、TPC-H、TPC-DS(複数Table)などの権威あるベンチマークで最高ランキングを達成しています。

オブザーバビリティシナリオにおいて、Dorisは転置インデックスと超高速全文検索機能を導入し、最適化された書き込みパフォーマンスとストレージ効率を実現しています。これにより、ユーザーはDorisに基づく高パフォーマンス、低コスト、オープンなオブザーバビリティプラットフォームを構築できます。

Dorisベースのオブザーバビリティプラットフォームは、3つのコアコンポーネントで構成されます:

  • データ収集と前処理: OpenTelemetryやログtash、FilebeatなどのELKエコシステムツールを含む、様々なオブザーバビリティデータ収集ツールをサポートします。ログ、trace、MetricデータはHTTP API経由でDorisに取り込まれます。
  • データストレージと分析エンジン: Dorisはオブザーバビリティデータに統合された高パフォーマンス、低コストストレージを提供し、SQLインターフェース経由で強力な検索・分析機能を公開します。
  • クエリ分析と可視化: GrafanaやKibana(ELKスタック)などの人気オブザーバビリティ可視化ツールと統合し、検索、分析、アラート用の直感的なインターフェースを提供し、リアルタイム監視と迅速な応答を実現します。

doris-observabiltiy-architecture

主要機能と利点

高パフォーマンス

  • 高スループット、低レイテンシ書き込み: サブ秒レイテンシでPBスケール(10GB/s)のLog、trace、Metricデータの日次安定取り込みをサポートします。
  • 高パフォーマンス転置インデックスと全文検索: 転置インデックスと全文検索をサポートし、一般的なログキーワード検索でサブ秒応答時間を実現し、ClickHouseより3~10倍高速です。
  • 高パフォーマンス集約分析: MPP分散アーキテクチャとベクトル化パイプライン実行エンジンを活用し、Dorisはオブザーバビリティシナリオでのトレンド分析とアラートに優れ、ClickBenchテストで世界をリードしています。

低コスト

  • 高圧縮比と低コストストレージ: 5:1~10:1の圧縮比(インデックス含む)でPBスケールストレージをサポートし、Elasticsearchと比較してストレージコストを50~80%削減します。コールドデータはS3/HDFSにオフロードでき、ストレージコストをさらに50%削減します。
  • 低コスト書き込み: 同じ書き込みスループットでElasticsearchより70%少ないCPUを消費します。

柔軟なスキーマ

  • トップレベルでのスキーマ変更: ユーザーはLight Schema Changeを使用して列やインデックスを追加・削除(ADD/DROP COLUMN/INDEX)でき、スキーマ変更を数秒で完了できます。オブザーバビリティプラットフォームを設計する際、ユーザーは現段階で必要なフィールドとインデックスのみを考慮すれば良いです。
  • 内部フィールド変更: VARIANTと呼ばれる半構造化データ型がスケーラブルなJSONデータ用に特別に設計されています。JSON内のフィールド名と型を自動識別し、頻繁に発生するフィールドを列指向ストレージにさらに分割して、圧縮比と分析パフォーマンスを向上させます。ElasticsearchのDynamic Mappingと比較して、VARIANTは単一フィールドのデータ型変更を可能にします。

ユーザーフレンドリー

  • 標準SQLインターフェース: Dorisは標準SQLをサポートし、MySQLプロトコルと構文と互換性があり、エンジニアやアナリストがアクセスしやすくなっています。
  • オブザーバビリティエコシステムとの統合: OpenTelemetryとELKエコシステムと互換性があり、Grafana、Kibana(近日公開)可視化ツールをサポートしてシームレスなデータ収集と分析を実現します。
  • 簡単な運用: オンラインスケーリング、自動ロードバランシング、Cluster Manager経由のビジュアル管理をサポートします。

オープン性

  • オープンソース: Apache Dorisは世界中で5000以上の企業に採用されているトップレベルのオープンソースプロジェクトで、OpenTelemetry、Grafanaなどのオブザーバビリティエコシステムをサポートします。
  • マルチクラウド中立: 主要なクラウドプロバイダーがDoris SaaSサービスを提供し、クラウド間での一貫したエクスペリエンスを確保します。

デモとスクリーンショット

OpenTelemetryコミュニティの包括的なデモを使用して、Dorisベースのオブザーバビリティプラットフォームを実証します。

観察されるビジネスシステムは、フロントエンド、認証、カート、支払い、物流、広告、推薦、リスク制御など10以上のモジュールで構成されるeコマースWebサイトをシミュレートし、高レベルのシステム複雑性を反映しており、オブザーバビリティデータの収集、ストレージ、分析に重大な課題を提示しています。

Load Generatorツールがエントリーサービスに継続的なリクエストを送信し、大量のオブザーバビリティデータ(ログ、トレース、Metrics)を生成します。これらのデータは様々な言語のOpenTelemetry SDKを使用して収集され、OpenTelemetry Collectorに送信され、Processorsで前処理され、最終的にOpenTelemetry Doris Exporter経由でDorisに書き込まれます。Grafanaなどのオブザーバビリティ可視化ツールは、MySQLインターフェース経由でDorisに接続し、可視化されたクエリと分析機能を提供します。

Doris OpenTelemetry Demo

GrafanaはMySQL datasource経由でDorisに接続し、ログ、トレース、Metricsの統合可視化と分析を提供し、ログとトレース間のクロス分析を含みます。

  • ログ log-visualization

  • トレース log-visualization

  • Metrics metrics-visualization

Grafanaのログ可視化と分析機能はKibanaと比較して比較的基本的ですが、サードパーティベンダーがKibanaのようなDiscover機能を実装しています。これらは間もなくGrafanaのDoris datasourceに統合され、統合オブザーバビリティ可視化を強化します。今後の拡張には、Elasticsearchプロトコル互換性が含まれ、ネイティブKibanaのDoris接続を可能にします。ELKユーザーにとって、ElasticsearchをDorisに置き換えることで、既存のログと可視化習慣を維持しながら、コストを大幅に削減し、効率を向上させることができます。

studio-visualization