GraphiteとGrafanaを使用したGCPの監視

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/2c072925-8e88-5b4d-3d1f-eb178965f63b.png)

#はじめに

この記事では、Google Cloud Platformでホストされているアプリケーションの監視に関してユーザーが利用できる可能なオプションを紹介していきます。 GraphiteとGrafanaは、クラウドでホストされているアプリケーションの時系列メトリックを監視するために利用できる優れたツールの一つです。

[MetricFire](https://www.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=GCP%20Monitoring%20with%20Graphite%20and%20Grafana)が提供しているマネージされたGraphiteとGrafanaを通じて、Google Cloudユーザーが利用できるホスト型モニタリングオプションもあります。両方の方法を徹底的に比較し、それぞれの長所と短所をリストアップしていきたいと思います。

GraphiteとGrafanaをすぐに試すことができる方法としてMetricFireの[無料トライアル](https://www.hostedgraphite.com/accounts/signup-metricfire/?signup=japan&utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=GCP%20Monitoring%20with%20Graphite%20and%20Grafana)に登録することが出来ます。 または、MetricFireのチームの[デモを予約](https://www.metricfire.com/demo-japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=GCP%20Monitoring%20with%20Graphite%20and%20Grafana)し、監視戦略について話し合うことも出来ます。

この記事は、Google Cloud、[Azure Cloud](https://www.metricfire.com/blog/azure-integration-with-graphite-and-grafana/)などのクラウドプラットフォームの基本的な知識と、アプリケーションの監視の基本を前提としているため、Graphiteと[Grafanaについて詳しく知りたい場合は、こちらの[Graphiteの基礎](https://www.metricfire.com/blog/monitoring-with-graphite-architecture-and-concepts/)と、こちらの[Grafanaの基礎](https://qiita.com/TomoEndo/items/bbf10dbd60c6b85ccee0)をご覧ください。

#Google CloudPlatformの概要
Google Cloudは、クラウドアプリケーションを構築およびデプロイするための最も人気のあるプラットフォームの1つです。 Google Cloudは、コンピューティングエンジン、ストレージ、コンテナ、仮想マシン、クラウドストレージ、仮想プライベートクラウド、負荷分散、コンテンツ配信ネットワーク（CDN）、ドメインネームサービス（DNS）、ビッグデータ、キューなど、クラウドサービスのすべての主要機能を提供します メッセージングなど。 2008年にリリースされたGoogleCloudには、世界中に複数のデータセンターが存在しています。

#Google CloudPlatform 入門
Google Cloud Platformでアカウントを作成し、
[https：//console.cloud.google.com/](https：//console.cloud.google.com/)
でそのコンソールにログインすると、次のダッシュボードが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/7b394395-34bd-9d0a-7fe2-2fe83e478666.png)

コンピューティング、データベース、請求の詳細、および役立つリンクの使用法の概要が表示されます。

このダッシュボードは、このGoogleCloudアカウントで監視するためにすでにいくつかのVMコンピューティングとGoogleCloudSQLサーバーが稼働していることを示しています。

#GoogleCloudの監視
Google CloudMonitoringについて詳しく見ていきましょう。 Google Cloud Monitoringは、以下に示すように、左側の[Operationｓ]セクションに移動すると呼び出されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/b0f03096-41d4-ae16-5327-b8dc81111119.png)

初めて[Overview]をクリックすると、監視ワークスペースの構築と準備に数分かかります。 ワークスペースが構築されるとすぐに、次の情報を示すダッシュボードが表示されます。

リソースダッシュボード：このGoogleCloudアカウントで監視されているさまざまなコンポーネントを示すリスト。
クラウドSQLデータベース：CPU使用率
クラウドSQLデータベース：1分あたりのクエリ
クラウドSQLデータベース：接続数
クラウドSQLデータベース：メモリ使用率

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/abb41479-2745-c4ba-4e03-04ab79ec4a55.png)

すぐに気付いたのは、コンピューティングを監視するためのダッシュボードがないことです。これは少し気になるところです。

左側のセクションからダッシュボードに移動しましょう。 次の情報が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/3975d680-6c1e-bdcb-c351-6b94add567b3.png)

このセクションから、クラウドSQL、ディスク、ファイアウォールなどの各コンポーネントの監視ダッシュボードを参照できます。

Cloud SQLダッシュボードには、概要ページよりもCloudSQLインスタンスに関する情報が少し表示されます。 このページのトップバーはチャートツールバーと呼ばれます。 チャートツールバーについて言及する価値のあるいくつかのポイント：

- 表示期間は1時間から6週間まで設定できます。 カスタム期間を設定するオプションもあります。
- 自動更新をオフにすることができます。 ただし、カスタム更新間隔を設定する方法はありません。
- これらの事前に作成されたダッシュボードには、グラフの種類を設定するためのカスタマイズオプションはありません。たとえば、棒グラフ、円グラフ、単一の値などです。凡例をカスタマイズしたり、単一のグラフに複数の系列をオーバーレイしたりするオプションもありません。
- これらのチャートに関連する唯一のオプションは、チャートをPNG画像としてエクスポートすることです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/c8286aac-c89e-d76f-cdf1-8864fa9c3a44.png)

次に、カスタムダッシュボードを作成し、グラフを作成して、探しているカスタマイズツールが入手できるかどうかを確認します。

多くの苦労の末、CloudSQLインスタンスとComputeインスタンスのCPU使用率を1つのグラフに重ねたグラフを作成することができました。 Grafanaから来たユーザーは、線、積み上げ棒グラフ、積み上げ面積、ヒートマップの4つのグラフオプションだけにガッカリするまもしれません。

大規模な機能を備えたダッシュボードをお探しの場合は、Grafanaをぜひチェックしてください。 MetricFireのHosted　Grafanaを使用すると、Grafanaを数分で試すことができます。

クエリを通じて監視するメトリックを選択できるクエリエディタもありますが、ベータ版であり、UIが文字化けしています（以下を参照）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/89306e32-0b33-0844-9319-4712cec00bf3.png)

すべてのコンピューティングとCloudSQLインスタンスのCPU使用率、メモリ使用率、ディスク使用率、ネットワーク使用率をそれぞれ示す4つのグラフを含むカスタムダッシュボードを作成しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/9744fe9b-47fe-e147-b2f9-04752f815984.png)

経験豊富なユーザーは、Googleの監視ダッシュボードとグラフに次のようなカスタマイズオプションがないことに間違いなく気付くでしょう。

- 1分または5分以外の別の測定間隔を選択するオプションがない
- p90またはp95パーセンタイルなどのパーセンタイルに関するメトリックのプロットがない
- ゲージ、円グラフなどの他の種類のグラフの欠如
- 水平軸と垂直軸のカスタマイズオプションがない

#MetricFireでの監視
[MetricFire](https://www.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=GCP%20Monitoring%20with%20Graphite%20and%20Grafana)は、GraphiteやGrafanaなどのオープンソーステクノロジーに基づいて構築された監視ツールであり、スケーラブルな監視プラットフォームであるHosted GraphiteとHosted Grafanaを提供します。

MetricFireは、メトリックをMetricFireに送信するようにアプリケーションを構成することで、GCPと簡単に統合できます。 MetricFireは、エージェントまたは[StatsD / collectd](https://www.metricfire.com/blog/monitoring-your-infrastructure-with-statsd-and-graphite/)タイプのデーモンを構成する以外に何もすることなく、すべてのデータのストレージ、クエリ、バックアップ、および視覚化をホストします。

MetricFireの製品のユニークな機能のいくつかは次のとおりです。

- **複数のチャートタイプとカスタマイズオプション**：Hosted Grafanaは、市場で最も人気のある視覚化ツールの1つであるGrafanaの上に構築されています。 チャートタイプとチャートタイプごとのカスタマイズオプションがたくさんあります。 Grafanaダッシュボードの威力については、記事[「お気に入りのGrafanaダッシュボード」](https://qiita.com/MetricFire/items/6d4016e6770911773757)をご覧ください。

- **複数のデータソース**：HostedGrafanaとHostedGraphiteは、複数のデータソースからのデータを消費できます。 また、Google StackDriverと統合して、GoogleCloudが提供する指標を監視することもできます。 テクノロジースタックがGoogleCloudで完全にホストされていない場合は、複数の場所を調べるのではなく、テクノロジーインフラストラクチャ全体を監視するための中心的な場所を提供するため、MetricFireによって監視を駆動することは完全に理にかなっています。

詳細な手順については、GoogleCloudの記事[「GrafanaのデータソースとしてのStackdriverの紹介」](https://cloud.google.com/blog/products/management-tools/introducing-stackdriver-as-a-data-source-for-grafana)をご覧ください。オープンソースのGrafanaプロジェクトを通じて利用できるものはすべて、MetricFireを通じてHosted GrafanaSaaSとしても利用できます。

- **[データビュー](https://qiita.com/MetricFire/items/39919f0ccecfb054a2e6)**：Hosted Graphiteは、ダッシュボードの読み込み時間を短縮できるように、最適な解像度でメトリックのさまざまな統計ビューを自動的に提供します。 Hosted Graphiteによって事前に計算された（無料で含まれている）さまざまなメトリックに関するデータビューの記事をお読みください。
- **直感的なアラート**：メトリックが特定のしきい値レベルに違反した場合、Grafanaでアラートを設定するのは非常に簡単です。グラフ自体からカスタムアラートを非常に簡単に設定する方法については、GrafanaAlertingの記事をご覧ください。
- **拡張性**：Grafanaは、プラグインを介して拡張できるように設計されています。カスタムプラグインをサポートし、開発者はGrafanaを新しいデータソースと統合できるようにするための新しいプラグインを考案し続けます。詳細については、[Grafanaプラグイン](https://qiita.com/MetricFire/items/95f0d6424eaac2164095)の記事をご覧ください。

#まとめ

この記事では、GoogleCloudとMetricFireのHosted　GraphiteおよびHosted　Grafanaの監視ツールの比較を見ました。

Google Cloud Monitoringは、GoogleCloudでホストされているアプリケーションを監視するための既製のダッシュボードとチャートを提供します。 カスタムダッシュボードとグラフの作成は直感的ではなく、カスタマイズオプションも多くありません。

MetricFireは、監視アプリケーションを完全にシームレスにする多数の機能を備えた、本番環境に対応したHostedGraphiteおよびHostedGrafanaを提供します。 MetricFireは、GCPアプリケーションとその周辺のインフラストラクチャを監視し、カスタムメトリックを実行して、必要な可観測性を実現できます。

[MetricFire](https://www.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=GCP%20Monitoring%20with%20Graphite%20and%20Grafana)の[無料トライアル](https://www.hostedgraphite.com/accounts/signup-metricfire/?signup=japan&utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=GCP%20Monitoring%20with%20Graphite%20and%20Grafana)にサインアップして、Graphiteをセットアップし、Grafanaダッシュボードを今すぐ構築してください。 [デモを予約](https://www.metricfire.com/demo-japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=GCP%20Monitoring%20with%20Graphite%20and%20Grafana)して、監視スタックを最適に設定する方法についてMetricFireチームに相談することもできます。