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 にカスタムパラメータを追加します。例えば、timeoutpartial_responsededup、または などですmax_source_resolution。複数のパラメータを「&」と連結する必要があります。

Prometheus クエリエディタ

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

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

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

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

メトリクスブラウザ

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

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

注記

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

メトリクスブラウザのすべてのリストには、特定の文字列に一致するメトリクスまたはラベルをすばやくフィルタリングするための検索フィールドがあります。値セクションの検索フィールドは 1 つだけです。そのフィルタリングはすべてのラベルに適用され、ラベルアプリ、ジョブ、ジョブ名など、ラベルが選択された後にラベル間で値を見つけるのに役立ちます。探している値を持つ可能性があるのは 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_ms$__range_s、Grafana v5.3 からのみ利用できます。

クエリ変数には、、$__interval$__interval_ms、、および のグローバル変数を使用できます$__range$__range_s$__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=~"[[job]]"}[5m])

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

‏注釈

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

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

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