Graphite データソースに接続する - Amazon Managed Grafana

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

Graphite データソースに接続する

Grafana には、メトリクス領域をすばやくナビゲートしたり、関数を追加したり、関数パラメータを変更したりできる高度な Graphite クエリエディタがあります。エディタは、あらゆる種類のグラファイトクエリを処理できます。クエリリファレンスを使用して、複雑なネストされたクエリを処理することもできます。

Graphite 設定

Graphite 設定にアクセスするには、[設定] (歯車) アイコンを一時停止し、[データソース] を選択し、Graphite データソースを選択します。

名前 説明
Name データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。
Default デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。
URL graphite-web または graphite-api インストールの HTTP プロトコル、IP、ポート。
Access サーバー (デフォルト) = URL は Grafana バックエンド/サーバーからアクセス可能である必要があります。
Auth
Basic Auth データソースへの基本認証を有効にします。
User 基本認証のユーザー名。
Password 基本認証のパスワード。
Custom HTTP Headers [ヘッダーの追加] を選択して、カスタム HTTP ヘッダーを追加します。
Header カスタムヘッダー名を入力します。
Value カスタムヘッダー値を入力します。
Graphite details
Version Graphite のバージョンを選択します。
Type Graphite のタイプを選択します。

アクセスモードは、データソースへのリクエストの処理方法を制御します。他に何も記述されていない場合は、サーバーが優先されます。

サーバーアクセスモード (デフォルト)

すべてのリクエストはブラウザから Amazon Managed Grafana に行われ、リクエストはデータソースに転送されるため、クロスオリジンリソース共有 (CORS) 要件を回避できます。このアクセスモードを選択する場合、URL は Amazon Managed Grafana からアクセス可能である必要があります。

ブラウザアクセスモード

Amazon Managed Grafana は、Graphite データソースのブラウザへの直接アクセスをサポートしていません。

Graphite クエリエディタ

Grafana には、クエリの構築に役立つ Graphite 固有のクエリエディタが含まれています。

Graphite に送信されるクエリの未加工テキストを表示するには、[テキスト編集モードの切り替え] (鉛筆) アイコンを選択します。

クエリするメトリクスの選択

メトリクス空間をナビゲートするには、[メトリクスを選択] を選択します。操作開始後は、ポインタまたはキーボードの矢印キーを引き続き使用できます。ワイルドカード文字を選択しても続行できます。

関数

関数を追加するには、[関数] の横にあるプラスアイコンを選択します。関数を検索するか、メニューから選択できます。関数を選択すると、その関数が追加され、最初のパラメータのテキストボックスを次に操作します。パラメータを選択するとテキストボックスになり、パラメータを編集または変更できます。- 関数を削除するには、関数名に続いて x アイコンを選択します。

aliasByNode などの一部の関数は、オプションの 2 番目の引数をサポートしています。引数を追加するには、最初の引数を一時停止し、表示される + 記号を選択します。2 番目のオプションパラメータを削除するには、パラメータを選択し、空白のままにします。続いて、エディタにより削除されます。

ラベルのソート

一貫した順序が必要な場合は、sortByName を使用します。これは、複数のグラフに同じラベルがあり、それらが別々にソートされ、異なる色を使用している場合に問題を生じる可能性があります。これを修正するには、sortByName() を使用します。

ネストされたクエリ

クエリは、クエリがある行の文字で参照できます (Microsoft Excel と同様)。グラフに 2 番目のクエリを追加する場合は、「#A」と入力して最初のクエリを参照できます。これにより、複合クエリを簡単に作成できます。

ワイルドカード文字を使用して多くのクエリを回避する

場合によっては、同じグラフに複数の時系列をプロットしたいことがあります。例えば、マシンでの CPU の使用状況を確認することができます。最初に、cpu.percent.user.gcpu.percent.system.g などの時系列ごとにクエリを追加してグラフを作成できます。これにより、データソースに対してクエリが n 件実行されますが、これは非効率的です。

より効率的にするために、検索でワイルドカード文字を使用して、1 つのクエリですべての時系列を返すことができます。例えば、cpu.percent.*.g と指定します。

テーブルまたはグラフのメトリクス名の変更

alias 関数を使用して、Grafana テーブルまたはグラフのメトリクス名を変更します。例えば、aliasByNode() または aliasSub() を使用します。

ポイント統合

すべての Graphite メトリクスは、Graphite がグラフ内のピクセル数よりも多くのデータポイントを返さないように統合されます。デフォルトでは、この統合は avg 関数を使用して行われます。Graphite consolidateBy 関数を追加することで、Graphite がメトリクスを統合する方法を制御できます。

注記

つまり、凡例の概要値 (最大、最小、合計) がすべて同時に正しくなることはありません。これらは Grafana によってクライアント側で計算されます。また、統合関数によっては、1 つまたは 2 つのみが同時に正しくなります。

時系列の組み合わせ

時系列を組み合わせるには、関数リストで結合を選択します。

データ探索とタグ

Graphite では、すべてがタグです。

データを探索するときは、以前に選択したタグを使用して残りの結果セットをフィルタリングします。データを選択するには、 seriesByTag 関数を使用します。この関数は、タグ式 (=!==~!=~) を使用して時系列をフィルタリングします。

タグを選択すると、Grafana クエリビルダーが自動的にこれを実行します。

注記

ヒント: 正規表現の検索は、高基数タグでは遅くなる可能性があるため、最初に他のタグを使用して範囲を縮小してみてください。特定の名前または名前空間から始めると、結果を減らすことができます。

テンプレート変数

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

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

タグ値を使用して変数を作成するには、Grafana 関数 tagstag_values を使用します。

クエリ 説明
tags() すべてのタグを返します。
tags(server=~backend\*) フィルター式に一致する連続したタグのみを返します。
tag_values(server) 指定されたタグのタグ値を返します。
tag_values(server, server=~backend\*) これらの式に一致する一連の指定されたタグで発生するフィルター処理されたタグ値を返します。
tag_values(server, server=~backend\*, app=~${apps:regex}) 複数のフィルター式と式には、他の変数を含めることができます。

詳細については、「タグのオートコンプリート API に関する Graphite ドキュメント」を参照してください。

クエリ変数

クエリフィールドで指定するクエリは、メトリクス検索タイプのクエリである必要があります。例えば、prod.servers.* などのクエリは、ワイルドカード位置に存在する可能性のあるすべての値で変数を埋めます。

定義で他の変数を使用するネストされた変数を作成することもできます。例えば、apps.$app.servers.* はクエリ定義で $app 変数を使用します。

__searchFilter を使用してクエリ変数の結果をフィルタリングする

クエリフィールドで __searchFilter を使用すると、ドロップダウン選択ボックスに入力した内容に基づいてクエリ結果がフィルタリングされます。何も入力しない場合、__searchFilter のデフォルト値は * で、正規表現の一部として使用する場合は `` です。

次の例は、__searchFilter をクエリフィールドの一部として使用してユーザーがドロップダウン選択ボックスにテキストを入力するときに server を検索できるようにします。

クエリ

apps.$app.servers.$__searchFilter

TagValues

tag_values(server, server=~${__searchFilter:regex})

変数の使用

変数は、メトリクスノードパスで、または関数のパラメータとして使用できます。

2 つの構文があります。

  • $<varname> 例: apps.frontend.$server.requests.count

  • ${varname} 例: apps.frontend.${server}.requests.count

なぜ 2 つの方法があるのですか? 最初の構文は読み書きが容易ですが、単語の途中で変数を使用することは許可されません。my.server${serverNumber}.count などの式で 2 番目の構文を使用します。

タグクエリでの変数の使用

タグクエリの複数値変数は、変数 {var:regex} に対して Grafana 5.0 で導入された高度なフォーマット構文を使用します。タグ以外のクエリでは、複数値変数のデフォルトの glob 形式が使用されます。

次のコード例は、正規表現フォーマットで Equal Tilde 演算子 =~ を使用するタグ式を示しています。

server=~${servers:regex}

詳細については、「高度な変数フォーマットオプション」を参照してください。

‏注釈

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

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

  • 通常のメトリクスクエリ。この方法では、Graphite クエリテキストボックスを使用します。

  • Graphite イベントクエリ。この方法では、Graphite event tags テキストボックスを使用し、タグまたはワイルドカード文字を指定します (空のままにしておいても機能します)。