項目一覧
例:レポート ツールとしての Grafana の設定
紹介
このセクションでは、Grafana を使用して Control Center でメトリクスをクエリする方法について説明します。
Grafana は、テーブルとグラフを使用して、時系列データベースに格納されたメトリックのクエリ、視覚化、アラート、探索を可能にする、オープンソースの視覚化および分析ソフトウェア ツールです。
この章では、Grafana の実行中のインスタンスが必要です。 grafana.com/grafana/download からダウンロードし、そのページの指示に従ってインストールできます。
Grafanaでは、複数のパネルを含むカスタムダッシュボードを作成できます。各パネルは データソース を使用し、データソースに対してクエリを実行します。クエリは、選択したデータ ソースに固有のクエリ エディターを使用して定義されます。さらに、クエリ エディターは、パネルの視覚化オプションを管理します。
データソースの設定
Grafana が実行されたら、次の手順では、Grafana がメトリックに対してクエリを実行できるように、TimescaleDB のデータ ソースを定義します。「準備」の章の「 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または完全修飾ドメイン名を指します。 - ログイン ページで、admin ユーザーの資格情報を入力します。
- 左側の設定記号(歯車)をクリックします。[ データ ソース ] タブで、[ データ ソースの追加 ] ボタンをクリックします。「Postgres」を検索し、「 選択」をクリックします。
-
下の画像に示すように、PostgreSQL データ ソース フォームに入力します。この場合、次の手順で使用するデータ ソース名は "Metrics Database" で、
<local_port>
の値は 9432 です。 - 完了したら、[ Save & test] をクリックします。
ダッシュボードの作成
- サイドバーで、プラス記号をクリックし、次に [ダッシュボード ]をクリックして、最後に[ 空のパネルを追加]をクリックします。
- [New dashboard/Edit] パネル ビューで、[Query] タブに移動します。
- データ ソース セレクターから [メトリック データベース] を選択して、クエリを構成します。
- [ 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 ] ボタンをクリックして検証します。次に、右側のパネルの [ クエリ ] タブで、[ 更新 ] ボタンをクリックします。データはパネルに視覚化され、グラフの上で分析する時間間隔を調整できます。
- 画面の右上隅にある [保存 ] アイコンをクリックして、ダッシュボードを保存します。
- わかりやすい名前を追加し、[ 保存] をクリックします。