たごもりすメモ

コードとかその他の話とか。

Focuslight v0.1.0

グラフツールをひとつ作り、ひととおり動くらしいところまでいったので、とりあえず v0.1.0 としました。Focuslight と名付けています。

https://github.com/tagomoris/focuslight

これは何かというと、このblogでも何度も紹介している GrowthForecast のRuby移植版です。同じ機能というだけでなく、内部データの互換性がありますし、HTTP APIの互換性も可能な限り保っています。ビューまわりは丸パクりしてます。

既に日本国内ではGrowthForecastは割と知られているだろう、という前提で説明をすると、これは「GrowthForecastの話は聞くが、でもPerlツールはなー、ちょっとなー」というわがままさんのために作られたものであり、それ以上でもそれ以下でもありません。自分はおそらく今後もGrowthForecastを使うでしょう。信仰上の理由とかその他の神秘的な理由によりGrowthForecastを使えない人はぜひFocuslightを試してみてください。

またGrowthForecastのデータベース(sqlite3)およびRRDToolのデータをそのままコピーして使えます。Perlツールの運用を何らかの深遠な理由により続けられないという人も試してみてはいかがでしょうか。

GrowthForecastは本当にすばらしいツールで、各種メトリクスを視覚化することだけを最優先に置いたツールです。そのためにこれまでは必要とされていたあらゆる面倒臭さを取り除くための工夫が行われています。
なのでみんな使えばいいと思うんですが、上述のように*1Perlで書かれているから、というだけの理由で忌避されることも少なくないようです。それでこのツールのすばらしい特性が広まらないのはあまりにももったいないなあ、という理由でFocuslightは書かれました。

このツールを試し、使い続けたい、そう思った方がいるなら、ぜひ開発を引き継いで欲しいと思っています。自分もできる限りのことをやるつもりですが、先述の通り自分が本番で使うことは当面無いと思います。そして、ツールというものは使う人が開発するのがおそらく最も正しいと思っているからです。

TODO

やるべきことが大量にあって、まあFocuslightのコード自体のTODOはREADMEを見てほしいんですが、そもそもPerlのコードから超ベタに書き写したので、あまりRubyらしいコードになってません。
また内部データをclassにしたところとハッシュのまま扱っているところが混在していて*2、そのあたりも整理しないとなあと思っているんですが、何しろテストが皆無に近い状態です。あああああ。だ、誰かなんとか……。

また外部ツールとの連携については fluent-plugin-growthforecast はそのまま使えます。
複合グラフの作成まわりのパラメータの渡しかたがごく僅かに変わっているため*3、拙作 growthforecast.gem による複合グラフ作成などは現状動作しないと思います。あとで直したい。忘れなければ。
Yohoushi がfocuslightをバックエンドにできるかどうかは知りません。きっと @sonots さんが試すかどうにかする。

*1:特に日本国外では

*2:これはPerlのコードの処理をそのまま持っていくのに必要だったんだけど、今思うと失敗だった

*3:値のリストをform postするときに param[]= って何なのRackさん……