データ連携分析:リンク¶
はじめに¶
現在、ビジネスシステムの安定性を確保するためには、データへの依存度がますます高まっています。システム全体を可観測にするためにデータを収集する際、まず第一に、データ情報を検索するための統一された入り口が必要です。また、これらのデータに基づいて、注目すべき有用な情報を抽出し、可視化ダッシュボードやモニターを構築して、監視やアラートに活用できます。これらの機能が独立しており、単独で使用する場合は問題ありませんが、問題のトラブルシューティングを行う際には、何度も切り替え、検索、確認を行う必要があり、不便です。
これらの問題に対処するために、Guance は【ダッシュボード】【エクスプローラー】【モニター】の3つの機能を提供し、効率的なデータ検索、監視、分析を支援します。さらに、リンク機能により、各モジュール間をスムーズに移動でき、データ連携分析とシステム全体の可観測性を実現します。
開始¶
この記事では、主に【エクスプローラー】【ダッシュボード】【モニター】の3つの機能を中心に、リンクを設定してデータ連携分析を実現する方法を説明します。
- 【エクスプローラー】:収集されたすべてのデータを記録します。ここでは、トレーサビリティを追跡し、タグでデータをフィルタリングし、データの詳細を確認できます。
- 【ダッシュボード】:可視化チャートで構成され、主要なパフォーマンス指標を直感的に表示します。
- 【モニター】:データの異常を監視し、監視条件を満たすとアラートイベントを生成し、通知を送信します。
準備作業¶
Guance アカウントをお持ちでない場合、またはワークスペースにデータがない場合は、以下の手順に従ってデータ収集を完了してください。
- Guance コンソールにログイン(アカウントがない場合は、こちらから登録);
- DataKit コレクターをインストール;
- コンソールの【インテグレーション】ページに移動し、対応するデータコレクターを有効にします。
シナリオ 1:ダッシュボードとエクスプローラーの連携分析¶
ユーザーシナリオ例
ダッシュボードにチャートを追加して Web アプリケーションのエラー数 を集計し、後で特定の時間帯に複数のエラーが発生していることに気づいた場合、これらのエラーを迅速に特定して調査したい。
1. チャートにリンクを設定する¶
1)ダッシュボードで集計チャートを作成し、クエリ文を設定します。
R::`error`:(COUNT(`error_source`) AS `エラー数`) { `app_id` = '#{appid}' and `env` = '#{env}' and `version` = '#{version}' }
2)リンク > リンクを追加 をクリックし、ジャンプ先の URL と対応するパラメータを設定します。上記の DQL を例にすると、エラーを発見した後にエクスプローラーにジャンプしてエラーデータをフィルタリングするために、app_id、env、version の値をエクスプローラーに渡す必要があります。
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 エラーが発生した場合にアラートをトリガーするため、挿入するリンクは【トレースエクスプローラー】にジャンプし、エラートレースをフィルタリングするリンクです。
- まず、
service、http_status_codeなどのパラメータをリンクに設定し、フィルターをエクスプローラーに引き継ぐ必要があります。 - モニターの検出間隔が【直近15分】であるため、エクスプローラーにジャンプした際のクエリ時間範囲も同じにする必要があります(つまり、イベント通知の時刻を終了時刻とし、その15分前を開始時刻とします)。
すべての設定が完了したら、モニターを保存します。
リンク設定の説明¶
イベント内容には任意のリンク(例:エクスプローラー、ダッシュボード、外部リンクなど)を挿入でき、ユースケースに応じて設定します。
例:検出間隔が【15分】で、検出指標のクエリが次の場合:
追加されるリンクには、自動的に以下の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)】モニターを例に、モニターにリンクを設定することでデータ関連検索を実現する方法をデモンストレーションします。
前の手順で設定したモニターにより、トリガーされたアラートイベントには設定した通知内容が表示され、その中に【ジャンプリンク】が含まれています。これをクリックすると、対応するエラートレースデータを確認できます。その後、トレースの詳細、関連するログ、ネットワーク状況など、複数のディメンションからエラーの原因を分析できます。







