raintank、https://grafana.org/[Grafana]の背後にある会社のMatt Tobackの記事

前書き

Grafanaは、時系列インフラストラクチャとアプリケーションメトリックを視覚化するための主要なグラフおよびダッシュボードビルダーですが、多くは、産業用センサー、ホームオートメーション、天気、プロセス制御などの他のドメインで使用しています。 ダッシュボードとデータを作成し、調査し、チームや世界と共有するための強力でエレガントな方法を提供します。

このチュートリアルでは、PrometheusをデータソースとしてGrafanaインスタンスに追加し、構成済みのPrometheusサーバー統計ダッシュボードをインストールする方法を学習します。

前提条件

このチュートリアルを実行するには、次のものが必要です。

  • Ubuntu 14.04ドロップレット

  • sudoアクセスを持つユーザー(詳細については、Ubuntu 14.04での初期サーバーセットアップチュートリアルを参照)

  • Dockerを使用してPrometheusをインストールする方法の指示に従ってインストールされたPrometheusおよびGrafana 2.5+ Ubuntu 14.04で]

ステップ1-プロメテウスをGrafanaデータソースとして追加する

このセクションでは、データソースとしてPrometheusサーバーにアクセスするようにGrafanaを構成します。 各Prometheusサーバーは個別のデータソースであり、複数のPrometheusサーバーを構成している場合は、それぞれについてこのセクションを繰り返します。

`+ http://:3000 / +`のGrafanaメインビューに移動し、管理者アカウントにログインします。

メインメニューを表示するには、左上隅のGrafanaアイコンをクリックします。 [データソース]を選択して、データソースリストページに移動します。 上部のナビゲーションバーで[新規追加]をクリックします。 以下が表示されるはずです。

画像:https://assets.digitalocean.com/articles/grafana_prometheus/4ST1Bt3.png [プロメテウスデータソース]

次の値を使用して、新しいデータソースを作成します。

  • + Name +:プロメテウス

  • + Type +:プロメテウス

  • + URL +:http://、(デフォルトのポートは9090)

  • + Access +:プロキシ

  • + Basic Auth +:Prometheusサーバーが設定されているため、有効または無効になります。

[追加]をクリックしてデータソースを追加し、[接続のテスト]をクリックしてすべてが正常に機能していることを確認します。 成功したら、次のステップに進んでダッシュボードをインポートします。

ステップ2-Prometheus Statsダッシュボードのインポート

このセクションでは、公式の事前作成済みのPrometheus Statsダッシュボードをダウンロードし、それをGrafanaにインポートする方法を説明します。

次の2つの方法のいずれかで、最新のPrometheusダッシュボードをダウンロードします。

  1. 右クリックして次のリンクを保存します。http://grafana.org/assets/dashboards/prometheus-dash.json [Prometheus Stats-Default Grafana Dashboard]

  2. ブラウザをダッシュ​​ボードJSONファイルに直接移動します。
    + http:// grafana.org / assets / dashboards / prometheus-dash.json +

インポートビューは、[新しいダッシュボード]ボタンと[プレイリスト]ボタンの横にある[ダッシュボードピッカー]ドロップダウンにあります。

ローカルJSONファイルからダッシュボードをインポートするには、* Import File セクションの Choose file *ボタンをクリックします。 ダウンロードした `+ prometheus-dash.json +`をローカルファイルシステムで見つけてインポートします。

画像:https://assets.digitalocean.com/articles/grafana_prometheus/HGL0BSi.gif [インポート]

*注意:*データソースに `+ Prometheus `以外の名前を付けた場合、 ` .json +`ファイル内のデータソース名を見つけて置き換える必要があります。 以下で開きます:

nano prometheus-dash.json

次を見つけて、データソースのファイル名をから名前を付けたものに変更します。

prometheus-dash.json

"datasource": "",

Prometheusダッシュボードをインポートすると、すぐにPrometheus Statsダッシュボードに移動し、すべてが適切に構成されていれば、Prometheusサーバーからの統計情報の表示を開始します。

画像:https://assets.digitalocean.com/articles/grafana_prometheus/TuWTZpv.png [Prom Stats Dash]

重要:トップメニューの[保存]ボタンをクリックして、Grafanaインスタンス内にダッシュボードを保存します。 ダッシュボードを保存しないと、ブラウザを閉じた後、ダッシュボードはGrafanaに表示されません。

手順3-Prometheus Statsダッシュボードの表示

インポートが成功すると、すぐに新しい_unsaved_ダッシュボードに移動します。 このダッシュボードは、Prometheusチームの助けを借りて構築され、Prometheusサーバーのトラブルシューティングに一般的に使用される基本的なメトリックを強調しています。

画像:https://assets.digitalocean.com/articles/grafana_prometheus/prom_dash.png [プロメテウスダッシュボード]

個々のパネルと報告される指標は次のとおりです。

単一の統計グラフ

  • アップタイム:この単一の統計グラフは、アップタイム、またはPrometheusサーバーがオンラインになってからの時間です。 一目で、この統計は、サーバーが最近再起動したかどうかを知るのに役立ちます。

  • ローカルストレージメモリシリーズ:このパネルには、ダッシュボードの時間範囲で指定された「+ From 」値の時点でメモリに保持されている現在のシリーズ数が表示されます。 デフォルトでは、これは ` now`です。

  • 内部ストレージキューの長さ:理想的には、このキューの長さは空(0)または小さい数値である必要があります。

  • 取り込まれたサンプル:このグラフは、範囲ベクトルの時系列ごとに、過去5分間に測定された、Prometheusサーバーによって取り込まれたサンプルの数を表示します。 IRCまたはGithubの問題をトラブルシューティングする場合、これは多くの場合、Prometheusチームが最初に要求する統計です。 この数は、摂取していると思われるメトリックの数と一致する必要があります。

  • Samples Ingested *クエリは次のとおりです。

rate(prometheus_local_storage_ingested_samples_total[5m])

擦り傷

Prometheusは、直接または短期間のジョブの中間プッシュゲートウェイを介して、インストルメント化されたジョブからメトリックをスクレイピングします。 * Target Scrapes *グラフは、範囲ベクトルの時系列ごとに、過去5分間に測定されたターゲットのスクレイピングの頻度を示します。 *スクレイプ期間*グラフは、シリーズとして利用可能なパーセンタイルでスクレイプにかかっている時間を示します。 スクレイプ期間は、50パーセンタイル(0.5)、90パーセンタイル(0.9)を示します。 データを歪曲している可能性のある外れ値を識別するのに役立つ3つの別個のシリーズとしての99パーセンタイル(0.99)。

  • Target Scrapes *クエリは次のとおりです。

rate(prometheus_target_interval_length_seconds_count[5m])
  • Scrape Duration *クエリは次のとおりです。

prometheus_target_interval_length_seconds{quantile!="0.01", quantile!="0.05"}

ルール評価期間

このグラフパネルは、実行するすべての評価の期間をプロットします。 50パーセンタイル(0.5)、90パーセンタイル(0.9)、および99パーセンタイル(0.99)は、データを歪曲している可能性のある外れ値を識別するのに役立つ3つの別個のシリーズとして表示されます。

ステップ4-Prometheusダッシュボードからのデータの分析

新しく実行されているPrometheusサーバーの場合、グラフはかなり平らで小さく見えるはずです。

長期的には、これらのグラフは特定のユースケースとワークロードに応じて大きく異なります。 一般に、これらのグラフはすべて安定したままにしておきます。 より多くのターゲットがスクレイピングされている場合、および/またはより多くのメトリックのエクスポートを開始する場合、1秒あたりの取り込みサンプル、メモリシリーズ、およびターゲットスクレイプの数が増加します。

ターゲットのスクレイプが予期せずにドロップするか、スクレイプの待ち時間が長くなる場合は、原因を特定する必要があります。 たとえば、クライアントは通常の1万個のメトリックの代わりに100万個のメトリックのエクスポートを開始したり、ユーザーごとに異なるラベルの時系列をエクスポートしたりできます。 これらの両方は、スクレイプレイテンシの増加を引き起こします。 そのため、グラフが突然上昇した場合、アプリケーションが大幅にスケールアップされただけなのか、それとも不適切にインストルメントされているのかを調査する必要があります。

ルールの評価が遅いことも、Prometheusサーバーが実行されているノードが負荷を処理するのに十分ではないことを示す良い指標です。

ステップ5-グラフとメトリックのカスタマイズ

これで、事前設定された一連のPrometheusサーバー統計情報を含むGrafanaインスタンスにPrometheusダッシュボードが追加されました。

Grafanaを使用すると、Prometheusサーバーで使用可能なメトリックを視覚化することができます。これらはすべて、専用のPrometheusクエリエディターからアクセスできます。 パネルのクエリエディターにアクセスするには、パネルのタイトル領域をクリックしてパネルメニューを表示します。 [編集]をクリックします。 * Metrics *タブが事前に選択され、Prometheusデータソースのクエリおよび利用可能なオプションに直接アクセスできます。

画像:https://assets.digitalocean.com/articles/grafana_prometheus/graf-prom-animated.gif [アニメーションGif]

クエリエディタで変更が行われると、グラフが即座に更新され、編集内容が表示されます。

結論

使用可能なメトリックの完全なリストについては、http:// ++ / metricsに移動できます(ポート9090がデフォルトです)。

これらのメトリックはいずれもGrafanaクエリエディターにコピーして貼り付けることができ、ダッシュボードを保存するまで、編集内容が既存のダッシュボードを上書きすることはありません。

試して、楽しんで、視覚化を始めましょう!