1クール続けるブログ読者になる1クール続けるブログとりあえず1クール続けるソフトウェアエンジニアの備忘録この広告は、90日以上更新していないブログに表示しています。ダッシュボードを作成してみる要約Grafanaはすごくパワフルな可視化ツールですよね。kuberntesやECSのクラスタ1つごとにダッシュボードを作成することも多いかと思います。なると生のjsonでコード管理するのもかなり厳しくなってきます。grafonnetを利用すれば、コード管理が楽になりそうという話です。参考にしたのはこちらgrafana.comjsonnetとはjsonnetの存在自体はArgoCDがサポートしていたり、Spinnakerのパイプラインを管理するのに用いられているから知ってはいました。実際には使ったことはなく今回初めて勉強します。jsonnetはjsonのsupersetになっています。実装としてはC++とGoの2種類があるようですが、コミュニティは最終的にはGoにすべて移行させたいようなので、Goの実装を利用するのが良いかと思います(参考)。C++での実装の方が少しパフォーマンスが良いらしいのですが、おそらく殆どのjsonnetの利用用途から見ると、その差はそこまで重要ではないはずです。標準的なユースケースについては公式サイトのReferenceにて言及されています。設定ファイルを独立して作成するとたくさんの重複が発生し、保守が難しくなる。それをプログマティックに宣言できるようにしてくれるよとあります。services.構文はJsonnet公式のチュートリアルが分かりやすいです。特徴としては下記かなあとは思います。レベル感の合っていない抜き出し方ですが、自分としてはこの辺がイメージ掴むのに良かったです。Visiblityという概念があり、例えば::を利用したフィールド宣言の場合に最終的なJSONで出力されないgrafonnetとはgrafana.github.iojsonnet用のライブラリが公式から提供されています。ダッシュボードの作成を用意された便利な関数で行うことができます。これによって大幅にコード行数を少なくすることが出来ます。cloneする方法とjsonnet-bundlerを利用する方法があるそうです。後者の方法でgrafonnetを利用したいと思います。jsonnet-bundlerのインストール方法は下記のようになります。/usr/local/bin/jbここからgrafonnetを利用できるようにするためには下記のようになる。initで依存するパッケージを定義するjsonnetfile.jsonが作成されます。jsonnetfile.jsonの設定が追記され、jsonnetfile.lock.jsonが作成されるjsonnnetのファイル側からは以下のように定義することで関数などを利用することが可能です。ダッシュボードを作成してみるgithub.com共通するファイルは下記のように書いてあげる。コメントはgrafonnetのコードを参考にしたが、もうちょっとJSDocよりに書いたほうが型とかが分かりやすかった気がする。)かなり良さげなのですが、既存のダッシュボードを移行しようと思うとかなり労力が必要そうですよね。新しくダッシュボードを作成するときにはぜひ取り入れてみたい方法だとは思います。3はてなブログをはじめよう!jrywm121さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。