ダイナミックグラフの使用

ダイナミック・グラフは、アプリケーションのモデルであり、コンポーネント間のすべての物理的および論理的な依存関係をキャプチャします。 このグラフには、ホスト、オペレーティングシステム、 Java 仮想マシン(JVM)、 Cassandra ノード、 MySQL データベースなどの物理コンポーネントが含まれています。 グラフには、トレース、アプリケーション、サービス、クラスター、表スペースなどの論理コンポーネントも含まれます。 Instana のエージェントとセンサーがコンポーネントとその依存関係を自動的に検出することで、グラフは現在の状態を反映するようリアルタイムで継続的に更新されます。

グラフは各ノードの状態情報を継続的に更新します。 状態情報には、メトリック、構成データ、計算されたヘルス値が含まれます。 健康値は、意味的知識と機械学習アプローチを組み合わせて計算されます。 Instana グラフ内の依存関係を分析し、サービスやアプリケーションなどの論理的なグループを特定します。 論理グループを識別することで、問題がこれらの上位レベルのコンポーネントにどのように影響するかをより深く理解し、それらの問題の重大性を判断するのに役立ちます。 グラフ全体は永続化されており、 Instana は時間を遡ったり進んだりして、グラフの知識ベース全体を活用し、さまざまな運用シナリオに対応することができます。

Instana は、ダイナミックグラフを活用して、変更や課題がアプリケーションやサービスに与える影響を分析します。 影響が重大な場合、 Instana は関連する一連の問題や変更をまとめてインシデントとして扱います。 インシデントは、問題や変更の経時的な推移を追跡し、 Instana がインシデントの根本原因を直接特定できるようにします。 変更は自動的に検出され、 Instana はその変更が周辺のノードに与える影響を計算します。

その変化はいくつかの形で現れる:

  • その結果、健康状態の悪化が問題視される。
  • システム設定の変更。
  • 新しいプロセス、コンテナ、サーバーの展開、出現、消滅。

この概念を説明するために、ElasticsearchWeb インターフェースを通じて製品を検索するためのクラスター。 この例は1つのマイクロサービスで、Dynamic Graphがクラスタと依存関係をどのようにモデル化するかを示しています。

動的アプリケーション

Elasticsearchクラスタ用のDynamic Graphのモデルを開発し、Dynamic Graphがどのように動作し、分散環境や流動的な環境でどのような利点をもたらすかを理解する。

このモデルは単一のElasticsearchノード。 Elasticsearch ノードは Java アプリケーションであるため、グラフは次のように表示されます:

ESノードグラフ

グラフは、ホスト上で自動的に検出されたコンポーネントとその関係を示している。 Elasticsearch ノードの場合、 Instana エージェントは、 JVM、プロセス、 Docker コンテナ(ノードがコンテナ内で実行されている場合)、およびエージェントが実行されているホストを検出します。 アプリケーションがAmazon AWS などのクラウド環境で実行されている場合、 Instana エージェントはそのアベイラビリティゾーンを検出し、グラフに反映します。

ダイナミック・グラフでは、各コンポーネントはノードとして表現される。 各ノードにはプロパティがあります(例: JVM_Version=1.7.21)。 Instana は、関連するすべてのメトリクスをリアルタイムで収集します。 メトリクスには、ホストのネットワーク統計、 JVM のガベージコレクション統計、および Elasticsearch ノードによってインデックス化されたドキュメント数が含まれます。

グラフのノード間の接続は、それらの関係を表す。 この場合、関係は "run on "の関係である。 例えば、ES ノードの「実行元」は JVM です。

Elasticsearch クラスタは複数のノードを相互に接続して構成されます。

ESクラスタグラフ

このグラフには、クラスタ全体の状態と健全性を表すクラスタノードが含まれる。 4つすべてに依存しているElasticsearchクラスターを構成するノード。

論理ユニットElasticsearchインデックスです。 Elasticsearchクライアントはインデックスを使用してドキュメントにアクセスします。 各インデックスは、クラスター内の ES ノード全体に分散される 1 つ以上のシャードに分割されます。

グラフは、アプリケーションによって使用されるインデックスの統計と健全性を取得します。

ES指数グラフ

次のグラフには、Spring BootアクセスするアプリケーションElasticsearch索引。

Spring Bootグラフ

Instana ( Java )センサーは、 Spring Boot アプリケーションのアクティビティに関する分散トレースを記録します。 これらのトレースから、 Instana は、 Spring Boot アプリケーションが Elasticsearch のインデックスにアクセスしていることを認識します。 ダイナミックグラフは、これらのトレースと対応する論理コンポーネントを関連付け、異なるトレースの統計と健全性メトリクスの追跡を可能にする。

このグラフは、 Elasticsearch のさまざまな問題を把握するのに役立ち、 Instana がそれらの問題がサービスの全体的な健全性に与える影響をどのように分析するかを示しています。

次の問題を考えてみましょう。

  1. インデックスまたはシャード・データの読み取り/書き込みパフォーマンスが低下する、単一ホスト上のI/O問題。
  2. Elasticsearch ノードでスレッドプールのオーバーロードが発生し、リクエストがキューイングされました。 これらの要求は、処理できるスレッドが利用可能になるまで処理できません。

グラフ事件

インシデントの説明

ホスト(1)でI/O問題が発生します。 ヘルス インテリジェンス システムは、ホストのヘルスを黄色で表示し、問題を問題追跡システムに通知します。 次に、ホスト(1)のI/Oの問題がES(Elasticsearch)ノード(2)。 ヘルス・インテリジェンス・システムは、このノードのスループットの低下を検出し、黄色としてマークする。 健康情報システムは別の問題を引き起こします。 Instana これら2つの問題を関連付け、1つの事案としてまとめます。 クラスターの状態は良好であり、サービス品質には影響がないため、このインシデントは問題としてマークされていません。

別の ES ノード (3) では、クエリ処理スレッド プールが過負荷になり、リクエストがプールされます。 スレッドプールの過負荷によりパフォーマンスが著しく低下しているため、 Instana はノードの状態を「赤」とマークします。 この過負荷はESクラスタ(4)に影響し、スループットの低下により黄色に変色する。 生成された 2 つの問題は、最初のインシデントに集約されます。

クラスターがインデックス(5)のパフォーマンスに影響を与えるため、インデックスは黄色でマークされ、問題はインシデントに追加される。 現在、製品検索トランザクションのパフォーマンスが影響を受けており、パフォーマンス健全性分析がトランザクショ ンをイエローとマークし(6)、アプリケーションの健全性にも影響を及ぼしている(7)。

アプリケーションとトランザクションの両方が影響を受けているため、インシデントのステータスはイエローとなり、製品検索のパフォーマンスが低下し、ユーザーが影響を受けていることを示します。

2つの根本原因を強調した:

  • 入出力問題
  • スレッドプールの問題

Instana この画面ではインシデントの経過が表示され、ユーザーは問題発生時の構成要素を詳細に確認できるほか、当時の正確な環境情報やメトリクスも確認できます。

Instana 以下の機能を提供します:

  • 物理、プロセス、トレース情報をグラフに組み合わせて、それらの依存関係を理解する機能。
  • 単一のコンポーネント、クラスター、アプリケーション、トレースの健全性を理解するためのインテリジェンス。
  • インテリジェントな影響分析により、問題が重大かどうかを理解します。
  • 問題の根本原因を示し、実用的な情報とコンテキストを提供する能力。
  • グラフの履歴、そのプロパティ、メトリック、変更、および問題を保存する機能。 Instana 「タイムシフト」機能を提供し、すべてのコンポーネントの状態や依存関係を明確に把握した上で、あらゆる問題を分析できるようにします。

現代の環境における問題の根本原因を見つけることは、今後ますます難しくなる。 簡単な例で示したように、こうした問題を解決するには、文脈、依存関係、影響を深く理解する必要がある。 頻繁に新しいリリースがプッシュされ、常にサービスを追加したり削除したりするマイクロサービスに基づく「リキッド」システムでは、複雑さはさらに増す。 Instana システムの状態や健全性をリアルタイムで監視し、変化や問題が生じた際の影響を把握します。これらはすべて、手動での設定を一切必要とせず、リアルタイムで行われます。

使用法

ダイナミック・グラフは自動的に作成され、更新される。 「サービス設定」 の説明に従って、サービスなどのコンポーネントを定義することができます。

グラフの探索やスコープの指定には、強力な「 Dynamic Focus 」機能を利用できます。