トポロジーチャートは、システムアーキテクチャー、サービス依存関係、データフローを可視化するのに役立ちます。このトピックでは、トポロジーチャートの設定方法について説明します。
概要
トポロジーチャートは、モジュールやアプリケーションの依存関係と全体的なステータスを明確に示す、グローバルなシステムレベルの可観測性ビューです。
Simple Log Service (SLS) がトポロジーデータを収集すると、そのデータを解析して構造化します。次の図は、トポロジーデータの例を示しています。child フィールドと parent フィールドを使用して、モジュールまたはアプリケーション間の基本的な依存関係を理解できますが、この方法では視覚的に直感的ではありません。

このトポロジーデータに基づいて、SLS ではクエリと分析文を使用して、トポロジー関係を記述するフィールドを抽出できます。たとえば、* | SELECT child, parent, child_type, parent_type FROM log 文を実行して、child、child_type、parent、および parent_type フィールドを取得できます。SLS はこれらのフィールドからトポロジーチャートを生成し、[力指向レイアウト]、[階層レイアウト]、[円形レイアウト] などの表示オプションをサポートします。

ダッシュボードにトポロジーチャートを追加する方法については、「ダッシュボードへのチャートの追加」をご参照ください。
設定例
Simple Log Service コンソールにログインします。[プロジェクト] セクションで、目的のプロジェクトをクリックします。

-
左側のナビゲーションウィンドウで、 を選択します。[ダッシュボード] リストで、目的のダッシュボードをクリックします。ダッシュボードページの右上隅にある [編集] をクリックします。編集モードで、 を選択します。
-
次の図に示すように、ページの右側で [トポロジー設定] と [レイアウト設定] を構成します。左側で、時間範囲、Logstore、およびクエリと分析文を設定します。次に、ページ上部の [適用] をクリックして、チャートの設定結果を表示します。

次のクエリと分析文は、child_service、parent_service、および type フィールドを取得します。SLS はこれらのフィールドからトポロジーチャートを生成します。
version: service | select child_service, parent_service, 'SERVER' as type from log
一般設定
トポロジーチャートのグローバル設定を構成します。
基本設定
パラメーター
説明
タイトル
チャートのタイトル。
表示タイトル
[タイトルの表示] をオンにすると、チャートのタイトルが表示されます。
[罫線の表示]
[罫線の表示] をオンにすると、チャートの罫線が表示されます。
[背景の表示]
[背景の表示] をオンにすると、チャートの背景色が表示されます。
[時間の表示]
[時間の表示] をオンにすると、チャートのクエリ時間範囲が表示されます。
固定時間
[時間の固定] をオンにすると、チャートのクエリ時間範囲はダッシュボードのグローバル時間範囲から独立します。
-
トポロジー設定
パラメーター
説明
[子ノードタイプ]
子ノードタイプを表すフィールドを選択します。
[子ノード ID]
子ノード ID を表すフィールドを選択します。
親ノードタイプ
親ノードタイプを表すフィールドを選択します。
[親ノード ID]
親ノード ID を表すフィールドを選択します。
説明-
SLS は、トポロジーチャート用に 13 種類の組み込みノードアイコンを提供しています:サーバー、データベース、WEB、メッセージキュー (MQ)、Server Load Balancer (SLB)、Web Application Firewall (WAF)、Object Storage Service (OSS)、Alibaba Cloud DNS、スイッチ、ルーター、Android、iOS、Windows。
-
[子ノードタイプ] と [親ノードタイプ] を設定してノードタイプを指定しない場合、SLS はデフォルトでサーバーアイコンを使用します。
-
変数の置換
パラメーター
説明
[変数の置換]
変数の置換は、単一のチャートに変数タイプのフィルターを追加することと同じです。[一般設定] で変数の置換を設定すると、SLS は現在のチャートの左上隅にフィルターを追加します。フィルターから値を選択できます。SLS は、クエリと分析文の変数を、選択した変数値に自動的に置き換え、クエリと分析操作を実行します。設定例については、「例 2: 変数の置換を設定する」をご参照ください。
ノードメトリック設定
一般設定を完了すると、SLS はメトリックデータなしでノード間の依存関係のみを示すトポロジーチャートを生成します。その後、ノードメトリックを設定して、チャートにメトリックを追加できます。
次の図は、メトリックデータのサンプルを示しています。node フィールドはノードを表し、トポロジーデータの child フィールドと parent フィールドに対応します。したがって、node フィールドを使用してメトリックデータをトポロジーデータに関連付け、チャートにノードメトリックを表示できます。
SLS では、ノードのタイプごとに異なるメトリックを設定できます。この例では、WEB ノード ([A > WEB]) を使用します。
[A > WEB] セクションで、メトリックデータを含むプロジェクトと 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] は、クエリ A の SERVER ノードに対話発生を設定していることを示します。SERVER ノードの対話発生を [カスタム HTTP URL の作成] に設定した場合、トポロジーチャートで SERVER ノードを右クリックし、[カスタム HTTP URL の作成] をクリックして指定されたリンクに移動できます。
