Prometheus データソースの使用 - Amazon Managed Grafana

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Prometheus データソースの使用

Prometheus の設定

名前 説明
Name データソース名。これは、パネルとクエリでデータソースを表示する方法です。
Default デフォルトのデータソースは、新しいパネル用に事前に選択されることを意味します。
Url Prometheus サーバーの URL。例:https://prometheus.example.org:9090
Access サーバー (デフォルト) = URL は Grafana バックエンド/サーバーからアクセスできる必要があります。
Basic Auth Prometheus データソースへの基本認証を有効にします。
User 基本認証のユーザー名。
Password 基本認証のパスワード。
Scrape interval これを Prometheus で設定された一般的なスクレイプと評価間隔に設定します。デフォルトは 15 秒です。
Disable metrics lookup このオプションをオンにすると、クエリフィールドの自動入力でのメトリクスの選択者とメトリクス/ラベルのサポートが無効になります。これは、より大きな Prometheus インスタンスでパフォーマンスの問題が発生した場合に役立ちます。
Custom Query Parameters Prometheus クエリ URL にカスタムパラメータを追加します。例えばtimeout、、partial_responsededup、または などですmax_source_resolution。複数のパラメータを「&」と連結する必要があります。

Prometheus クエリエディタ

以下のセクションでは、ダッシュボードおよび Explore の Prometheus クエリエディタに関する情報とオプションについて説明します。

ダッシュボードのクエリエディタ

編集モードでグラフを開くには、タイトルを選択し、編集を選択します (パネルで一時停止しながら e キーを押します)。

名前 説明
Query expression Prometheus クエリ式の詳細については、Prometheus のドキュメント「」を参照してください。
Legend format 名前またはパターンを使用して、時系列の名前を制御します。例えば、 {{hostname}}はラベル のラベル値 に置き換えられますhostname
Min step step Prometheus 範囲クエリの パラメータと、 $__intervalおよび $__rate_interval変数の追加の下限。制限は絶対であり、解決設定によって変更されません。
Resolution 1/1 は、各ピクセルが 1 つのデータポイントに対応するように、stepPrometheus 範囲クエリの $__interval変数と パラメータの両方を設定します。パフォーマンスを向上させるには、低解像度を使用します。 は 1 ピクセルおきのデータポイント1/2のみを取得し、 は 10 ピクセルあたり 1 つのデータポイント1/10を取得します。最小時間間隔最小ステップの両方で、 $__intervalと の最終値が制限されることに注意してくださいstep
Metric lookup この入力フィールドでメトリクス名を検索します。
Format as TableTime series、または を切り替えますHeatmap。 はテーブルパネルでのみTable動作します。 Heatmapは、ヒートマップパネルにヒストグラムタイプのメトリクスを表示するのに適しています。累積ヒストグラムを通常のヒストグラムに変換し、バケット境界でシリーズをソートします。
Instant 「インスタント」クエリを実行して、Prometheus がリクエストされた時系列に対してスクレイプした最新の値のみを返します。即時クエリは、正常範囲クエリよりもはるかに高速に結果を返します。それらを使用してラベルセットを検索します。
Min time interval 解決設定の分母にこの値を乗算すると、Prometheus 範囲クエリの $__interval変数と パラメータの両方に下限が設定されます。 stepデータソースオプションで設定されたスクレイプ間隔をデフォルトにします。
注記

Amazon Managed Grafana は、動的に計算されたステップに合わせてクエリのリクエスト日を変更します。これにより、メトリクスデータが一貫して表示されますが、グラフの右端にデータのギャップがわずかになる可能性があります。

ダッシュボードでの即時クエリ

Prometheus データソースを使用すると、最新の値のみをクエリするインスタントクエリを実行できます。テーブルパネルで結果を視覚化して、時系列の使用可能なすべてのラベルを表示できます。

即時クエリ結果は、シリーズごとに 1 つのデータポイントで構成されます。これらは、シリーズオーバーライドの助けを借りてグラフパネルに表示できます。最新の値ポイントとしてグラフに表示するには、シリーズオーバーライドを追加して を選択しますPoints > true。グラフ全体に水平線を表示するには、シリーズオーバーライドを追加し、「シリーズオーバーライドの詳細については、Transform > constant」を参照してくださいシリーズオーバーライド

Explore のクエリエディタ

名前 説明
Query expression Prometheus クエリ式の詳細については、Prometheus のドキュメント「」を参照してください。
Step Step Prometheus 範囲クエリの パラメータ。時間単位は、5s、1m、3h、1d、1y などで使用できます。単位が指定されていない場合のデフォルト単位は s (秒) です。
Query type RangeInstantBothRange クエリを実行すると、クエリの結果がグラフとテーブルに表示されます。インスタントクエリは、Prometheus がリクエストされた時系列に対してスクレイピングした最新の値のみを返します。この値は テーブルに表示されます。両方を選択すると、インスタントクエリと範囲クエリの両方が実行されます。範囲クエリの結果がグラフに表示され、即時クエリの結果がテーブルに表示されます。

メトリクスブラウザ

メトリクスブラウザを使用すると、メトリクスをすばやく検索し、関連するラベルを選択して基本的なクエリを作成できます。ブラウザを開くと、使用可能なすべてのメトリクスとラベルが表示されます。Prometheus インスタンスでサポートされている場合、各メトリクスには HELP と TYPE がツールヒントとして表示されます。

メトリクスを選択すると、ブラウザは使用可能なラベルを絞り込んで、メトリクスに該当するラベルのみを表示します。その後、使用可能なラベル値が下部セクションのリストに表示されるラベルを 1 つ以上選択できます。各ラベルに 1 つ以上の値を選択して、クエリの範囲を絞り込みます。

注記

開始するメトリクス名を覚えていない場合は、最初にいくつかのラベルを選択してリストを絞り込んでから、関連するラベル値を見つけることもできます。

メトリクスブラウザのすべてのリストには検索フィールドがあり、特定の文字列に一致するメトリクスやラベルをすばやくフィルタリングできます。values セクションには 1 つの検索フィールドしかありません。そのフィルタリングはすべてのラベルに適用され、ラベルアプリケーション、ジョブ、job_name の中から 1 つのラベルだけが探している値を持つ場合など、ラベル間で値を見つけるのに役立ちます。

クエリに問題がなければ、「クエリを使用する」をクリックしてクエリを実行します。レートクエリとしての使用 ボタンは、クエリに rate(...)[$__interval] を追加して、カウンターメトリクスのクエリを書き込むのに役立ちます。「セレクタの検証」ボタンは、そのセレクタで使用可能な時系列の数を Prometheus に確認します。

制限事項

メトリクスブラウザのハード制限は、10,000 ラベル (キー) と 50,000 ラベル値 (メトリクス名を含む) です。Prometheus インスタンスがより多くの結果を返す場合、ブラウザは引き続き機能します。ただし、結果セットはこれらの最大制限を超えて切り捨てられます。

テンポラリング

メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに、代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

テンプレートおよびテンプレート変数の詳細については、「」を参照してくださいテンプレートと変数

クエリ変数

Query タイプの変数を使用すると、Prometheus にメトリクス、ラベル、またはラベル値のリストをクエリできます。Prometheus データソースプラグインには、クエリ入力フィールドで使用できる以下の関数が用意されています。

名前 説明
label_names() ラベル名のリストを返します。
label_values(label) すべてのメトリクスlabelの のラベル値のリストを返します。
label_values(metric, label) 指定されたメトリクスlabelの のラベル値のリストを返します。
metrics(metric) 指定されたmetric正規表現に一致するメトリクスのリストを返します。
query_result(query) の Prometheus クエリ結果のリストを返しますquery

メトリクス名ラベル名ラベル値の詳細については、Prometheus のドキュメント「」を参照してください。

間隔変数と範囲変数の使用

注記

$__range$__range_s、および のサポート$__range_msは、Grafana v5.3 からのみ利用できます。

クエリ変数には、、$__interval$__interval_ms$__range_s$__rangeなどのグローバル変数を使用できます$__range_ms。詳細については、「グローバル変数」を参照してください。query_result 関数がクエリをサポートしていないため、変数クエリをフィルタリングする必要がある場合は、label_values関数で使用すると便利です。

ダッシュボードの時間範囲を変更するときに正しいインスタンスを取得するには、変数のrefreshトリガーを に設定してくださいOn Time Range Change

次のコード例は、ダッシュボードに表示される時間範囲の平均 QPS に基づいて、最もビジーな 5 つのリクエストインスタンスを変数に入力する方法を示しています。

Query: query_result(topk(5, sum(rate(http_requests_total[$__range])) by (instance))) Regex: /"([^"]+)"/

次のコード例は、 を使用して、ダッシュボードに表示される時間範囲にわたって特定の状態を持つインスタンスを変数に入力する方法を示しています$__range_s

Query: query_result(max_over_time(<metric>[${__range_s}s]) != <state>) Regex:

$__rate_interval 変数の使用

$__rate_interval 変数は rate 関数で使用することを目的としています。max( $__interval + スクレイプ間隔 、4 * スクレイプ間隔 ) として定義されます。スクレイプ間隔は、最小ステップ設定 (AKA query_interval、PromQL クエリごとの設定)、設定されている場合、および Prometheus データソースに設定されているスクレイプ間隔です (ただし、パネル内の最小間隔設定は無視されます。これは、解決設定によって変更されるためです)。

クエリでの変数の使用

2 つの構文があります。

  • $<varname> 例: rate(http_requests_total{job=~"$job"}[5m])

  • [[varname]] 例: rate(http_requests_total{job=~"[[jobTAK"}[5m])

2 つの方法を使用する理由 最初の構文は読み書きが容易ですが、単語の途中で変数を使用することはできません。複数値またはすべての値を含めるオプションが有効になっている場合、Grafana はラベルをプレーンテキストから正規表現互換文字列に変換します。つまり、 =~の代わりに を使用する必要があります=

‏注釈

注釈を使用して、グラフの上に豊富なイベント情報をオーバーレイできます。注釈クエリは、ダッシュボードメニューまたは注釈ビューを使用して追加します。詳細については、「‏注釈」を参照してください。

Prometheus は、注釈をクエリする 2 つの方法をサポートしています。

ステップオプションは、クエリから返されるイベント数を制限するのに役立ちます。