このページの内容
例:Grafana をレポートツールとして設定する
紹介
このセクションでは、Grafanaを使用してコントロールセンターでメトリックをクエリする方法について説明します。
Grafanaは、オープンソースの可視化および分析ソフトウェアツールで、時系列データベースに保存されているメトリックをテーブルやグラフで照会、可視化、アラート、および探索できます。
この章では、Grafana の実行中のインスタンスが必要です。 grafana.com/grafana/download からダウンロードして、そのページの指示に従ってインストールできます。
Grafana では、複数のパネルを含むカスタムダッシュボードを作成できます。各パネルは データソース を使用し、そのデータソースに対してクエリを実行します。クエリは、選択したデータソースに固有のクエリエディターを使用して定義されます。さらに、クエリ エディターは、パネルの視覚化オプションを管理します。
データソースの設定
Grafana が実行されたら、次のステップは TimescaleDB のデータソースを定義して、Grafana がメトリックに対してクエリを実行できるようにすることです。「準備」の章の 「TimescaleDB への接続」 セクションでは、データベース接続の設定に加えて SSH トンネリングも構成するように説明しました。Grafana では、SSH トンネリングの設定とデータベースへの接続は、次のセクションで説明するように 2 つの異なるフェーズで行われます。
SSHトンネルの設定
以下が前提となります。
<Control Center IP/FQDN>、コントロールセンターが実行されているノードのIPまたは完全修飾ドメイン名、および- 7432は、TimescaleDBがリッスンするデータベースポートであり、
Grafana サーバーと TimescaleDB サーバー間の SSH トンネルは、次のように定義できます。
- Grafanaがインストールされているサーバーでターミナルウィンドウを開きます。
openssh-serverパッケージをインストールします。- コントロールセンターの公開キー
key.pubをGrafanaサーバーの<path_to_key_pub>にコピーします。 -
このコマンドを実行して、バックグラウンドSSHポートフォワーディングを設定します。
ssh -i <path_to_key_pub>/key.pub \ -o ExitOnForwardFailure=yes -f -L <local_port>:127.0.0.1:7432 \ <os_user>@<Control Center IP/FQDN> sleep 15 echo $?
ここで、
<os_user>はTimescaleDBサーバー内のOSユーザー、<local_port>はトラフィックをTimescaleDBリスニングポートに転送するGrafanaサーバー上のポートです。
これでSSHトンネルが設定され、GrafanaでTimescaleDBをデータソースとして定義できるようになりました。
Grafana でのデータソースの定義
SSHトンネルがアクティブになったら、次のステップは、Grafanaがメトリックに対してクエリを実行できるようにTimescaleDBのデータソースを定義することです。
- Webブラウザを開き、
http://<Grafana host IP/FQDN>:3000/に移動します。ここで、3000はGrafanaがデフォルトでリッスンするHTTPポートであり、<Grafana host IP/FQDN>はGrafanaがインストールされているノードのIPまたは完全修飾ドメイン名を指します。 - ログインページで、管理者ユーザーの資格情報を入力します。
- 左側の設定記号(歯車)をクリックします。 データソース タブで、 データソースの追加 ボタンをクリックします。「Postgres」を検索し、 選択をクリックします。
-
下の画像に示すように、PostgreSQLデータソースフォームに入力します。この場合、次の手順で使用されるデータ ソース名は "Metrics Database" で、
<local_port>の値は 9432 です。
- 完了したら、[ 保存 & テスト] をクリックします。
ダッシュボードの作成
- サイドバーで、プラス記号をクリックし、 次にダッシュボードをクリックし 、最後に 空のパネルを追加します。
- [新しいダッシュボード/編集] パネル ビューで、[クエリ] タブに移動します。
- データソースセレクターから「メトリックデータベース」を選択して、クエリを設定します。
- 「 SQL の編集 」をクリックして、未加工の SQL でクエリーを指定します。
-
表示されるテキストフィールドに、「ストリーム1」という名前のHTTPモニター用に次のような形式のクエリを入力します。間隔区切り文字が Grafana マクロの
$__timeFrom()と$__timeTo()に置き換えられることに注意してください。(PostgreSQL 用のその他の Grafana マクロは、こちらで入手できます: grafana.com/grafana/download)SELECT -- time field (alias "time" is required) time_bucket('30s',_time) as "time", -- metric percentile_cont(0.5) WITHIN GROUP (ORDER BY response_time_avg) as "avg_response_time" FROM -- data source vw_monitor_metrics_http WHERE -- time interval to analyze _time BETWEEN $__timeFrom() AND $__timeTo() AND -- stream identifier stream_name = 'Stream 1' AND -- account identifier account_short_name = 'account_1' GROUP BY "time" ORDER BY "time"; - [ Query Inspector ] ボタンをクリックして検証します。次に、右側のパネルの [クエリ] タブで、[ 更新 ] ボタンをクリックします。データがパネルで視覚化され、チャートの上で分析する時間間隔を調整できます。
- 画面の右上隅にある 保存 アイコンをクリックして、ダッシュボードを保存します。
- わかりやすい名前を追加し、[ 保存] をクリックします。