Grafana は、大量のメトリックデータを表示するために使用できるオープンソースの視覚化ツールです。 Grafana は、インターネットアプリケーションの分析、産業監視、気象監視、ホームオートメーション、プロセス管理、およびその他の分野で使用されます。 Time Series Database (TSDB) を Grafana に接続すると、Grafana が提供する視覚化機能を使用して、TSDB インスタンスから収集されたデータを監視および分析できます。
このトピックでは、TSDB を Grafana に接続する方法について説明します。
環境を準備する
次の例は、ECS インスタンスに Grafana をインストールし、仮想プライベートクラウド (VPC) 経由で Grafana を TSDB インスタンスに接続する方法を示しています。 Elastic Compute Service (ECS) の使用方法の詳細については、「ECS とは」をご参照ください。
同じ VPC 内に TSDB インスタンスと ECS インスタンスを作成します。次の要件を満たす必要があります。
ECS インスタンスの OS は 64 ビット CentOS 7.3 です。
ECS インスタンスは、少なくとも 1 つの CPU コアと 2 GB のメモリを提供します。使用可能なディスクストレージは 10 GB 以上です。
VPC 内の ECS インスタンスのプライベート IP アドレスが、TSDB インスタンスのホワイトリストに追加されています。
インターネット経由でブラウザを使用して Grafana にアクセスする場合は、ECS インスタンスのパブリック IP アドレスを設定します。
ポート 3000 経由で ECS インスタンスへのアクセスを有効にするために、ECS コンソールでセキュリティグループルールが作成されています。詳細については、「セキュリティグループを作成する」をご参照ください。
Grafana をインストールして設定する
ECS インスタンスに Grafana をインストールして起動するには、次の手順を実行します。 Grafana のインストール方法の詳細については、「Grafana 公式ドキュメント」をご参照ください。
ECS インスタンスで、次のコマンドと同様のコマンドを実行して、Grafana をインストールします。
$ sudo yum install https://dl.grafana.com/oss/release/grafana-6.2.2-1.x86_64.rpmGrafana を起動します。
$ sudo service grafana-server start
TSDB インスタンスを Grafana に接続する
データソースとして使用される TSDB インスタンスを Grafana に接続するには、次の手順を実行します。
ブラウザを使用して、ポート 3000 経由で ECS インスタンスに接続します。 Grafana ログオンページが表示されます。
たとえば、ECS インスタンスのパブリック IP アドレスが 106.15.XX.XX の場合、ブラウザのアドレスバーに http://106.15.XX.XX:3000/ と入力します。
Grafana ログオンページで、ユーザー名とパスワードに admin と入力します。 Grafana ホームページが表示されます。
Grafana でデータソースを作成します。次のセクションで提供されるパラメータを指定する必要があります。その他のパラメータについては、デフォルト値を保持できます。
データベースタイプを OpenTSDB に設定します。
URL:VPC にデプロイされている TSDB インスタンスのプライベートエンドポイントを入力します。このエンドポイントを表示するには、TSDB コンソールの [インスタンスの詳細] ページに移動し、[基本情報] セクションの [VPC ネットワークアドレス] フィールドの値を確認します。
バージョン:==2.3 を選択します。
TSDB インスタンスの ユーザー管理 機能を有効にする場合は、[ベーシック認証] と [認証情報を使用] を選択し、インスタンスからデータを読み取る権限を持つユーザーの認証情報を入力する必要があります。

[保存してテスト] をクリックします。ページに
Data source is workingメッセージが表示された場合、TSDB インスタンスは Grafana に接続されています。
上記の手順を実行した後、Grafana でダッシュボードを作成して使用できます。詳細については、「Grafana 公式ドキュメント」をご参照ください。
次のセクションでは、Grafana を使用して TSDB 時系列データを表示する方法について説明します。
特定のメトリックを表示する監視ダッシュボードを作成する
次のスクリーンショットは、Grafana 6.2 のインターフェースを示しています。 Grafana のインターフェースは、Grafana のバージョンによって異なります。お使いのバージョンの Grafana の実際のインターフェースは、このトピックで提供されているスクリーンショットと異なる場合があります。
Grafana のホームページで、次の図に示すように、[作成] > [ダッシュボード]を選択します。

TSDB インスタンス用にダッシュボードが作成されている場合は、ダッシュボードを選択できます。
[新しいダッシュボード] ページで、[新しいパネル] をクリックします。[新しいパネル] ダイアログボックスで、次の図に示すように、[クエリを追加]をクリックします。

パネルを編集できる次のページで、ニーズに基づいてパラメータを指定します。

監視するメトリックと、異なる時系列のメトリック値を集計するかどうかを指定します。
ニーズに基づいてダウンサンプリングルールを設定します。ダウンサンプリングルールを設定するには、間隔、アグリゲータ、および塗りつぶしのパラメータを指定します。
監視する時系列をタグでグループ化します。タグのすべてのタグ値に対応する時系列を監視する場合は、アスタリスク (
*) をタグ値として入力します。重要TSDB は、Grafana によって提供されるアグリゲータの一部をサポートしています。詳細については、「単一値データポイントをクエリする」をご参照ください。
Grafana を使用して、TSDB 多値モデルデータを表示できます。単一値または多値モデルでメトリック名を入力すると、ドロップダウンリストにはメトリックの名前のみが表示されます。多値モデルでメトリック名の後にアットマーク (@) を入力すると、ドロップダウンリストにはメトリックのすべてのフィールドが表示されます。表示するフィールドを選択できます。
重要Grafana は数値のみを表示します。 TSDB は、数値、文字列、およびブール値をサポートしています。

変数を使用して時系列フィルタリングを簡素化する
既存のパネルに新しい時系列をリアルタイムで表示するには、新しい時系列ごとにメトリック、タグキー、またはタグ値を指定する必要があります。多数の時系列が存在し、時系列の数が急速に増加している場合、これはワークロードを増加させる可能性があります。手順を簡素化するために、Grafana では変数を使用できます。
このセクションでは、変数を使用して表示する時系列をフィルタリングする方法について説明します。このセクションで提供されている例では、変数が作成され、タグのフィルタリングに使用されます。
選択したダッシュボードのホームページで、[設定] アイコンをクリックします。

[変数] ページで、作成する変数を設定し、変数の値を取得する方法を指定します。
[データソース] を OpenTSDB に設定します。
[クエリ] フィールドに、Grafana でサポートされている式を入力して、OpenTSDB のデータをクエリします。
この例では、作成される変数はタグ値を表します。したがって、
tag_valuesで始まる式が使用されます。
TSDB は、Grafana が OpenTSDB に提供するすべてのクエリ式をサポートしています。
metrics(prefix):指定されたプレフィックスを含むすべてのメトリックの名前を返します。空の結果が返される場合があります。tag_names(metric):指定されたメトリックに対応するすべてのタグキーを返します。tag_values(metric, tagKey):指定されたメトリックに対応する、指定されたタグキーのすべてのタグ値を返します。suggest_tagk(prefix):すべてのメトリックについて、指定されたプレフィックスを含むすべてのタグキーを返します。suggest_tagv(prefix):すべてのメトリックについて、指定されたプレフィックスを含むすべてのタグ値を返します。
上記のクエリ式の詳細については、「Grafana 公式ドキュメント」をご参照ください。
重要リリースされたすべての Grafana バージョンでは、限られた数のクエリ結果が返されます。これは、予期されるメトリック、タグキー、またはタグ値の一部が返されない可能性があることを意味します。 Grafana コミュニティはすでにこの問題を認識しています。ただし、Grafana バージョン 6.2.2 以前では、この問題は修正されていません。この問題が発生した場合は、クエリ条件を変更するか、他の暫定的な修正を使用することをお勧めします。
変数を指定した後、ダッシュボードでパネルを作成または編集するときに、
$変数名を使用して、変数によって表されるクエリを参照できます。