Amazon Managed Grafanaのダッシュボードを共有してみた

Amazon Managed Grafanaのダッシュボードを共有してみた

Clock Icon2024.07.18

はじめに

Amazon Managed Grafana(以下AMG)のダッシュボードを他の人に共有する機能がいくつかあったのでやってみました。
私が特に気になったのは、共有されたダッシュボードがリアルタイムで更新されるのか?という点です。

先にまとめ

  • リアルタイムに更新を確認したい場合はダッシュボードのリンクからログインする必要がある
  • スクリーンショットみたいなイメージで一時的な共有をしたい場合はログインが必要ないSnapshotでも共有できる
  • AMGではEmbedのinframe埋め込みによる共有はできない

やってみた

リンク作成

まずはダッシュボードへのリンクを作成する方法です。
こちらは発行したリンクにアクセスすることでID, PWなどで認証してログインすることができます。

例えば複数人で同じダッシュボードを編集する場合などにURLをコピーして渡すことで、わざわざAWSにログインしてAMGのコンソール画面から遷移する手間が省けます。

ではやってみます。
AMGのダッシュボードを開いた後、画面右上の「Share」をクリックします。
image1

AMGのバージョンが10.4未満の場合はShareボタンがないので画面左上の共有ボタンをクリックします。
image7

次にLinkタブのCopyをクリックします。
image2

このURLへアクセスすることで特定のダッシュボードに直接ログインすることができます。
共有される側がAMGのユーザーを持っている場合はこの方法で簡単に共有ができます。

リンクを共有する方法は、通常のユーザーログインと変わらないため、リアルタイムでダッシュボードの変化をモニタリングすることができます。

Snapshot

次にSnapshot機能です。
Snapshotはパブリックにダッシュボードを公開するURLを発行します。
つまり、公開したダッシュボードはAMGのユーザーを持っていなくても閲覧が可能です。

イメージはスクリーンショットを撮って共有するようなイメージです。

ではやってみましょう。
先ほどと同じようにダッシュボードの「Share」をクリックします。
Snapshotタブを選択します。
image3

Expireは公開の期限を選択します。
画像ではNeverとしているので無期限で設定しています。
時間を設定することで、公開の期限を設定することができます。

Timeoutはパネルの表示時間のタイムアウト値です。
パネルの表示に時間がかかることでパネルの読み込みに失敗する場合、
こちらのTimeoutの値を大きくするか、パネルの数を減らすなどの対策が必要です。

Grafana LabsのCommunityでもSnapshotのダッシュボード表示がうまくいかない時、Timeoutの値を大きくする回避策が紹介されています。
https://community.grafana.com/t/snapshot-shows-not-all-data-datasource-ms-sql-server/62486

少し話がそれましたがSnapshotのURLを発行しましょう。
Local SnapshotをクリックしてURLを発行します。
image4

発行されたURLからAMGのユーザーを持っていないユーザーでもダッシュボードを閲覧することができます。

Snapshotで実験してみた

私はここで、あれ?SnapshotのダッシュボードってもしかしてAMGのダッシュボードと同期して最新の値を取得してたりするのかな?と思ったので試してみました。

まずは以下を用意します。
左:ログインしたダッシュボード
右:Snapshotのダッシュボード
image5

この状態で新しいデータをAMGのデータソースに挿入するとどうなるでしょうか?
やってみます。
image6

結果は、左のログインしたダッシュボードのみが更新されました。
つまりSnapshotはあくまでも「その時の」ダッシュボードを取得したもので、常にデータが同期されているというものではないことが分かりました。

SnapshotのURLから表示したダッシュボードにも更新ボタンがあり、もしや?と思いましたが機能しないので押しても意味はありません。

パネルの共有

上記ではダッシュボードの共有を行いましたが、パネル毎に共有することもできます。
パネルの右上のメニュー一覧より、Shareをクリックします。
image8

あとはダッシュボードの時と同じようにリンク、またはSnapshotの共有ができます。

embed

バージョン10.4未満のAMGではパネルの共有方法にembedというタブがあります。
こちらはHTMLにパネルを埋め込むためのiframeが発行されます。
image10

ただし、私が試してみたところHTMLへの埋め込みはできましたが、AMGへの認証に失敗する旨のエラーによりパネルの表示ができませんでした。

githubのissueでも私と同様にembedが機能しないというディスカッションが行われていました。
https://github.com/aws/amazon-managed-grafana-roadmap/issues/10

内容を要約するとAMGではembedは機能しないようです。
OSSのGrafanaでは設定ファイルの内容を変更することで利用することができるようです。
AMGはマネージドでGrafanaを利用できるため、設定ファイルの内容をいじることができません。
そのため、embedが機能しないのだと思います。

また、こちらのembed機能はAMGのバージョンを10.4(執筆時の最新)にバージョンアップすると表示されなくなります。

まとめ

AMGのダッシュボードを共有して複数人でモニタリングする。という場面はよくあることだと思います。
共有機能を使えばいちいち初期画面からダッシュボードを探しに行かなくてよいので便利ですね。
また、その時点での最新を共有したいというケースではSnapshotで簡単に共有できるので、こちらも用途に合わせて使い分けてみてください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.