ダッシュボードのYAMLプロパティ

ダッシュボードにはいくつかの構成要素があります:

  • テンプレート変数。
  • パネルで構成されるパネルグループ。
  • 1つまたは複数のメトリクスをサポートするパネル。

以下の表は、予想されるプロパティの詳細です。

ダッシュボード(トップレベル)のプロパティ

プロパティ タイプ 必須 説明
dashboard はい ダッシュボードの見出し。 ダッシュボードはファイルごとに1つだけ定義する必要があります。
panel_groups アレイ はい ダッシュボードにあるべきパネルグループ。
templating ハッシュ いいえ テンプレート関連のオプションを追加できるトップレベルのキーです。
links アレイ いいえ ダッシュボードに表示するリンクを追加します。

テンプレート (templating) プロパティ

プロパティ タイプ 必須 説明
variables ハッシュ はい 変数はここで定義できます。

テンプレートに関するドキュメントを読んでください。

プロパティ タイプ 必須 説明
url はい リンクのアドレス。
title いいえ リンクの表示タイトル。
type いいえ リンクのタイプを指定します:grafana

リンクのドキュメントをお読みください。

パネルグループ (panel_groups) のプロパティ

プロパティ タイプ 必須 説明
group 必須 パネルグループに向かいます。
priority 番号 任意、デフォルトはファイル内の順序 ダッシュボードに表示される順番。 数字が大きいほど優先順位が高く、ページ上で上位に表示されます。 数字は連続している必要はありません。
panels アレイ 必須 パネルグループに属するパネル。

パネルグループ内のパネルは、1行につき2つのパネルで構成される行にレイアウトされます。 このルールの例外は、行に1つのパネルがある場合です。

パネル (panels) のプロパティ

プロパティ タイプ 必須 説明
type 列挙 いいえ、デフォルトはarea-chart area-chart,line-chart またはanomaly-chart
title はい パネルに向かいます。
y_label いいえ。 パネルのY軸ラベル。
y_axis いいえ パネルのY軸構成。
max_value 番号 いいえ パーセンタイルに基づく結果の算出に使用される分母値
weight 番号 いいえ、デフォルトはファイルの順序 グループ内で表示される順番。 番号が小さいほど優先順位が高く、ページ上で上位に表示されます。 番号は連続している必要はありません。
metrics アレイ はい パネルに表示するメトリクス。typearea-chart またはline-chartの場合はいくつでも表示できますが、typeanomaly-chartの場合は 3 つまでしか表示できません。
links アレイ いいえ Chartのコンテキストメニューに表示するリンクを追加します。

軸 (panels[].y_axis) プロパティ

プロパティ タイプ 必須 説明  
name いいえ。 パネルの Y 軸ラベル。設定されている場合はy_label を置き換えます。  
format いいえ、デフォルトはengineering 使用されている単位形式。単位の完全なリストを参照してください。  
precision 番号 いいえ、デフォルトは2 数値を表示する小数点以下の桁数。  

メトリクス (metrics) プロパティ

プロパティ タイプ 必須 説明
id いいえ ダッシュボードのメトリクスとデータベース・レコードの関連付けに使用されます。 ダッシュボード構成ファイル間で一意である必要があります。アラートに必要です(サポートはまだ有効になっていません。関連するイシューを参照してください)。
unit はい クエリの返りデータの単位を定義します。
label いいえ。 クエリの凡例ラベルを定義します。 パネルのメトリクス内で一意である必要があります。 補間変数として時系列ラベルを含むことができます。
query query_range が定義されていない場合は yes Chart/panelに入力するために使用するPrometheusクエリを定義します。定義されている場合、Prometheus APIの query エンドポイントが利用されます。
query_range query が定義されていない場合は yes Chart/panelに入力するために使用するPrometheusクエリを定義します。定義されている場合、Prometheus APIの query_range エンドポイントが利用されます。
step 番号 定義されていない場合、値は計算されます。 クエリの分解能ステップ幅を浮動小数点数秒で定義します。 同じパネル上のメトリクスは、同じstep 値を使用する必要があります。

ダイナミックラベル

動的ラベルは、Prometheusクエリから複数の時系列が返される場合に便利です。

静的ラベルが使用され、クエリが複数の時系列を返す場合、すべての凡例項目は同じラベルになり、各時系列を識別することが難しくなります:

metrics:
  - id: my_metric_id
    query_range: 'http_requests_total'
    label: "Time Series"
    unit: "count"

そうすると、こんな伝説が生まれるかもしれません:

repeated legend label chart

ラベルをより明示的にするには、時系列ラベルを反映する変数を使用するのがよい方法です。 この変数は、凡例がレンダリングされるときに、時系列ラベルの値に置き換えられます:

metrics:
  - id: my_metric_id
    query_range: 'http_requests_total'
    label: "Instance: {{instance}}, method: {{method}}"
    unit: "count"

レンダリングされた凡例は次のようになります:

legend with label variables

また、1つの時系列ラベルのみを使用するダイナミック・ダッシュボード・ラベル用の省略値もあります:

metrics:
  - id: my_metric_id
    query_range: 'http_requests_total'
    label: "Method"
    unit: "count"

これは、label の値を小文字にし、さらにスペースで区切られた単語がある場合は、そのスペースをアンダースコア(_)に置き換えることで動作します。変換された値は、Prometheusクエリによって返された時系列のラベルと照合されます。変換された値と等しい時系列のラベルが見つかった場合は、そのラベル値が使用され、このように凡例に表示されます:

legend with label shorthand variable

ダッシュボードのYAML構文検証

GitLab 13.1で導入されました。

ダッシュボードの定義に有効な YAML 構文が含まれていることを確認します:

  1. doc-text}リポジトリ> ファイルに移動します。
  2. リポジトリ内のダッシュボードファイルに移動します。
  3. ファイル内容の上に表示されている、ファイルに関する情報ペインをレビューします。

有効な構文を持つファイルはMetrics Dashboard YAML定義が有効であることを表示し、無効な構文を持つファイルはMetrics Dashboard YAML定義が無効であることを表示します。

Metrics Dashboard_YAML_syntax_validation

メトリクス・ダッシュボードのYAML定義が無効な場合、以下のメッセージのうち少なくとも1つが表示されます:

  1. dashboard: can't be blank もっと詳しく
  2. panel_groups: should be an array of panel_groups objects もっと詳しく
  3. group: can't be blank もっと詳しく
  4. panels: should be an array of panels objects もっと詳しく
  5. title: can't be blank もっと詳しく
  6. metrics: should be an array of metrics objects もっと詳しく
  7. query: can't be blank もっと詳しく
  8. query_range: can't be blank もっと詳しく
  9. unit: can't be blank もっと詳しく
  10. YAML syntax: The parsed YAML is too big

    これはYAMLファイルが1MBを超える場合に表示されます。

  11. YAML syntax: Invalid configuration format

    これは YAML ファイルが空であるか、有効な YAML を含んでいない場合に表示されます。

メトリクスダッシュボードのYAML定義検証情報は、GraphQL APIフィールドとしても利用可能です。