メトリクスは、可観測(Observable)システムの基本です。メトリクスは、システムの測定されたアウトプットを示し、顧客の状況や問題の発生時刻を可視化します。しかし、システムのアウトプットからメトリクスを記録し保存する方法は、すべてが同じではありません。システムのメトリクスをGrafana Cloud に送信するための最適な方法は、測定データのソースからはじまり、可観測ツールに精通しているかどうかまで、多くの要因に依存しています。
Grafana Cloud のお客様は、通常、メトリクスの最適な送信方法を決定するにあたり、次の4つの点の中からいくつかのポイントを検討します。
- どの時系列データベースを対象とするか?
- メトリクスを収集・集計するためのプログラムをどの程度精通しているか?
- 監視したいメトリクスの量と規模はどの程度か?
- アプリケーションの実行環境はどうであるか?
このガイドは、実現性とトレードオフを、よりよく理解するのに役立ちます。最終的には、自社システムが、メトリクスをGrafana Cloud に送信する最適な方法を見極めることができるようになります。
なぜGrafana Cloud にメトリクスを送信するのか
アプリケーションとコアインフラの構築、展開、管理というものは、レジリエンスな監視とデータ可観測を可能にする冗長化されたメトリクスや時系列データベースのホスティングを心配する必要がないとしても、十分に複雑です。
Grafana Cloud はマネージドサービスであり、Grafana、Grafana Mimir、Grafana Loki などのオープンソースツールに接続すれば、直ぐに利用を開始でき、自社でサービスを展開する際に発生するインストールや保守の手間を省略することができます。
Grafana Cloud の利用を開始すれば、利用状況に応じて自動的に拡張されるため、安心してご利用いただけます。いうまでもありませんが、セキュリティの修正プログラムやリリースアップグレードを代行することも可能です。
自社で対応した場合 | Grafana Cloudを利用した場合 | |
---|---|---|
価格 | ストレージとインフラコストの費用がかかる | 開始時から永続的に無料 |
スケーラビリティ | 困難 | 自動 |
セキュリティ修正 | 手間がかかる | 自動 |
アップグレード | 手間がかかる | 自動 |
データ保持 | 不定 | 13ヶ月 |
Grafana Cloud にどのメトリクスを送信すべきか?
監視するメトリクスは、目的とシステムのアウトプットに依存します。可能性は無限ですが、モニタリングの「The Four Golden Signals(4つのゴールデンシグナル)」のインサイトを示すメトリクスに焦点を当てると良いでしょう。
- レイテンシー:リクエストの処理にかかる時間
- トラフィック:システムにどれだけのリクエスト(要求)があるか
- エラー:システム上の障害発生率
- サチュレーション:システムがどの程度使用されているか(飽和状態)、また、どの程度容量が残っているかという重要な点を示します
送信したいメトリクスを絞り込めたら、メトリクスの典型的な測定構造を確認することをお勧めします。そうすることで、測定基準をどれだけ細かく設定できるか(あるいは設定できないか)を知ることができます。またGrafanaを使ってどのようにメトリクスにクエリをかけるのか感触を得ることができます。
このガイドでは例として、Grafana Cloud にメトリクスをプッシュするための、最も簡単で柔軟な方法の1つであるGraphiteを使用します。
各メトリクスは、次のプロパティで構成されます。
name // Graphite style name (required)
interval // the resolution of the metric in seconds (required)
value // float64 value (required)
time // unix timestamp in seconds (required)
tags // list of key=value pairs of tags (optional)
メトリック名の構文
<namespace>.<instrumented section>.<target (noun)>.<action (past tense verb)>
例)accounts.authentication.password.succeeded
クレジット:Graphite Monitoring Practical Guide(グラファイトモニタリング実践ガイド)
メトリクスタグ(オプション)
["key1=value1", "key2=value2"]
例)["location=usa", "environment=production"]
関連するメトリクス名とタグを選択したら、追加したい項目もでてきます。
- time:Unixタイムスタンプ(秒)
- interval:メトリクスデータポイント間の時間
- value:浮動小数点数で、どれだけ測定されたかを示します
これをまとめると、次のようなGraphiteメトリクス例を得ることができます。
{
"name": "accounts.authentication.password.succeeded ",
"interval": 10,
"value": 1.0,
"tags": \["location=usa", "environment=production"],
"time": 1660850859
}
さて、ここでは、自社システムに関連するメトリクスを送信してみましょう。Grafana Cloud へのメトリクスを送信する追加ポインタについては、こちらをお読みください。
Grafana Cloud にメトリクスを送信するには?
Grafana Cloud にメトリクスを送信するために最もよく使われる方法は、以下のとおりです。
柔軟性の高いHTTPへの書き込み
HTTPでシステムに関するメトリクスを送信したい方におすすめです。これは、HTTPインターフェースの普遍的な性質を考えると、アプリケーション開発者、Raspberry Piハッカー、Linux管理者などに最適です。
Graphite例
Prometheusの例(InfluxDBラインプロトコル経由)
最も簡単なエージェント
Linux、Kubernetes、Nginx、Dockerなどの一般的なサーバーツールに対応した多くの統合機能です。サーバーにコマンドをコピーペーストするだけで、数分で構築済みのダッシュボードにアクセスし、メトリクスを迅速に可視化できます。
インフラのパフォーマンスメトリクスを知りたい方におすすめです。
Prometheusのパワーユーザーに最適なリモート書き込み
最も難易度が高いです。専用ソケットで大量のメトリクス(> 100k アクティブシリーズ)を送信するユースケースに適しています。
次のステップは何でしょうか?メトリクスデータが Grafana Cloudに送られると、次のステップは、メトリクスを時系列で監視できるようにビジュアライゼーションの構築を開始することです。Grafana インスタンスのエクスプローラーツールにアクセスすることをお勧めします。
Grafanaエクスプローラー
エクスプローラーツールでは、グラフや表の形でメトリクスを返すクエリを、素早く簡単に作成し、データの傾向を示すダッシュボードに追加することができます。データを掘り下げ、どの部分がダッシュボードやアラートなどに最適なのかを把握するのに最適です。
エクスプローラーの使用
エクスプローラー内において、ニーズに応じて調整する必要があるコンポーネントは以下の通りです。
- データソースの選択
左上にデータソースを選択するためのドロップダウンが表示されます。上記のHTTP Writeの例に従うなら、grafanacloud–graphiteデータソース、あるいはgrafancloud–promデータソースのどちらかを選択します。 - クエリを作成する
エクスプローラーには、データソースセレクターの下に、あらかじめ組み込まれたクエリビルダーがあります。シリーズの横にあるドロップダウンをクリックすると、クエリに使用する一連のメトリクスを素早く選択できます。また、データソースのクエリ言語をすでに使いこなしている場合は、エクスプローラーでクエリを一から作成することも可能です。 - 可視化
Exploreの右上にあるRun queryをクリックすると、クエリが実行されます。Exploreでは、メトリックデータを素早く確認できるように、グラフと表で表示されます。最後に、クエリを時系列でモニタリングする準備ができたら、Add to dashboardをクリックします。
Grafanaエクスプローラーの詳細についてはこちらをご覧ください。
Grafana Cloud メトリクスの詳細
Grafana Cloud へのメトリクス送信についてご質問がある場合は、お気軽にお問合せください。
以下は、ベストプラクティス、構成、使用例に関するいくつかの追加リソースです。
Grafana Cloud のリソース
Graphiteリソース
Grafana Cloudのドキュメント
- Graphiteメトリクス (Graphite metrics)
- Grafana Cloud向け Graphite HTTP API (Graphite HTTP API for Grafana Cloud)
- Grafana CloudにおけるGraphiteのデータ構成 (Graphite Data Configuration in Grafana Cloud)
ブログ記事
- Grafana CloudでBitcoinノードが稼働するUmbrelサーバーを監視する方法 (How to monitor an Umbrel server running a Bitcoin node with Grafana Cloud)
- 自宅の硬水軟化装置をGrafana Cloudでモニタリングする方法 (Monitoring a hard water softener at home with Grafana Cloud)
Prometheusリソース
Grafana Cloudドキュメント
- Prometheusメトリクス (Prometheus metrics)
- カスタムエージェントメトリクスエキスポータの構築 (New in Grafana Mimir: Ingest Graphite, Datadog, Influx, and Prometheus metrics into a single storage backend )
- DatadogのメトリックスをGrafanaクラウドに転送する (How to monitor a Tesla with Grafana Cloud)
ブログ記事
- Prometheusリモートライトの未来 (The future of Prometheus remote write)
- Grafana Mimirの新機能:Graphite、Datadog、Influx、Prometheusのメトリクスを単一のストレージバックエンドにインジェストする (New in Grafana Mimir: Ingest Graphite, Datadog, Influx, and Prometheus metrics into a single storage backend)
- Grafana CloudでTeslaを監視する方法 (How to monitor a Tesla with Grafana Cloud)
もし、可観測を始める最も簡単な方法であるGrafana Cloudをまだ利用していない場合は、今すぐGrafana Cloud プロの14日間の無料トライアルにサインアップください。このトライアルでは、無制限のメトリクス、ログ、トレース、およびユーザー、長期保存、そして1つのエンタープライズプラグインにアクセスできます。
原文:Grafana Cloud Metrics: A guide to what metrics to monitor and best practices
著者:John Marbach