【Grafana】きっとあなたのお気に入りとなる可視化ツール、Grafanaとは？　

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/15e28051-734a-e6db-50e5-6748d594513b.png)

Grafanaはオープンソースの視覚化・分析ツールであり、時系列のメトリクスがどこに保存されていても、クエリ、グラフやアラートを表示することができます。これらのデータはすべて、時系列グラフや単一統計表示からヒストグラム、ヒートマップなど、さまざまなタイプのパネルを使って照会し、補完することができます。その柔軟性によりデータソースと多数の可視化パネルにより、Grafanaは、DevOpsやモニタリングエンジニアの間で大人気ツールとなっています。

この記事では、エンジニアリングやビジネス・インテリジェンスで見られる最も一般的なKPIに対して、適切な種類の可視化を選択する方法についてお話させていただきます。メトリクスと KPI の選択は、もちろん会社、アプリケーションの揮発性、またはデータポイントの不安定性によって異なりますが、ダッシュボード作成の基本的な原則は変わりません。どのようなダッシュボードを作成するにしても、最終的な目標は単なる美学ではなく、適切なデータを反映させ、エンドユーザーの異常を検出する労力を軽減することで、問題解決までの時間を短縮することができます。

また、この記事では、この2つのダッシュボードの使用例を紹介します。1つ目はインフラの監視、2つ目はビジネス・インテリジェンスでの用途についてです。
[MetricFire](https://try.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Our%20Favorite%20Grafana%20Dashboards)の[無料トライアル](https://www.hostedgraphite.com/accounts/signup-metricfire/?signup=japan&utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Our%20Favorite%20Grafana%20Dashboards)をご利用いただければ、この記事の内容に沿って、これらのダッシュボードの複製を作ることができます。また、いつでも[デモを予約](https://calendly.com/metricfire-chatwithus/chat?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Our%20Favorite%20Grafana%20Dashboards)して、モニタリングのご要望について直接お問い合わせいただけます。

#インフラ監視を使用する際のGrafanaいい所

お気に入りのインフラダッシュボードは、インフラ、NOC、またはDevOpsチームが日々のオペレーションを監視し、システムKPIの問題点を検出するために使用できます。監視する必要のあるKPIの数は、アプリケーションの構造や複雑さ、および構成そのものに応じて膨大な数になることがよくあります。これは最終的に、多数のダッシュボードの作成と、システムを監視するための余分なリソースのオンボード化につながります。

###マスターダッシュボード

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/b201a965-dce0-2c1b-79b7-7d4707126288.png)

前にも述べたように、マスターダッシュボードは、あなたにとって最も重要なメトリクスの概要を示してくれます。すべてのKPIを1つのクイックダッシュボードに集めるので、データを探しに行く必要がありません。
必須メトリクスはチームやアプリケーションによって異なる可能性がありますが、ここでは CPU、メモリ、ディスク使用率、アクティブスレッド数、アクティブセッション、プロセス数など、最も定期的に監視されるメトリクスをリストアップしました。上の画像で、私たちが選んだ主要なメトリクスをご覧ください。次のセクションでは、各可視化パネルを選択するメリットと、それらが適用されるシナリオについて説明します。

###グラフ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/df3e7f49-d424-c8e9-e35b-648e314eac15.png)

グラフパネルは、Grafanaで最もシンプルでかつ強力な視覚化パネルです。時間軸上にデータポイントを表示するシンプルで設定が簡単なタイムチャートです。移動平均、最小、最大、数、平均などの様々なフィルターを使用して、データを簡単に修正することができます。様々なメトリクスを同じグラフ上で相関させることができ、タイムシフト機能を使用して過去の時間枠で現在の値を比較することができます。

ここでは、不安定性が高く、データの変動が大きいアプリケーション向けに、CPU、メモリ、ヒープなどのメトリクスを表示するためにグラフパネルを使用しています。すべてのデータポイントが一定期間にわたってチャート化されているグラフは、シングルスタットや他のパネルが選択されている場合には気づかないかもしれない外れ値や悪いフリップを追跡するために常に優れています。また、異なるメトリクスを重ね合わせて時間をかけて比較したい場合は、グラフパネルが最適です。グラフには、状態の変化やトリガーを検出するための大きな役割を果たすアラートと通知の追加機能が付いています。

#シングルスタット (Single Stat)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/9b8e797c-ad96-a341-31d9-d298c8156461.png)

その名の通り、シングルスタットパネルでは、SINGLEシリーズのサマリーを表示することができます。このパネルは、クエリの結果として得られた値を表示したり、値のマッピング変換オプションを使用してテキストを表示したりするのに使用されます。背景のデータの履歴コンテキストを表示するディスプレイで、スパークラインを有効にするかどうかの選択が可能です。上の写真はそれを無効にしており、下の3つのシングルステートパネルにスパークラインが表示されています。  状態の変化を通知するために、しきい値を設定し、起動した際はパネル全体が色符号化することが出来ます。ダッシュボードでは、シングルスタットを使用してサーバのヘルス値をテキストで表示しました。また、proc数、アプリケーションの応答時間、スレッド数などのメトリクスも同じパネルで表すことにしました。singlestatはパネルごとに1つのメトリックしか表示しないので、CPUやRAMのようにサーバごとに個別の値を持つKPIを使用するのは避けたほうがいいかもしれません。また、状態が頻繁に変化するようなメトリクスにはSinglestatを使用しない方が賢明です。Singlestatのパネルでは、クイックフリップは簡単に気づかれないことがあります。

#ゲージ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/798a758a-d4c1-1de4-f9af-27bec0d20969.png)

スピードメーターとしても知られるゲージは、単一の入力系列を取り、あらかじめ決められた下限と上限の境界内に占める位置の観点から値をレンダリングするシングルスタットに似ています。この可視化は、境界範囲が定義されている KPI に対してのみ選択されます。閾値をマークや調整でき、それに応じて表示値をカラーコード化し、通常範囲を下回れば、ユーザーに対して簡単に警告することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/fe21d301-b4b3-4ad2-1665-5cfee263e521.png)

バーゲージはプログレスバーに似ています。複数のメトリックによって同時にデータを取得し、それぞれのメトリックをバーで表示する事ができます。バーには、メトリックの現在の値が表示されます。バー・ゲージまたはプログレス・バーは、時間の経過とともに進行や完了の値を表すメトリクスを表示する場合に効率的で意味があります。また、それらは事前に定義された境界線を設定する必要があります。私たちは、仕事完了パーセンテージやプロジェクトの完了状況などのKPIのためにこの可視化を使用しました。バーゲージには、特定の値に達したときに重要な状態を反映させるために設定できる閾値と色の組み合わせオプションもあります。


#ポリスタット （Poly Stat)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/f1d9e351-ecb6-2835-cba4-7585153b9818.png)

ポリスタットパネルは、指定されたメトリクスのグループの概要を提供してくれるのが、このシステムの良いところです。このパネルには、単一または複合のメトリクスとそのトリガー状態を表す小さな六角形または円が表示されます。合成のメトリクスが示しているのは結合されたメトリクスのかたまりが一つとして表示されることです。適切な閾値で設定されると、少なくとも、メトリクスかたまりの一つだけがトリガー状態であれば小さな六角形の箱の色が変わります。データをグループ化して最適に表示するためのカスタマイズオプションが多数用意されています。ポリスタットの最適な使用例を言えば、類似のメトリクスを組み合わせて共通の閾値を設定したい場合です。例えば、同じクラスタに属するすべてのサーバのCPU使用率を1つにまとめて、複合メトリックを作成しました。1つのクラスタやアプリケーションに属するほとんどのサーバは類似しているので、同じ閾値を共有しています。このようなシナリオでは、polystatを使用してそれらを1つにグループ化し、パネル上に1つの六角形/円を表示するのが理想的です。少なくとも1つのサーバがトリガー状態になると、それに応じて色が変化し、ユーザーに異常を知らせます。

#テーブル

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/a32e71ca-c5f1-3675-c2bf-53b6f1a78214.png)

テーブルは、メトリクスの個別のキーデータを表現するのに最適な方法です。 表パネルは、時系列、注釈、JSON データの複数のモードもサポートしています。複数の系列からのデータを相関させたり、比較のために系列に異なる機能を適用したりするときに、表の実際の力が発揮されます。閾値を使用した色分けは、異常を検出するためのテーブルの最も強力な機能の1つです。また、テーブルは最近のGrafanaの一部のバージョンでは、値のテキストマッピングをサポートしています。

#アラートリスト

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/406e079b-2e40-5532-7c95-12d622853b7f.png)

そして最後になりますが、アラートリストは、ダッシュボードから、異なるパネルに関係なく、トリガーされたすべてのアラートを表示することができるパネルです。現在のところ、すべてのGrafanaパネルにデフォルトのアラートや通知機能が搭載されているわけではないため、Alert Listの適用範囲は限られています。しかし、グラフが好きで、ダッシュボードにたくさんのグラフチャートがある場合は、アラートや通知を有効にして、それらを単一のパネルに一覧表にすることは、確実に良い手法です。

#詳細ダッシュボード

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/ad10b53c-b60e-791e-0388-f9a025d14c5a.png)

この記事の2番目のパートは、詳細ダッシュボードです。これは非常にシンプルなダッシュボードで、サーバーやアプリケーションのキャプチャされたすべてのメトリクスがリストアップされています。このダッシュボードは、マスターダッシュボードで実際に観測されたすべての問題や異常の説明として役立ちます。マスターダッシュボードにリストされているすべてのKPIもこのダッシュボードの一部ですが、トラブルシューティングに必要な概要を取得する際には、必要のない余分な情報を付け加えます。

この詳細ダッシュボードを使用する目的は、問題の発生時に影響を受けたすべてのKPIを迅速に特定し、そのパターンを相関させることで犯人と被害者を特定することです。グラフパネルを使用してすべてのデータをグラフ化することを常にお勧めします。これにより、複数の異なるデータを、それらの過去の傾向を見て簡単に相関させることができます。また、タイムシフト変更などの機能的機能は、トラフィックの傾向、注文の傾向、売上、収益パターンなどの季節的な指標の比較を含む問題の分析に役立ち、日々の比較のためのグラフのプロットに役立ちます。

さらに、詳細ダッシュボードには、1つのダッシュボードを使用して変数を作成し、同じテンプレートを使用してさまざまなメトリックを表示できるGrafana独自のテンプレート機能が装備されているため、作成とナビゲーションに必要な全体的な労力を削減できます。

その使いやすさの例として、同じクラスターに属する類似したサーバーが10台あるとします。個々のサーバーのすべてのKPIを表示するには、サーバーごとに10の異なるダッシュボードを作成するか、共通のメトリックに基づいてそれらを1つのダッシュボードにグループ化する必要があります。個々のダッシュボードを作成するのは非常に手間がかかりますが、単一のサーバーのデータを確認する必要がある場合は、すべてのサーバーをグループ化して単一のダッシュボードを作成することは役に立たない可能性があります。ユーザーはパネルを編集して毎回他のサーバーを非表示にする必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/79a61562-e439-cc57-9b38-44acccdde534.png)

このようなシナリオでは、テンプレートが役立ちます。 変数を簡単に作成し、その値（ここではサーバー名）に正しくマッピングしたら、ダッシュボードのドロップダウンから値を選択して、対応するデータをレンダリングします。 これは、同様のすべてのサーバーに適合する単一のダッシュボードテンプレートです。 ユーザーは、必要に応じて複数選択または単一選択を許可する場合があります。 この機能により、必要なパネルを簡単に作成でき、将来のナビゲーションも最小限に抑えられます。

#ビジネス・インテリジェンス用のGrafanaダッシュボード

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/193264ce-104e-4aec-bcf6-3b7cb4aebc35.png)

私たちのお気に入りのビジネスインテリジェンスダッシュボードは、最も重要な日々の売上と収益のデータを視覚化するために多くの企業で広く使用されています。前に述べたように、作成の基本的な原則は同じままですが、データの目的とアプリケーションが変更されます。ビジネスレポートでは、ほとんどの人がさまざまなチャネル、デバイス、プロモーション、キャンペーン、地域などによるデータの分離に関心があり、それらを前日、週、または年と比較または傾向付けします。このことを念頭に置いて、ビジネスインテリジェンスダッシュボードでは、円グラフ、ゲージ、進行状況バー、単一の統計などの視覚化を利用しています。

円グラフは、売上をカテゴリー別に分類するための良い方法です。ゲージ/速度計は、会社の目標を実証し、現在の達成状況をマークするためによく使用されます。進行状況バーは通常、さまざまなキャンペーンとその現在の完了ステータスを示すために使用されます。セッションの長さ、平均注文値、ユニークビジター数などのさまざまなKPIは、ほとんどの場合有益であり、通常は比較や時系列として提示する必要はありません。この種の情報を単一の値の統計にレンダリングすることは良いことです。多くの場合、企業はコンバージョンを目標到達プロセスの形で見ることに関心がありますが、残念ながらGrafanaにはデフォルトの方法がありません。もちろん、いくつかの画像プラグインを使用してファンネルデータを間接的に表現する方法は常に実現できます。

#まとめ
Grafanaパネルにはそれぞれ独自の最適な使用例がありますが、それはすべて作成者と彼らがデータをどれだけよく知っているかにかかっています。 データをよく知っている場合は、最終的にそれを表現するための最良の方法を見つけるでしょう。 [MetricFire](https://try.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Our%20Favorite%20Grafana%20Dashboards)の[無料トライアル](https://www.hostedgraphite.com/accounts/signup-metricfire/?signup=japan&utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Our%20Favorite%20Grafana%20Dashboards)に参加して、データの視覚化を始めましょう。 また、いつでも[デモを予約](https://calendly.com/metricfire-chatwithus/chat?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=Our%20Favorite%20Grafana%20Dashboards)して、監視のニーズについて直接MetricFireに相談することができます（日本語対応）。 

それでは次の記事で！