Splunk Dashboard Studioのソースコードについて改めて整理してみた

# はじめに
Dashboard Studioは、Splunkの強力な可視化ツールです。Dashboard Studioは2021年にリリースされましたが、Splunk Ideasなどを通じてユーザーの要望を取り入れ、今なお新しい機能が次々と追加されています。
日々追加される新機能を理解するためにも、Dashboard Studioの裏側で使われているソースコード（JSON形式）の記述内容を改めて確認してみました。この記事では、そのポイントをわかりやすく解説していきます。
（ソースコードを理解することで細かな調整ができると思います、たぶん、、、）

::: note warn
この記事はsplunk version 9.3.2408時点の情報です
:::

# ソースコード (JSON形式) の構造
Dashboard studioはクリック操作でグラフ、文字、画像を追加することができますが、その裏ではjson形式のソースコードで記述されています。
ソースコードはツールバーのこのアイコンをクリックすると確認できます。

![Screenshot 2024-12-23 at 23.45.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/024049e0-11e7-7b25-1ece-37bd63ea92ca.png)


## 全体構造
ソースコードは主にinputs、defaults、visualizations、dataSources、layout、applicationPropertiesのセクションに分かれて記述されています。
これらのセクションは、それぞれ特定の役割を持ち、Dashboard Studioの構成を支えています。（以下の画像は、各セクションを縮小表示したものです。）

![Screenshot 2024-12-23 at 23.27.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/cbafa850-be0e-66c7-0b16-07ad2b8c9a5a.png)

### inputs
Dashboardの表示を変える「入力」オプションの一覧が記述されます。
入力は、時間範囲、ドロップダウンリスト（単一選択）、複数選択リスト、テキスト入力、数値入力などを選択することができます。

![Screenshot 2024-12-24 at 0.02.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/5b70ab62-e50d-1abc-6419-6dd5f5a2a794.png)

これらの入力はtokenに格納され、ダッシュボードの各パネルの表示を変更させるため、inputsセクションにはdefaultValueとtoken名が記載されています。
![Screenshot 2024-12-24 at 0.06.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/72a0f253-eb65-3c1e-3990-8fb4563c1307.png)


### defaults
全てのデータソースや可視化表現（円グラフ、棒グラフなど）に共通するデフォルト設定を記載できます。その他にも、tokenをあらかじめ設定しておくことも可能です。この設定は優先順位が高いので細かなdefault設定をしたい場合、各セクション（inputsやvisualizationなど）で設定しましょう。

![Screenshot 2024-12-24 at 0.22.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/d954ccb9-6f8e-6188-e0b4-78c3799325a9.png)


### visualizations 
各パネルの可視化情報が記載されています。サーチ結果が可視化されている場合、各可視化ID（viz_*******）の中にdatasourcesの情報が記載され紐づけられています。

![Screenshot 2024-12-24 at 0.30.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/b737c3d0-1d9a-3490-a5ba-c8547f918996.png)
visualizationsで使えるoptionの一覧は[こちら](https://docs.splunk.com/Documentation/Splunk/9.4.0/DashStudio/objOptRef)

### dataSources
ダッシュボードで使用されているサーチ一覧が記載されています。
各サーチにはサーチID（ds_*****）が振られています。このサーチIDはvisualizationsのdataSourcesで記載されていた内容と紐づけられています。

ここでは表示しないサーチも記載できるので、検索結果に従ってtokenを操作したい場合、そのサーチを記載することも可能です。Classic dashboardに慣れている方は、eval tokenのような使い方をイメージしてください。参考になるcommunity投稿は[こちら](https://community.splunk.com/t5/Dashboards-Visualizations/Dashboard-Studio-how-to-use-a-token-to-set-a-second-value/m-p/673858)。

![Screenshot 2024-12-24 at 0.45.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/b81bd428-a09c-cfe5-b5d7-6a21a696d219.png)


### layout
ダッシュボードのキャンバスに可視化したパネルをどうやって並べるかが記載されています。
version 9.3.2408から複数のダッシュボードをtabで管理することができるようになったためキャンバスごとの記述となっています。

![Screenshot 2024-12-24 at 1.15.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/985e1ddf-78c3-1ced-75d1-73ee6c364917.png)

tabセクションにそれぞれのtab IDが管理されています。

![Screenshot 2024-12-24 at 1.21.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/c5661a13-be4a-7ee7-91e0-b77db0acc9ef.png)

tabごとでそれぞれのパネルがどのような配置になるか設定されています。

![Screenshot 2024-12-24 at 1.05.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/02132ee6-8ce9-5501-3711-f4a5b048eff7.png)


### applicationProperties
version 9.3.2408から追加された機能です。ダッシュボード表示の画面でナビゲーションメニュー（サーチ、アラートなどの表示）を非表示にすることができるようになりました。

![Screenshot 2024-12-24 at 1.29.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/0d361512-d805-5c6c-378a-ff344c0f6469.png)

設定は、表示オプションからON/OFFすることができます。
![Screenshot 2024-12-24 at 1.30.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/9d7c7ef9-b327-5e8b-dc63-6f247c0e40e5.png)

ナビゲーションを折り畳むをONにするとソースコードに下記が記載されました。
![Screenshot 2024-12-24 at 1.33.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629253/3094b3a4-e192-067b-a3cb-3dd088d64cc5.png)


今後、こういった細かな役立ち機能が増えていくと嬉しいですね！

# おわりに
Dashboard studioは新機能がどんどん追加されています。私自身、Classic dashboardばかり使っていたのですが、便利な機能も増えているのでDashboard studioへどんどん移行していきたいと思います！


# 参考情報
[Dashboard studioのブログ](https://www.splunk.com/en_us/blog/author/elizabethl.html)