Grafana Canvasパネルで実現する動的レイアウト設計の基礎

Grafana Canvasパネルで実現する動的レイアウト設計の基礎

Grafana Canvasパネルのレイアウト設計の基礎を解説。ConstraintsとPositionプロパティの使い方を理解し、パネルサイズ変更に対応する動的なオブジェクト配置を実現するテクニックと実践例を紹介します。

GrafanaのCanvasパネルでは、さまざまな図形を配置してグラフィカルな表現が可能です。
チュートリアルにあるように、風力発電での発電量の表示とともにプロペラを回すといったこともできます。

この図形を配置する上で理解が必要なプロパティが、LayoutのConstraints(制約)とPosition(位置)です。
Constraintsを直訳すると「制限」ですが、Positionプロパティと組み合わせて、オブジェクトの位置や大きさが変わるときの動きを制限する設定になります。

Constraints

パネルの大きさが変わるときに、オブジェクトの位置の調整方法を指定する項目です。
設定できる内容は次のとおりです。

X軸

  • Left
  • Right
  • Left & Right
  • Center
  • Scale

Y軸

  • Top
  • Bottom
  • Top & Bottom
  • Center
  • Scale

Constraintsのデフォルトは、X: Left / Y: Top です。
X軸・Y軸とも「Scale」とそれ以外の「位置指定」で処理の仕方が分かれています。

まず位置指定では、指定したキーワードの方向に固定されます。例えばTopであれば、パネルの高さが変わっても、パネルの上辺とオブジェクトの上辺の距離は固定されて動きません。

Topを指定するとパネル上辺とオブジェクトの上辺の距離が固定される

Scaleはその名の通り、パネルの表示領域に合わせてオブジェクトの位置が変化します。

Scaleを指定すると表示領域に合わせて位置が変化する

Position

Positionでは、オブジェクトの位置や大きさを制御します。
Constraintsによって内容が変わりますが、デフォルトのLeft/Topの組み合わせであれば、top/left/width/height/rotationの順番で並びます。

Constraintsごとに、どのような設定ができるか見ていきます。

ConstraintsがLeft / Right / Top / Bottom

Constraintsの指定が一方向であれば、同じ設定がPositionに表示され、合わせてオブジェクトの幅(width)と高さ(height)を設定できます。
例えば、X軸の制限がLeftであればPositionにもleft、Y軸の制限がTopであればPositionにもtopが表示されます。

LeftとTopを指定した状態のパネル

入力された数値は、その方向からの絶対距離を表します。
例えば「top: 20」であれば、フレームの上辺からオブジェクトの上辺まで20pxの距離に固定するという設定で、フレームの大きさが変わっても20pxの距離が維持されます。
TopとLeftだと固定されている感がないのですが、RightとBottomを設定するとわかりやすいと思います。

RightとBottomを指定した状態の動作

ConstrainsがLeft&RightやTop&Bottom

Positionにはleftとright / topとbottomが表示され、一方向での指定ができたwidthやheightの表示はなくなります。

Left&RightとTop&Bottomを指定した状態のパネル

指定された方向のフレームの辺から、オブジェクトの辺までが固定されるのは一方向の指定と同じです。

しかし両方向が固定されるため、フレームの大きさに応じてオブジェクトの大きさも変わります。

Left&RightとTop&Bottomを指定した状態の動作

ConstrainsがCenter

Positionにはleft/topとwidth/heightが表示されます。

CenterとCenterを指定した状態のパネル

Centerは基準点が変わり、フレームのセンターが原点となり、そこからオブジェクトのセンターまでの絶対距離を示します。
中央から4分割し左上がプラス位置、右下がマイナス位置になります。

CenterとCenterを指定した場合の数値の考え方

width / heightはそのままの内容で、オブジェクトの幅 / 高さを表します。

ConstraintsがScale

この場合のPositionは、Left&RightやTop&Bottomと同じ項目になります。

ScaleとScaleを指定した状態

ただし数値が他の設定と異なり、相対距離(%)として扱われます。
Top 20 とした場合、フレームの上辺からオブジェクトの上辺の距離はフレームの高さの20%の位置に配置されます。

ScaleとScaleを指定した場合の動作

設定例

これまでの解説をもとに、設定例を紹介します。

ヘッダーみたいに扱いたい

  • X: Left&Right
  • Y: Top

grafana-constraints-example1-1.png

左右に固定することで、幅が変化しても常に幅いっぱいに広がります。
高さも固定しているため、フレームの幅が変化しても高さは変わりません。

常に右下へ配置したい

  • X: Right
  • Y: Bottom

grafana-constraints-example2-1.png

width/heightは適切な大きさを設定してください。

横方向で伸縮しても重ならないようにしたい

  • X: Scale
  • Y: Top

grafana-constraints-example3-1.png

オブジェクトの幅が拡大縮小するので、重ならないようになります。
ただし中に入っている文字列の大きさは変わらないため、最小幅を考慮しながら文字サイズを設定してください。

終わりに

Canvasパネルのレイアウト機能は、動的なダッシュボードに対応するための設定です。ConstraintsとPositionプロパティの適切な組み合わせにより、ダッシュボードのサイズ変更やレスポンシブ表示に対しても一貫性のある視覚表現が可能です。

本記事で解説したように、Constraintsの設定によって固定位置や相対位置、スケーリングなどさまざまな配置を実現できます。これらを活用して、情報価値の高いビジュアライゼーションを構築してみてください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.