Yohoushi

33
Yohoushi loves GrowthForecast SEO Naotoshi (@sonots) 2013/07/25

Transcript of Yohoushi

Page 1: Yohoushi

Yohoushi loves GrowthForecast

SEO Naotoshi (@sonots) 2013/07/25

Page 2: Yohoushi

自己紹介•SEO Naotoshi•@sonots (そのっつ)•所属 :DeNA•Ops のための Dev 始めました

Page 3: Yohoushi

fluentd.org

Page 4: Yohoushi

今日のお話

•Yohoushi とは•Yohoushi のアーキテクチャ•Yohoushi のデモ

Page 5: Yohoushi

Yohoushi(予報士)

Page 6: Yohoushi

分散RRDグラフツール!!

スケーラブル!!

Page 7: Yohoushi

グラフツールといえば

Page 8: Yohoushi
Page 9: Yohoushi

HTTP POSTするだけ

すごい便利

Page 10: Yohoushi

だけど

Page 11: Yohoushi

GrowthForecastでどうしても手が届かなかった所 ><

•3階層までしか持てない /service/section/graph_name•書き込みスケーラビリティがない•書き込みきれなくなったときにもう1台足すしかない•そうなると、画面が分かれて使いづらい•階層ベースの一覧しか見れない•同じグラフ名のグラフ一覧を見たい

Page 12: Yohoushi

作った

Page 13: Yohoushi

Yohoushi(予報士)

Page 14: Yohoushi

•HTTP API を持つバックエンドと Yohoushi フロントエンド•書き込みスケーラビリティを確保するため RRDtool を分散

Yohoushi アーキテクチャ

Page 15: Yohoushi

Yohoushi フロントエンド

•ちょっとリッチなUIとか (ajax)•タグ機能とか•バックエンドのグラフをまとめて表示するUI

Page 16: Yohoushi

agent (データを投げるナニか)•直接バックエンドにPOST• Yohoushi フロントエンドがボトルネックになると悲しいので• グラフ一覧情報は worker で定期的に更新しておく(config用)

※ Yohoushi に agent は含まれません

Page 17: Yohoushi

Yohoushi バックエンド

•それって GrowthForecast で (ry

•RRDtool 更新に対する HTTP API を持つ•実際には worker が定期的に rrdupdate をかける

Page 18: Yohoushi

じゃあ GrowthForecast を使おう (・ω<) テヘペロ

Page 19: Yohoushi

なんだってー

※ なにか画像があった気がする

Page 20: Yohoushi

Yohoushi loves GrowthForecast

※ 椅子を投げないでください

再掲

Page 21: Yohoushi

分散RRDGrowthForecastグラフツール!!

※ 椅子を投げないでください

再掲 Yohoushi =

Page 22: Yohoushi

本気でやる

Page 23: Yohoushi

GrowthForecast プルリク

Page 24: Yohoushi

GrowthForecast プルリク

Page 25: Yohoushi

GrowthForecast プルリク

※ thanks to @mikeda

Page 26: Yohoushi

GrowthForecast プルリク

Page 27: Yohoushi

•ルーティングルールを定義して分散 POST する gem•Yohoushi 内部と agent で使用

MultiForecast Client

https://github.com/sonots/multiforecast-client

Page 28: Yohoushi

Yohoushi デモ

•タグ機能•ajax なグラフツリー•autocomplete グラフサーチ

•期間指定•サムネイル

Page 29: Yohoushi

gem (一部)ruby '2.0.0'gem 'rails', '~> 4.0.0'gem 'ancestry', # tree modelgem 'acts-as-taggable-on' # tagginggem 'slim', :require => 'slim-rails'gem 'draper' # decorator(view-model)gem 'serverengine'gem 'better_errors' # sophisticated error viewgem 'byebug' # ruby 2.0 debugger

Page 30: Yohoushi

js, css (一部)

jquerybootstrapjquery-ui-autocompletebootstrap-datetimepickerjquery-ba-hashchangefont-awesomejquery-tagit

Page 32: Yohoushi

まとめ•分散 GrowthForecast グラフツール Yohoushi•3階層以上持てる

•使ってみてね(・ω<)

•スケーラブル•タグを付けて一覧表示•期間指定、サムネイル表示ができる

Page 33: Yohoushi

•rrdcached

補足~分散RRD検討~•分散 GF 以外の分散 RRD ツールも検討

•リモートから叩けるようになる•HTTP API 代わりに使えそう。逆にGFでOKという話も

•rrdtool-libdbi•RRDファイルではなくMySQLに保存•Spider を使ってシャーディング•Spider、rrdtoo-libdbi 共にあまり事例が見当たらない?•GFにプルリク送りつつ開発するのが健全?