SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Yohoushi loves
GrowthForecast
SEO Naotoshi (@sonots)
2013/07/25
自己紹介
•SEO Naotoshi
•@sonots (そのっつ)
•所属 :DeNA
•Ops のための Dev 始めました
fluentd.org
今日のお話
•Yohoushi とは
•Yohoushi のアーキテクチャ
•Yohoushi のデモ
Yohoushi
(予報士)
分散RRD
グラフツール!!
スケーラブル!!
グラフツール
といえば
HTTP POSTするだけ
すごい便利
だけど
GrowthForecastでどうしても手が届か
なかった所 ><
•3階層までしか持てない /service/section/graph_name
•書き込みスケーラビリティがない
•書き込みきれなくなったときにもう1台足すしかない
•そうなると、画面が分かれて使いづらい
•階層ベースの一覧しか見れない
•同じグラフ名のグラフ一覧を見たい
作った
Yohoushi
(予報士)
•HTTP API を持つバックエンドと Yohoushi フロントエンド
•書き込みスケーラビリティを確保するため RRDtool を分散
Yohoushi アーキテクチャ
Yohoushi フロントエンド
•ちょっとリッチなUIとか (ajax)
•タグ機能とか
•バックエンドのグラフをまとめて表示するUI
agent (データを投げるナニか)
•直接バックエンドにPOST
• Yohoushi フロントエンドがボトルネックになると悲しいので
• グラフ一覧情報は worker で定期的に更新しておく(config用)
※ Yohoushi に agent は含まれません
Yohoushi バックエンド
•それって GrowthForecast で (ry
•RRDtool 更新に対する HTTP API を持つ
•実際には worker が定期的に rrdupdate をかける
じゃあ
GrowthForecast を
使おう (・ω<) テヘペロ
なんだってー
※ なにか画像があった気がする
Yohoushi loves
GrowthForecast
※ 椅子を投げないでください
再掲
分散RRD
GrowthForecast
グラフツール!!
※ 椅子を投げないでください
再掲 Yohoushi =
本気でやる
GrowthForecast プルリク
GrowthForecast プルリク
GrowthForecast プルリク
※ thanks to @mikeda
GrowthForecast プルリク
•ルーティングルールを定義して分散 POST する gem
•Yohoushi 内部と agent で使用
MultiForecast Client
https://github.com/sonots/multiforecast-client
Yohoushi デモ
•タグ機能
•ajax なグラフツリー
•autocomplete グラフサーチ
•期間指定
•サムネイル
gem (一部)
ruby '2.0.0'
gem 'rails', ' > 4.0.0'
gem 'ancestry', # tree model
gem 'acts-as-taggable-on' # tagging
gem 'slim', :require => 'slim-rails'
gem 'draper' # decorator(view-model)
gem 'serverengine'
gem 'better_errors' # sophisticated error view
gem 'byebug' # ruby 2.0 debugger
js, css (一部)
jquery
bootstrap
jquery-ui-autocomplete
bootstrap-datetimepicker
jquery-ba-hashchange
font-awesome
jquery-tagit
こちらで公開
http://github.com/
yohoushi/yohoushi
まとめ
•分散 GrowthForecast グラフツール Yohoushi
•3階層以上持てる
•使ってみてね(・ω<)
•スケーラブル
•タグを付けて一覧表示
•期間指定、サムネイル表示ができる
•rrdcached
補足∼分散RRD検討∼
•分散 GF 以外の分散 RRD ツールも検討
•リモートから叩けるようになる
•HTTP API 代わりに使えそう。逆にGFでOKという話も
•rrdtool-libdbi
•RRDファイルではなくMySQLに保存
•Spider を使ってシャーディング
•Spider、rrdtoo-libdbi 共にあまり事例が見当たらない?
•GFにプルリク送りつつ開発するのが健全?

Mais conteúdo relacionado

Semelhante a Yohoushi

Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolNeo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolMasahiro Satake
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾Ryutaro YOSHIBA
 
Trelloを使ってサクサク開発してみませんか?_yohhatu
Trelloを使ってサクサク開発してみませんか?_yohhatuTrelloを使ってサクサク開発してみませんか?_yohhatu
Trelloを使ってサクサク開発してみませんか?_yohhatuYoh Nakamura
 
YYPHP #13 初めてのコードレビュー
YYPHP #13 初めてのコードレビューYYPHP #13 初めてのコードレビュー
YYPHP #13 初めてのコードレビュー宜浩 香月
 
Fluentdcasual 02-haikanko
Fluentdcasual 02-haikankoFluentdcasual 02-haikanko
Fluentdcasual 02-haikankoNaotoshi Seo
 
これができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedこれができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedTakahiro YAMAGUCHI
 
運用管理を楽にしたいという話
運用管理を楽にしたいという話運用管理を楽にしたいという話
運用管理を楽にしたいという話Hisashi HATAKEYAMA
 
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2pandeiro245
 
Holographic Remoting を試してみた
Holographic Remoting を試してみたHolographic Remoting を試してみた
Holographic Remoting を試してみたTatsuya Sakai
 
汎用apiサーバの構築
汎用apiサーバの構築汎用apiサーバの構築
汎用apiサーバの構築Hidetoshi Mori
 
#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身Hisateru Tanaka
 
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatuYoh Nakamura
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃Teruo Adachi
 
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressサブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressTakahiro YAMAGUCHI
 
20210827 ui path friends lt
20210827 ui path friends lt20210827 ui path friends lt
20210827 ui path friends ltssuser127906
 
Kof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentationKof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentationYuichiro Nishimura
 

Semelhante a Yohoushi (16)

Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolNeo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
 
Trelloを使ってサクサク開発してみませんか?_yohhatu
Trelloを使ってサクサク開発してみませんか?_yohhatuTrelloを使ってサクサク開発してみませんか?_yohhatu
Trelloを使ってサクサク開発してみませんか?_yohhatu
 
YYPHP #13 初めてのコードレビュー
YYPHP #13 初めてのコードレビューYYPHP #13 初めてのコードレビュー
YYPHP #13 初めてのコードレビュー
 
Fluentdcasual 02-haikanko
Fluentdcasual 02-haikankoFluentdcasual 02-haikanko
Fluentdcasual 02-haikanko
 
これができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedこれができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejected
 
運用管理を楽にしたいという話
運用管理を楽にしたいという話運用管理を楽にしたいという話
運用管理を楽にしたいという話
 
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
 
Holographic Remoting を試してみた
Holographic Remoting を試してみたHolographic Remoting を試してみた
Holographic Remoting を試してみた
 
汎用apiサーバの構築
汎用apiサーバの構築汎用apiサーバの構築
汎用apiサーバの構築
 
#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身
 
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
 
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressサブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
 
20210827 ui path friends lt
20210827 ui path friends lt20210827 ui path friends lt
20210827 ui path friends lt
 
Kof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentationKof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentation
 

Mais de Naotoshi Seo

ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜Naotoshi Seo
 
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話Naotoshi Seo
 
Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Naotoshi Seo
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Naotoshi Seo
 
Sinatra Pattern 20130415
Sinatra Pattern 20130415Sinatra Pattern 20130415
Sinatra Pattern 20130415Naotoshi Seo
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraNaotoshi Seo
 
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Naotoshi Seo
 
Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013Naotoshi Seo
 
Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531Naotoshi Seo
 
capistrano-colorized-stream
capistrano-colorized-streamcapistrano-colorized-stream
capistrano-colorized-streamNaotoshi Seo
 

Mais de Naotoshi Seo (12)

ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
 
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
 
Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014
 
Sinatra Pattern 20130415
Sinatra Pattern 20130415Sinatra Pattern 20130415
Sinatra Pattern 20130415
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfra
 
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3
 
Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013
 
Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
capistrano-colorized-stream
capistrano-colorized-streamcapistrano-colorized-stream
capistrano-colorized-stream
 
Ruby test double
Ruby test doubleRuby test double
Ruby test double
 

Yohoushi