ダイナミック・フォーカス

Dynamic Focusクエリは、監視環境内の特定のエンティティ、メトリクス、およびイベントを識別する強力なフィルタリング機能を提供し、最も重要なデータに集中できるようにします。

主要な概念

ダイナミック・フォーカスのクエリーは、高度な機能を使用して、正確で効率的なフィルタリングを実現します。

動的グラフ

Instana のダイナミックグラフは、環境のすべての物理的および論理的コンポーネントに加え、履歴属性、メトリクス、分散トレース、イベントなどを網羅した包括的なモデルです。 これらの要素は、依存関係に基づいて、グラフの中で相互に接続されている。 ダイナミックフォーカスクエリを使用すると、グラフにフィルタを作成できるので、データのカスタムビューを定義して、必要な情報に正確に焦点を当てることができます。 ダイナミックグラフの詳細については、 「ダイナミックグラフの使用方法」 を参照してください。

自動ディスカバリー

Instana のエージェントは、すべてのコンポーネントとその依存関係をリアルタイムで自動的に検出し、それらをダイナミックグラフに追加します。 保存された動的フォーカスクエリは、影響を受ける場合、手動での更新や設定を必要とせずに自動的に更新されます。

Lucene ベースのクエリ言語

Dynamic Focusのクエリは、強力かつ柔軟なテキスト検索エンジンライブラリであるLuceneを基盤としています。 Luceneは、ダイナミックグラフ内の属性、メトリクス、その他の要素をインデックス化することで、膨大な量のデータを効率的に検索・フィルタリングするための動的フォーカスクエリを実現します。 ダイナミック・フォーカス・クエリを使用することで、データセット全体にわたって複雑かつ精緻な「コンテキスト横断」検索を実行し、最も関連性の高い情報を迅速に取得することができます。 Luceneの機能は全文検索もサポートしており、監視環境内の特定のデータポイントやパターンを簡単に見つけることができます。 Lucene のクエリ言語の使い方については、Lucene Query Syntax documentation を参照してください。

Dynamic Focusクエリ: Instana の第一世代クエリ言語

動的フォーカスクエリは、 Instana で導入された第一世代のクエリ言語です。 動的フォーカスクエリを使用すると、動的グラフ内のさまざまなコンテキストにわたって、詳細かつカスタマイズ可能な検索を実行できます。 新しいクエリ手法も登場していますが、複数のデータストアにまたがる具体的なテキストベースのクエリを作成する必要があるユーザーにとって、ダイナミック・フォーカス・クエリは依然として強力なツールです。

照会の構文

動的フォーカスクエリはLuceneのクエリ構文を使用しており、これにより柔軟かつ強力な方法で検索クエリを構築することができます。 以下のコンポーネントは、その仕組みの概要を説明するものである:

  • 基本的な構文:Luceneのクエリは、用語と演算子で構成されます。用語は単一の単語(例:「error」)でも、フレーズ(例: "memory leak")でも構いません。AND、OR、NOTなどの演算子を使用することで、用語を組み合わせたり、それらの関係を制御したり、クエリを絞り込んだりすることができます。

  • フィールド指定の検索:検索語の先頭にフィールド名を付けることで、特定のフィールドに検索を限定できます(例: status:500)。フィールド指定の検索を使用すると、データ内の特定の属性に焦点を当てることができます。

  • ワイルドカード:Luceneは部分一致のためのワイルドカードの使用をサポートしています。 たとえば、「memory」や「memcache mem* 」といった単語に一致します

デフォルトの演算子

Lucene のデフォルトの演算子は、明示的な演算子が指定されていない場合に項がどのように結合されるかを決定します。 Instana のDynamic Focusクエリでは、デフォルトの演算子は通常ANDです。 つまり、演算子を指定せずに複数の語句を入力した場合、クエリはそれらの語句すべてにマッチする結果を返す。

例えば、error timeoutというクエリはerror AND timeoutと解釈され、"error "と "timeout "の両方を含む結果だけが返されます

複雑なサブクエリ

動的フォーカスクエリを使用すると、括弧を使って用語や演算子をグループ化する複雑なサブクエリを作成できます。 この機能により、クエリの構造や結果のフィルタリング方法をより細かく制御できる。

例えば、(error OR timeout) AND status:500は "error "か "timeout "のどちらかを含む結果を返しますが、ステータスが500の場合のみです。

これらの複雑なサブクエリは、特定のニーズに合わせた詳細かつ正確なフィルタを構築します。

既知の制限

DFQは強力だが、以下のような既知の限界がある:

  • パフォーマンス:複数の検索条件や演算子を含む複雑なクエリは、特にデータ量が多い環境において、パフォーマンスに影響を与える可能性があります。
  • フィールド固有の制限事項:データのインデックス作成方法やダイナミックグラフへの保存方法によっては、フィルタリングに使用できるフィールドがすべてではない場合があります。
  • 一部の環境では全文検索が利用できない:特定の環境では、全文検索機能が制限されたり利用できなくなったりする場合があり、その結果、実行可能なクエリの種類が制限されることがあります。

こうした制限はあるものの、Dynamic Focusのクエリは、 Instana 内で高度なフィルタリングや検索機能が必要なユーザーにとって、依然として不可欠なツールです。

動的フォーカスクエリの仕組み

  1. 範囲の定義:インフラストラクチャのコンポーネント、アプリケーション、サービス、または特定のトランザクションを選択して、分析の範囲を定義します。 スコープはデータを絞り込み、分析をより効率的にする。

  2. フィルタリング:タグ、メトリクス、または属性に基づいてフィルタを適用します。 フィルターを組み合わせて、必要なデータを正確に抽出する詳細なクエリーを作成できます。

  3. リアルタイム分析: Instana は、選択した範囲やフィルターに基づいてリアルタイムの分析結果を提供します。これにより、問題を迅速に特定・解決し、パフォーマンスを最適化し、的確な意思決定を行うことができます。

なぜ動的フォーカスクエリを使うのか?

ダイナミック・フォーカス・クエリは、膨大なデータ量に圧倒されがちな環境において特に有用です。 フィルターを使用することで、以下のことが可能になる:

  • ノイズを減らす:関連するデータに焦点を当て、それ以外は無視する。
  • 効率の向上:必要な情報を素早く見つけ、分析できます。
  • 精度の向上:意思決定は、入手可能な最も関連性が高く正確なデータに基づいて行う。

さまざまな状況での動的フォーカスクエリの適用

ダイナミック・フォーカス・クエリは、以下のコンテキストで使用できます:

  • インフラストラクチャの監視:ホスト、コンテナ、または特定のインフラストラクチャコンポーネントでフィルタリングし、パフォーマンスや状態に関する洞察を得ることができます。
  • 活用例:特定のサービスやアプリケーションを監視し、主要業績評価指標(KPI)を追跡して、異常を検知します。
  • イベントのフィルタリング:エラー、遅延の問題、リソースの制約など、環境に影響を与える特定のイベントを抽出して分析します。

ダイナミック・フォーカスのクエリーは強力かつ柔軟で、システムを効果的に管理・最適化するために必要なツールを提供します。