メインコンテンツまでスキップ

Query Manager

Query Managerは、exemONE収集DB(ClickHouse、PostgreSQL)に要件に合ったクエリを直接作成してデータを照会し、照会結果を指標として保存してダッシュボードウィジェット・アラーム・通知に活用できる画面です。

左側メニューで Tool > Query Manager を選択してください。

Query Manager 全体画面

画面は Query List、クエリ編集領域、Collection(実行結果)領域の3つの部分で構成されています。

Select Databaseで照会するデータベースを選択する​

Select Database ドロップダウンでクエリを実行するデータベースを選択します。

Select Database ドロップダウン画面

  • ClickHouse (Data Storage): 対象サーバーから収集した指標・ログデータが保存されるDBです。
  • PostgreSQL (Metadata): 管理用メタデータが保存されるDBです。
参考

PostgreSQLの照会はexemone-api v3.0.508.27以上で対応しています。

注意

アラーム登録は ClickHouse(Repository) の照会データのみ対応しています。PostgreSQLの照会データはアラームとして登録できません。

クエリを作成して実行する​

[New Query] ボタンをクリックすると、新しいクエリ編集画面が開きます。中央のエディターにクエリを作成した後 [Run Query] をクリックすると、実行結果が下部の Collection 領域に表示されます。

クエリを実行してCollection領域に結果が表示された画面

  • DB Table Reference: 有効にすると、照会可能なテーブル一覧を左側で検索して確認できます。
  • Select Schema: 照会するスキーマを選択します。
  • Query Timeout: クエリの実行制限時間(秒)です。
  • [Formatting]: 作成したクエリを見やすく整列します。[Clear All]: エディターの内容をすべて消去します。
  • [Save] / [Save As…]: クエリを保存します。[Reset]: 作成中のクエリを初期化します。
注意

クエリの実行結果にエラーが発生すると保存できません。エラーを修正してから再実行し、保存してください。

Set Stat Variableで指標変数を設定する​

Set Stat Variable を有効にすると、ダッシュボードウィジェットやアラームでクエリを実行する際に動的に値を埋め込む変数を設定できます。

Set Stat Variable 有効化画面

参考

Set Stat VariableはFront v3.0.508.137以上で対応しています。

トグル横の [Set Stat Variable Guide] ボタンをクリックすると、右側(またはポップアップ)にガイドパネルが開きます。Metric Type / Current Type / Scatter Type / Table Type / Common タブで構成されており、各タブで指標タイプ別の必須フィールド、指標変数、クエリ予約関数、サンプルクエリをすぐに確認できます。

Set Stat Variable Guide パネル(Metricタブ)

参考

Set Stat Variable Guideパネルのタイトル・タブ・ボタンラベル(Metric Type、Variable Name、Add Variableなど)は接続言語に従って表示されます。ただし、English接続時は本文の説明文が翻訳されず韓国語で表示されるのに対し、日本語接続時は本文まで正常に翻訳されて表示されます。

指標変数・クエリ予約関数の最新リストとタイプ別の必須フィールドは、画面の [Set Stat Variable Guide] ボタンをクリックしてリアルタイムで確認することをお勧めします。よく使われる項目は次のとおりです。

指標変数予約語

変数名説明
fromTimeデータ照会開始時間 / アラーム適用時の集計範囲開始時間
toTimeデータ照会終了時間 / アラーム適用時の集計範囲終了時間
targetIds凡例ウィジェットにフィルターされた対象タグバインディング用変数(凡例ウィジェット使用時必須) / アラーム適用時のターゲット設定
clickedTimeタイムシリーズチャートで特定の時間をクリックした際にその時間を参照する変数(ツリーグリッドで使用)

クエリ予約関数

関数説明
$_get_targets_from_tags({category}, {tag})target id抽出関数です。ダッシュボード変数フィルター使用時に必ず使用します。ユーザー権限に含まれる対象のみフィルターされます。
パラメータ説明
category (string)対象が属するカテゴリです。('host'、'database'、'application' など)
tag (string)target_idとして抽出する対象タグです。(database;tag;* 形式)
注意

{tag}にはtarget_idを直接バインディングしてはいけません。ダッシュボードのグローバル変数フィルターと同じタグを指標変数にマッピングする必要があります。

Metricタイプ​

タイムシリーズ(Timeseries)チャートに適用できます。SELECT句に time(x軸時間値、必須)、value(y軸値、必須)、target_id(対象id、必須)を含める必要があります。凡例ウィジェット使用時は targetIds を必ず追加します。

select target_id, toStartOfInterval(collect_time, INTERVAL '5 s') as time, argMax(value, collect_time) as value
from metric_dist
where data_id like 'host_stat_active_memory_usage'
and collect_time >= fromTime and collect_time < toTime
and target_id in ($_get_targets_from_tags('host', targetIds))
group by target_id, time

Currentタイプ​

累積バー(Stacked Bar)、スコアボード(Scoreboard)チャートに適用できます。SELECT句に value(対象別値、必須)、target_id(対象id、必須)を含める必要があります。動的な照会範囲適用時は fromTime、toTime を使用し、凡例ウィジェット使用時は targetIds を必ず追加します。

SELECT target_id, max(value) as value
FROM metric_dist
WHERE data_id like 'host_stat_active_memory_usage'
AND collect_time >= fromTime
AND collect_time < toTime
AND target_id in ($_get_targets_from_tags('host', targetIds))
GROUP BY target_id

Scatterタイプ​

スキャッター(Scatter)チャートに適用できます。最大10分範囲のデータのみ表現できます。SELECT句に time(x軸時間値、必須)、elapse_time(y軸実行時間値、必須)、count(同一x・y軸値を持つ収集データ件数、必須)、target_ids(対象idリスト、arrayフィールド、必須)を含める必要があります。凡例ウィジェット使用時は targetIds を必ず追加します。

SELECT
toStartOfMinute(collect_time) as time,
elapsed_time,
count(*) as count,
groupArray(instance_id) as target_ids
FROM oracle_sql_elapse_dist
WHERE collect_time >= fromTime
AND collect_time < toTime
AND instance_id in ($_get_targets_from_tags('database', targetIds))
GROUP BY time, elapsed_time

Tableタイプ​

イコライザー、ツリーグリッド、トップリスト、パイ(グラフタイプ)、フィルター(Select2タイプ)ウィジェットに適用できます。

状況必須フィールド
フィルターウィジェットのSelect2タイプで使用時name(対象名)、value(対象ID)
凡例ウィジェットの対象フィルター連動時target_id(対象id)

指標変数は使用目的に応じて、clickedTime(ツリーグリッドで特定の時間クリック時に参照)、targetIds(凡例ウィジェット使用時およびアラームTableタイプ指標使用時に必須)、fromTime/toTime(アラーム照会時間範囲適用時)を参照します。

参考

アラーム設定時は、凡例ウィジェットの使用有無にかかわらず targetIds が必須であり、アラーム照会時間範囲適用時は fromTime、toTime を必ず使用する必要があります。

フィルターウィジェットのSelect2タイプとして使用するサンプルクエリです。

select
distinct
target_id as value,
system_attributes['name'] as name
from target
where target_id in ($_get_targets_from_tags('database','database;tag;*'))

クエリを保存して共有する​

[Save] または [Save As…] をクリックすると保存ポップアップが表示されます。ダッシュボードウィジェットやアラームでこのクエリ指標を使用するには、Share Query を有効にしてData Settingを指定する必要があります。

Save Query ポップアップ画面

  • Name / Location: クエリ名と保存場所(Private/Publicフォルダ)を指定します。[Create Folder] で新しいフォルダを作成することもできます。
  • Share Query: 有効にするとPublicフォルダにも一緒に保存され、Data Settingを指定できます。
  • Data ID: qm_{Data ID} 形式でexemONE ClickHouse DBの xm_metric テーブルに保存されます。
  • Data Type: Metric / Current / Table / Scatterの中から選択します。Tableを1つだけ指定するとAlert Dataトグルが有効になります。
  • Alert Data: 有効にするとアラームとして登録できます。有効化時は「Alerts apply only to Metric and Table types.」という案内が表示され、ClickHouse照会指標のみが該当します。

ダッシュボードウィジェットに指標を連携する​

Query Managerで保存した指標(Share Query有効化が必要)を、ダッシュボードウィジェットのデータとして活用できます。ウィジェット設定で クエリ定義指標使用 オプションを選択します。

Gauge、Action View、Heat Map、Daily Comparisonなど一部のグラフウィジェットとアーキテクチャウィジェット、ビジネスウィジェットはQuery Managerに対応していません。

アラーム指標として登録する​

Query Managerで生成した指標をアラームとして登録できます。Setting > Alert > User Alert で設定します。

参考

アラーム登録はexemone-front v3.0.508.32 / exemone-api v3.0.508 / exemone-alerter v3.0.508.11以上で対応しています。

指標登録の手順は次のとおりです。

手順説明
Step 1ClickHouse Repositoryデータで指標を生成します。
Step 2SELECT句に target_id を含めます。
Step 3参照変数 fromTime、toTime、targetIds を適用します。
Step 4targetIds 参照変数使用時はタグを必ず使用します(target_idの直接バインディングは禁止)。
Step 5指標保存時にShare Queryを有効にし、Data TypeをTable1つのみ指定した後、Alert Dataを有効にします。

アラーム登録は Setting > Alert > User Alert でアラーム指標を選択した後、Tableタイプのアラーム登録手順に従って進めます。

Notificationパラメータとして活用する​

Query Managerで登録した指標を、アラームNotificationパラメータとして活用できます。Setting > Alert > Notification で通知を追加または編集する際に設定します。メール、Slack、Telegram、Webhook、オンサイト通知タイプに対応しています(KakaoTalk、SMSは非対応)。

参考

Notificationパラメータの使用はexemone-api v3.0.508.51 / exemone-front v3.0.508.39以上で対応しています。

  • データ送信方式: 照会結果の最初の列の最初の行がパラメータデータとして送信されます。
  • パラメータ入力形式: $qm$qm_{data_id}$ 形式で入力します。data_id の前に qm_ 接頭辞を必ず付けます。
  • 適用領域: fixed_contents 領域でのみパラメータを使用できます。