GrafanaのTime seriesで棒グラフと折れ線グラフを同じパネルに表示する

2022.11.15

こんにちは。CX事業本部Delivery部のakkyです。

Grafanaでは、複数のグラフを同じパネルに同時に表示することができます。同じ種類(たとえば棒グラフ)を表示するにはデータソースを並べるだけで良く、何も考える必要がないのですが、折れ線グラフと棒グラフを同時に表示する方法は少々わかりづらいかもしれません。

今回は、Time seriesパネルで1枚のパネルに折れ線グラフと棒グラフを同時に表示する方法をご紹介します。

(Time seriesとBar chartなど異なるパネルを同時に表示することは、現在のバージョンのAmazon Managed Grafanaではできません。)

デフォルトの状態

TestData DBで2つのグラフを用意します。このため、以下の画像中でグラフの形は異なります。

今回の記事の主題とは少々異なりますが、「--Mixed--」データソースを使うと、異なる複数のデータソース(Amazon TimestreamとMySQLなど)を同時に使うことができます。

グラフの表示順について

折れ線グラフと棒グラフを同時に表示する場合、グラフの描画順が重要です。

折れ線グラフ(Line)のままGraph styles→Fill opacityを100にするとわかりやすいのですが、Time seriesパネルではグラフをデータソースの並び順で上から下に描画します。 つまり、データソースを追加していくとデフォルトではクエリが上からA, B, C・・・と並んでいきますが、このとき描画順もA, B, Cの順となります。

A, Bと並んでいる状態が以下のスクリーンショットです。

一方、B, Aと並べると、以下のようにBがAの上に描画され、Aは隠れてしまいます。(恐らくAを描画した後にBを描画するため)

折れ線グラフと棒グラフを同時に表示したい場合は、折れ線グラフを棒グラフの前に描画したいはずです。折れ線グラフのデータソースを、棒グラフのデータソースの下に配置するようにしてください。

並び順は、データソースを選ぶバーの一番右にある6つの小さな点⣶をドラッグアンドドロップすると移動できます。(名前でソートされるわけではありません)

今回は棒グラフをA-series、折れ線グラフをB-seriesとします。

Overrides機能

棒グラフと折れ線グラフを同時に表示するには、グラフの設定をデータソースごとに変更できるOverrides機能を使います。 つまり、Graph styles→StyleをLinesとBarsにそれぞれ変更すればいいわけです。

Overridesタブに移動し、Add overridesをクリックすると、データソースを選択する方法を選ばされますので、「Fields with name」を選択します。 次に、まずは棒グラフにするA-seriesを選択します。

Graph Styles→StyleをBarsにし、見やすいようにFill opacity(不透明度)とLine witdh(外形線の幅)を調節します。お好みで色も変えます。

次に、折れ線グラフにするB-seriesのOverridesを追加し、同様にLine widthを調節します。(Fill opacityはデフォルトで0になっていると思います)

完成系

以上の設定で、折れ線グラフと棒グラフが同時に表示できるようになりました。

参考ページ