Header background

ディープサーチ:Dynatrace Grailでデータ探索と調査を変革する

高性能なDynatrace Query Language(DQL)検索コマンドは、配列やネストされたレコードを含む複雑でネストされたデータ構造においても、シンプルな文字列ベースのフィルタリングを実現します。データ構造や利用可能なフィールド、データ型に関する知識がなくても、Dynatrace Grail®に保存されたあらゆるデータに対して、容易にディープサーチ分析を実行できるようになりました。

複雑で多層的なデータを扱う場合、問題の根本原因を特定したり異常を識別したりすることは、都市のスカイラインでちらつく光を探すような感覚に陥ることがあります。効果的なトラブルシューティングには、データ構造、フィルター、クエリロジックに対する深い理解が求められます。しかし、膨大なログやメトリクスを前にして、何を探せばよいのかさえわからない場合はどうでしょうか?例えば、アプリケーション全体でエラー率が急上昇した原因を調査していると想像してみてください。どのサービスが連鎖反応を引き起こしたのか、ノイズをどのようにフィルタリングすべきかを知らなければ、どこから手をつければよいのか見当もつきません。

Grailに導入されたディープサーチ機能により、複雑なデータのノイズを切り抜ける新たな方法が実現しました。データ構造の複雑な層を一つ一つ理解する必要なく、データを容易に探索できるようになりました。

データの調査は時間のかかるプロセスです

困難なデータ調査は負担が大きくなります。データの検証に時間がかかりすぎ、データ構造の複雑さを理解していない者にとっては問題の特定が困難です。DQL検索導入前の以下のクエリ例では、Oracleデータベースから送信されたイベントに「error」というフレーズが含まれるスパン内をフィルタリングしようとしています。

Figure 1. Attempting to filter within spans before the introduction of DQL search.
図1. DQL検索導入前のスパン内でのフィルタリングの試み。

複雑な構造内での検索

Grailの独自技術であるデータワーピングにより、インデックス不要・スキーマオンリード方式の高性能クエリを実現し、多様なデータセットの柔軟な分析を可能にします。Grailは従来からクエリ実行時に複雑なデータ構造を動的に解釈する機能を備えていましたが、DQL検索コマンドの追加により、Grailに保存されたメトリクス、ログ、トレースなどのデータに対し、より機敏かつ直感的な方法で詳細な分析が可能となりました

複数フィールドにわたる簡素化された文字列ベースのフィルタリング

基盤となる構造を理解する必要なく、膨大かつ複雑なデータセットを横断的に検索できるようになりました。文字列ベースの検索を活用することで、深くネストされたデータの直感的な探索が可能となり、手動でのフィルタ設定やクエリ構文は不要です。このアプローチにより、従来のスキーマ知識やフィルタ構築の障壁が解消され、データ調査がすべての方にとって容易になります。(下図2参照)

Figure 2. Deep search within spans for any event containing the phrase "error" and where the attribute db.system contains “oracle” using the new DQL search command
図2. 新しいDQL検索コマンドを使用した、フレーズ「error」を含むイベントかつ属性db.systemに「oracle」を含むものを対象としたスパン内での詳細検索

膨大なデータの中から必要な情報を素早く抽出

インデックス化済みや事前定義されたフィールドだけでなく、すべてのフィールドを横断検索できますこれにより、事前タグ付けや前処理を必要とせず、あらゆるデータを容易に抽出可能です。DQL検索はテラバイト規模のデータでも高いパフォーマンスを発揮するよう最適化されています。

ネスト構造内での検索

ネストされた要素や配列内の関連データを見つける作業は煩雑で、データ構造の必要な部分を除外しないよう多大な労力を要します。新しいDQL検索コマンドでは、ネストされた要素や配列を含む複雑なデータ構造全体を検索し、必要な情報を正確に見つけることが可能です。

Figure 3. Instead of writing complex filters or knowing the exact schema, simply search using relevant terms.
図3. 複雑なフィルターの記述や正確なスキーマの知識が不要で、関連する用語を使用して簡単に検索できます。

例えば、開発環境でのデプロイ失敗をトラブルシューティングするDevOpsエンジニアを想定してみましょう。設定ミスやランタイムエラーを疑い、「exception」という用語を含むトレースを特定する必要がありますが、これはネストされたレコードのspan.events配列の奥深くに埋もれています。システムはすべてのネストされたフィールドをスキャンし、関連するスパンを瞬時に抽出します。これにより時間を節約し、摩擦を減らし、根本原因の分析を加速します。

次に、Dynatrace Security Investigator を使用した別の例を考えてみましょう。Amazon クラウド環境で発生したセキュリティインシデントを調査しているとします。AWS CloudFrontログから特定のイベントを追跡する必要があり、CloudTrailイベントIDの値は把握しています。しかし、そのイベントIDがどこにあるのか見当もつきません。コンテンツ内に埋もれている可能性もあれば、ヘッダー値に隠れている可能性、あるいは見つけにくいフィールドに保存されている可能性もあります。DQL検索コマンドを使えば、すべてのフィールドを瞬時に検索できます。フィルターもフィールドマッピングも不要で、最も必要な時に迅速かつ正確な結果を得られます。

Figure 4. Search for a specific event using its AWS CloudTrail event ID value
図4. AWS CloudTrailイベントID値を用いた特定イベントの検索

DQL内で検索バーを使用するのと同じくらい簡単です

Dynatraceでは、インデックスやスキーマを気にすることなく、探索的分析の柔軟性とパワーを体験いただけます。DQL検索コマンドは、シンプルさを維持しながら詳細な調査を可能にし、より幅広いユーザー層が利用できるようになっています。

DQL検索の深さがデータ探索の旅をいかに向上させるか、ぜひ学んでみませんか? 今すぐ始めましょう。