About Yohoushi †
Yohoushi は GrowthForecast と連携し動作するグラフツールです。GrowthForecastをバックエンドとして利用し、Yohoushi は統合グラフビューワとして機能します。
Yohoushi では GrowthForecast では実現できなかった様々なビューでグラフを確認できます。例えば、グラフを大きくしたり、from/toの日時指定でグラフを確認したり、サムネイルサイズでたくさんあるグラフを一覧で見たりすることできます。またGrowthForecastではグラフ階層が3階層固定でしたがYohoushiではこの制約を無くすことも可能です。
また複数のGrowthForecastを集約してユーザに見せることが可能です。GrowthForecastサーバの台数を増やすことでシステムを容易にスケールできるようになります。また、たとえば各拠点に散らばっていたGrowthForecastサーバを1つのビューで見せることも可能です。
+----------+ +---+
| | +--> |GF1| <--- post a number
Ops ---> | Yohoushi | <----------+ +---+
| | | +---+
+----------+ +--> |GF2| <--- post a number
+---+
また、既存のGrowthForecastのシステムに変更を加えることなくYohoushiをお試しできます。この場合は、たとえばcronなどで動作しているGrowthForecastへ値を登録するスクリプトを変更する必要はありません。動作イメージを短時間で把握するにはこちらのスクリーンキャストがお勧めです。
Installation †
(1) Requirements †
あらかじめ以下のソフトウェアをインストールしておいてください。
- Ruby (>=2.0.0)
- MySQL or Sqlite3 (>=3.6.16)
- GrowthForecast (>=0.62)
(2) Install Yohoushi †
yohoushi/releases からアーカイブファイルをダウンロード、展開し、youhoushi ディレクトリで以下のコマンドを実行してください。 数分かかることがあります。
$ bin/bundle
(3) Configure Application †
GrowthForecast サーバのURLを config/application.yml に登録してください。 デフォルトでは localhost:5125 の GrowthForecast サーバに接続します。
# config/application.yml
multiforecast:
mapping:
'': 'http://localhost:5125'
複数の GrowthForecast サーバへ分散させる場合は以下のようにマッピングルールを記述します。
# config/application.yml
multiforecast:
mapping:
'app1/': 'http://host.to.growthforecast1:5125'
'app2/': 'http://host.to.growthforecast2:5125'
この例では、名前が app1/ から始まるグラフは host.to.growthforecast1:5125 に、app2/ から始まるグラフは host.to.growthforecast2:5125 に分散されます。
(4) Configure Database †
config/database.yml にMySQLの設定を記述し、次のコマンドを実行してください。
$ bin/rake db:create db:migrate
デフォルトでは localhost:3306 の MySQL に root ユーザ、パスワードなしで接続し、yohoushi という名前のデータベースを作成します。
# config/database.yml
adapter: mysql2
database: yohoushi
pool: 5
timeout: 5000
username: root
password:
host: localhost
port: 3306
Support SQLite †
MySQLではなくSQLiteを使いたい場合は以下を実行してください。
Gemfileを修正してください。
# Gemfile
gem 'sqlite3' # 行頭の#を削除する
# gem 'mysql2' # コメントアウトする
次のコマンドを実行してください。
$ cp config/database-sqlite.yml config/database.yml
$ bin/bundle
$ bin/rake db:create db:migrate
(5) Run †
以下のコマンドで Yohoushi が起動します。
$ bin/yohoushi
ウェブブラウザでhttp://localhost:4804
にアクセスしてみてください!Yohoushiの画面を確認できます。
デーモン化するには -d
オプションを付けて起動してください。
$ bin/yohoushi -d
デーモン化したYohoushiを停止するには以下を実行してください。
$ bin/yohoushi stop
(6) Check †
Yohoushi の動作確認をするために GrowthForecast の URLに対してPOST リクエストを送り、グラフを作成してみましょう。この例では GrowthForecast が localhost:5125 で起動しているものとします。
$ curl -d 'number=10' http://localhost:5125/api/service1/section1/graph1
Yohoushi worker の GrowthForecast との同期処理が走って(最大1分待ちます) Yohoushi にグラフが表示されれば成功です。
For more information †
Yohoushiに4階層以上のグラフを登録するには Yohoushi API か multiforecast-client を使ってデータをPOSTしてください。
Yohoushi API には次のようにデータを POST します。mapping ルールに従って、適切な GrowthForecast に分散してくれます。
$ curl -d 'number=10' http://yohoushi:4804/api/graphs/sec1/sec2/sec3/graph1
ただし、Yohoushi API を多用すると Yohoushi がボトルネックになる可能性があるため、mapping ルールに従って直接 GrowthForecast にデータを POST してくれる multiforecast-client の使用を推奨します。