トポロジーチャートは、システムアーキテクチャ、サービスの依存関係、データフローの方向を視覚化します。このチュートリアルでは、Simple Log Service (SLS) のダッシュボードでトポロジーチャートを設定し、ノード間の関係と関連するメトリックを表示する方法について説明します。
概要
トポロジーチャートは、モジュールまたはアプリケーション全体の依存関係と高レベルのステータスを示すシステムレベルのビューです。
SLS は、収集したトポロジーデータを解析して構造化します。次の例は、生データのサンプルを示しています。child フィールドと parent フィールドは、モジュールまたはアプリケーション間の依存関係を示していますが、この形式は直感的ではありません。
各トポロジーログには、metric_1、metric_2、metric_3、type、およびその他のフィールドも含まれています。child_type/parent_type の値には、SERVER、MQ、WEB などのタイプが含まれます。
トポロジデータを可視化するには、関係フィールドを抽出するクエリ文を実行します。たとえば、* | SELECT child, parent, child_type, parent_type FROM logは、child、child_type、parent、および parent_type フィールドを取得してトポロジグラフを生成します。サポートされているレイアウト: 力指向レイアウト、階層レイアウト、または円形レイアウト。

前提条件
開始する前に、次の条件が満たされていることを確認してください。
親子関係を示すフィールド (例:
child、parent) およびノードタイプを示すフィールドを含む、収集済みのトポロジーデータがある Logstore。チャートを追加できるダッシュボードが必要です。詳細については、ダッシュボードへのチャートの追加をご参照ください。
一般設定
トポロジーチャートのグローバルプロパティを設定します。
トポロジー設定
| [パラメーター] | [説明] |
| 子ノードタイプ | 子ノードのタイプを表すフィールドを選択します。 |
| 子ノード ID | 子ノードの ID を表すフィールドを選択します。 |
| 親ノードタイプ | 親ノードのタイプを表すフィールドを選択します。 |
| 親ノード ID | 親ノードの ID を表すフィールドを選択します。 |
Simple Log Service には、サーバー、データベース、WEB、MQ、Server Load Balancer (SLB)、Web Application Firewall (WAF)、Object Storage Service (OSS)、Alibaba Cloud DNS、スイッチ、ルーター、Android、iOS、および Windows の 13 種類の組み込みノードアイコンが用意されています。 子ノードタイプ および 親ノードタイプ フィールドにノードタイプが指定されていない場合、Simple Log Service はデフォルトのサーバーアイコンを使用します。
設定例
右側でトポロジの設定とレイアウトの設定セクションを設定します。 左側で、時間範囲を設定し、Logstore を選択して、クエリ文を入力します。 ページの上部にある適用をクリックすると、グラフが表示されます。
[トポロジの設定]: 子ノードタイプ を
typeに、子ノード ID をchild_serviceに、親ノードタイプ をtypeに、親ノード ID をparent_serviceに設定しますレイアウトの設定: [レイアウトタイプ] を 円形レイアウト に、[ノードタイプ] を [アイコン] に設定します
次のステートメントは、child_service、parent_service、および type フィールドを取得してトポロジーチャートを生成します。
version: service | select child_service, parent_service, 'SERVER' as type from log
ノードメトリック設定
一般設定では、メトリックを含まないノードの依存関係を示すトポロジーチャートが生成されます。ノードメトリックを設定して、個々のノードにメトリックデータを追加します。
次の例は、サンプルメトリックデータを示しています。node フィールドは、トポロジーデータの child フィールドおよび parent フィールドに対応しています。node フィールドを使用して、メトリックをチャート内のノードにリンクします。
サンプルメトリックデータログには、__tag__:__client_ip__ (クライアント IP)、metric_1 から metric_7 (数値メトリック)、node (ノード名、 Mme.Hucheloup など)、および type (ノードタイプ、 E70 など) が含まれています。
ノードタイプごとに異なるメトリックを設定できます。この例では、 を使用します。
で、メトリックデータが含まれているプロジェクトと Logstore を選択し、クエリ文を入力します。 例えば、metric_1 がレイテンシを表す場合、* | SELECT max(metric_1) AS maxLantency, min(metric_1) AS minLantency, node FROM log GROUP BY node を実行して、ノードごとの最大および最小レイテンシを計算します。
設定を適用した後、ノードにカーソルを合わせて、メトリックが正しく表示されることを確認します。ノードをクリックすると、関連のないノードと接続が非表示になります。
ラインメトリック設定
クエリステートメントとそのフィールドによって、ノードの依存関係が決まります。異なるラインタイプは、異なるクエリステートメントに対応します。ラインメトリックを設定するには、トポロジークエリステートメントにラインメトリックフィールドを含めます。
たとえば、 metric_1 がレスポンス時間、 metric_2 がレイテンシーである場合、クエリ A を使用して metric_1 と metric_2 を抽出し、これらのフィールドを 回線メトリック設定 で設定します。
設定を適用した後、接続ラインにカーソルを合わせて、メトリックが正しく表示されることを確認します。ラインをクリックすると、関連のないノードと接続が非表示になります。
インタラクションイベント
インタラクションイベントを使用すると、ノードに対するドリルダウン分析が可能になります。サポートされているイベントには、[Logstore を開く]、[クイッククエリを開く]、[ダッシュボードを開く]、[トレース分析を開く]、[トレース詳細を開く]、[カスタム HTTP URL] などがあります。詳細については、ドリルダウン分析のためにダッシュボードにインタラクションイベントを追加するをご参照ください。
例えば、 は、クエリ A の SERVER ノードにインタラクションイベントを設定します。これを カスタム HTTP URL の作成 に設定した場合、SERVER ノードを右クリックして カスタム HTTP URL の作成 を選択すると、指定された URL が開きます。