コンテンツにスキップ

データ連携分析:リンク

はじめに

現在、ビジネスシステムの安定性を確保するためには、データへの依存度がますます高まっています。システム全体を可観測にするためにデータを収集する際、まず第一に、データ情報を検索するための統一された入り口が必要です。また、これらのデータに基づいて、注目すべき有用な情報を抽出し、可視化ダッシュボードやモニターを構築して、監視やアラートに活用できます。これらの機能が独立しており、単独で使用する場合は問題ありませんが、問題のトラブルシューティングを行う際には、何度も切り替え、検索、確認を行う必要があり、不便です。

これらの問題に対処するために、Guance は【ダッシュボード】【エクスプローラー】【モニター】の3つの機能を提供し、効率的なデータ検索、監視、分析を支援します。さらに、リンク機能により、各モジュール間をスムーズに移動でき、データ連携分析とシステム全体の可観測性を実現します。

開始

この記事では、主に【エクスプローラー】【ダッシュボード】【モニター】の3つの機能を中心に、リンクを設定してデータ連携分析を実現する方法を説明します。

  • 【エクスプローラー】:収集されたすべてのデータを記録します。ここでは、トレーサビリティを追跡し、タグでデータをフィルタリングし、データの詳細を確認できます。
  • 【ダッシュボード】:可視化チャートで構成され、主要なパフォーマンス指標を直感的に表示します。
  • 【モニター】:データの異常を監視し、監視条件を満たすとアラートイベントを生成し、通知を送信します。

準備作業

Guance アカウントをお持ちでない場合、またはワークスペースにデータがない場合は、以下の手順に従ってデータ収集を完了してください。

  1. Guance コンソールにログイン(アカウントがない場合は、こちらから登録);
  2. DataKit コレクターをインストール
  3. コンソールの【インテグレーション】ページに移動し、対応するデータコレクターを有効にします。

シナリオ 1:ダッシュボードとエクスプローラーの連携分析

ユーザーシナリオ例

ダッシュボードにチャートを追加して Web アプリケーションのエラー数 を集計し、後で特定の時間帯に複数のエラーが発生していることに気づいた場合、これらのエラーを迅速に特定して調査したい。

1. チャートにリンクを設定する

1)ダッシュボードで集計チャートを作成し、クエリ文を設定します。

R::`error`:(COUNT(`error_source`) AS `エラー数`) { `app_id` = '#{appid}' and `env` = '#{env}' and `version` = '#{version}' }

2)リンク > リンクを追加 をクリックし、ジャンプ先の URL と対応するパラメータを設定します。上記の DQL を例にすると、エラーを発見した後にエクスプローラーにジャンプしてエラーデータをフィルタリングするために、app_idenvversion の値をエクスプローラーに渡す必要があります。

Warning

対象ページのリンクとパラメータ形式が不明な場合は、対象ページの URL をコピーして貼り付け、調整してください!

また、コピーしたリンクに URLEncode エンコードが含まれている場合、貼り付け時に自動的にデコードされ、URL が読みやすくなります。

リンクの設定が完了したら、チャートを保存します。

リンク設定の説明

プラットフォームにはいくつかのリンクが組み込まれており、アドレス入力ボックスをクリックするだけで簡単に追加できます。これらのリンクは、対象ページのベース URL のみを保持し、time や query などのパラメータは含まれていないため、必要に応じて手動で追加できます。

パラメータの追加方法

リンクのパラメータを設定する方法は2つあります。

1)入力ボックス内の URL の後ろに直接パラメータを手書きで追加する。

2)【パラメータを追加】をクリックして設定する。設定したパラメータは自動的に上記の URL に追加され、上下のパラメータは常に一致します。

- パラメータを設定する際、システムによく使われるキーがいくつかプリセットされており、それぞれに説明とサンプルが付いています。システムプリセットのパラメータに加えて、任意のキー/バリューを手動で入力してリンクを設定することもできます。

テンプレート変数を使用してパラメータ値を渡す

リンクではテンプレート変数を使用してデータ情報を渡すことができます。現在利用可能なテンプレート変数が自動的に表示され、ユーザーは直接コピーして使用できます。

テンプレート変数とは?

<テンプレート変数> は動的なパラメータ値を渡すために使用されます。例えば、折れ線グラフのクエリで by host と指定した場合、各線をクリックすると特定のホストが選択されます。host の値は固定されていないため、リンクでは動的にパラメータを渡す必要があります。このような場合にテンプレート変数を使用します。テンプレート変数は、選択された host に応じて対応する値を渡します。

現在サポートされているテンプレート変数は3種類あり、それぞれ【時間変数】【タグ変数】【ビュー変数】です。

変数タイプ 変数 説明
時間変数 #{TR} 現在のチャートクエリの時間範囲。現在のクエリ時間が 直近1時間 の場合:
テンプレート変数:&time=#{TR}&time=1h と同等です
タグ変数 #{T} 現在のチャートクエリのすべてのグループタグの集合。現在のチャートクエリが:
M::'datakit':(LAST('cpu_usage')) BY 'host','os'
で、結果が host=abc、os=linux の場合:
テンプレート変数:&query=#{T}&query=host:abc os:linux と同等です
#{T.name} 現在のチャートクエリの特定のタグの値。name はクエリ内の任意の tagKey に置き換え可能です。
現在のチャートクエリが:
M::'datakit':(LAST('cpu_usage')) BY 'host', 'os'
で、結果が host=abc、os=linux の場合:
- テンプレート変数 #{T.host} = abc
- &query=hostname:#{T.host}&query=hostname:abc と同等です
ビュー変数 #{V} 現在のダッシュボードのすべてのビュー変数の集合。
現在のダッシュボードのビュー変数が:
version=V1.7.0 および region=cn-hangzhou の場合
テンプレート変数 &query=#{V}&query=version:V1.7.0 region:cn-hangzhou と同等です
#{V.name} 現在のダッシュボードの特定のビュー変数の値。name は任意の変数名に置き換え可能です。
現在のダッシュボードのビュー変数が version=V1.7.0 の場合:
- テンプレート変数 #{V.version} = V1.7.0
- &query=version:{V.version}&query=version:V1.7.0 と同等です

リンクの開き方

設定したリンクは、【新しいタブで開く】【現在のタブで開く】【スライドパネルで開く】の3つの開き方がサポートされています。

2. 関連データ分析

次に、【Web アプリケーション概要】ダッシュボードを例に、チャートリンクを使用したデータ関連検索の方法をデモンストレーションします。

下図のように、ビュー変数で特定の アプリケーション環境 を選択したところ、エラーデータが2件あることがわかりました。次に、この2件のエラーを特定します。

チャートをクリックしてドロップダウンメニューを表示し、リンク > Error エクスプローラーにジャンプ を選択します。対応するエクスプローラーページが開き、クエリの時間範囲とすべてのフィルター条件が引き継がれ、2件のエラーレコードが表示されます。これにより、ワンクリックで関連検索を実現でき、エラーの詳細を確認し、原因を調査できます。

シナリオ 2:モニターとエクスプローラーの連携分析

ユーザーシナリオ例

サービスで 5xx エラーが発生したかどうかを監視するモニターを作成し、エラーを検出したらすぐにアラート通知を生成し、迅速にエラーを特定して調査したい。

1. モニターにリンクを設定する

1)アプリケーションパフォーマンスモニタリング(APM) モニターを作成し、検出指標トリガー条件 を設定します。

2)イベント内容 にジャンプ先のリンクを挿入します。ここに入力するテキストは Markdown 構文を使用 する必要があります。上記のユーザーシナリオに従い、特定のサービスで 5xx エラーが発生した場合にアラートをトリガーするため、挿入するリンクは【トレースエクスプローラー】にジャンプし、エラートレースをフィルタリングするリンクです。

  • まず、servicehttp_status_code などのパラメータをリンクに設定し、フィルターをエクスプローラーに引き継ぐ必要があります。
  • モニターの検出間隔が【直近15分】であるため、エクスプローラーにジャンプした際のクエリ時間範囲も同じにする必要があります(つまり、イベント通知の時刻を終了時刻とし、その15分前を開始時刻とします)。

すべての設定が完了したら、モニターを保存します。

リンク設定の説明

イベント内容には任意のリンク(例:エクスプローラー、ダッシュボード、外部リンクなど)を挿入でき、ユースケースに応じて設定します。

例:検出間隔が【15分】で、検出指標のクエリが次の場合:

T::RE(`.*`):(COUNT_DISTINCT(`trace_id`)) {`http_status_code` >= '500'}  BY `service`

追加されるリンクには、自動的に以下の2つのパラメータが含まれます。

1)フィルター条件パラメータ:&query=http_status_code:>=500 service:{{service}}(BY の後のグループはテンプレート変数として埋め込まれます)

2)時間パラメータ:イベント発生時刻を終了時刻とし、その15分前を開始時刻とします。例:&time={{ date * 1000 - 900000}},{{date * 1000}}(ここではテンプレート変数の演算を使用しています)

テンプレート変数の説明

イベント内容では、テンプレート変数を使用してデータ情報を渡すことができます。システムは現在利用可能なテンプレート変数を自動的に表示し、{{ ボタンをクリックするか、直接 {{ を手動入力することで変数リストを呼び出せます。

テンプレート変数とは?

<テンプレート変数> は動的なパラメータ値を渡すために使用されます。モニターのイベントタイトルやイベント内容を設定する際に、自分で作成した固定のテキストに加えて、イベントのフィールドを使用してテキストをレンダリングできます。モニターのテンプレート変数は2種類に分類されます。

1)固定の属性変数:例えば、
{{df_status}}(イベントのステータス)、{{df_monitor_checker_name}}(モニター名)、{{df_workspace_name}}(ワークスペース名)、{{Result}}(本イベント発生時に検出された値)などがあります。

2)検出ディメンション変数:例えば、検出指標のクエリで by 'host','service' と指定した場合、テンプレート変数 {{host}}、{{service}} を使用して検出オブジェクトをレンダリングできます。

詳細については、モニターテンプレート変数 を参照してください。

2. 関連データ分析

次に、【アプリケーションパフォーマンスモニタリング(APM)】モニターを例に、モニターにリンクを設定することでデータ関連検索を実現する方法をデモンストレーションします。

前の手順で設定したモニターにより、トリガーされたアラートイベントには設定した通知内容が表示され、その中に【ジャンプリンク】が含まれています。これをクリックすると、対応するエラートレースデータを確認できます。その後、トレースの詳細、関連するログ、ネットワーク状況など、複数のディメンションからエラーの原因を分析できます。

フィードバック

このページは役に立ちましたか?