Submit Search
Upload
Introduction to cloudforecast
•
Download as KEY, PDF
•
3 likes
•
1,612 views
Masahiro Nagano
Follow
Introduction to cloudforecast
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 68
Download now
Recommended
Using ngx_lua in UPYUN
Using ngx_lua in UPYUN
Cong Zhang
Roll Your Own API Management Platform with nginx and Lua
Roll Your Own API Management Platform with nginx and Lua
Jon Moore
glance replicator
glance replicator
irix_jp
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
Lua tech talk
Lua tech talk
Locaweb
Performance Profiling in Rust
Performance Profiling in Rust
InfluxData
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusters
Sematext Group, Inc.
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
Recommended
Using ngx_lua in UPYUN
Using ngx_lua in UPYUN
Cong Zhang
Roll Your Own API Management Platform with nginx and Lua
Roll Your Own API Management Platform with nginx and Lua
Jon Moore
glance replicator
glance replicator
irix_jp
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
Lua tech talk
Lua tech talk
Locaweb
Performance Profiling in Rust
Performance Profiling in Rust
InfluxData
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusters
Sematext Group, Inc.
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
ELK stack at weibo.com
ELK stack at weibo.com
琛琳 饶
Nginx-lua
Nginx-lua
Дэв Тим Афс
Terraform 0.9 + good practices
Terraform 0.9 + good practices
Radek Simko
{{more}} Kibana4
{{more}} Kibana4
琛琳 饶
Top Node.js Metrics to Watch
Top Node.js Metrics to Watch
Sematext Group, Inc.
Openstack presentation
Openstack presentation
bodepd
Bootstrapping multidc observability stack
Bootstrapping multidc observability stack
Bram Vogelaar
RestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message Queue
Gleicon Moraes
Amazed by AWS Series #4
Amazed by AWS Series #4
Amazon Web Services Korea
Lightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMR
Shinji Tanaka
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
Puppet and the HashiStack
Puppet and the HashiStack
Bram Vogelaar
Workshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - Suestra
Mario IC
Terraforming the Kubernetes Land
Terraforming the Kubernetes Land
Radek Simko
RubyKaigi2015 making robots-with-mruby
RubyKaigi2015 making robots-with-mruby
yamanekko
Infrastructure as Code in Google Cloud
Infrastructure as Code in Google Cloud
Radek Simko
Observability with Consul Connect
Observability with Consul Connect
Bram Vogelaar
Introductory Overview to Managing AWS with Terraform
Introductory Overview to Managing AWS with Terraform
Michael Heyns
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Big Data Spain
Ruby meets Go
Ruby meets Go
NTT Communications Technology Development
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
Michitoshi Yoshida
More Related Content
What's hot
ELK stack at weibo.com
ELK stack at weibo.com
琛琳 饶
Nginx-lua
Nginx-lua
Дэв Тим Афс
Terraform 0.9 + good practices
Terraform 0.9 + good practices
Radek Simko
{{more}} Kibana4
{{more}} Kibana4
琛琳 饶
Top Node.js Metrics to Watch
Top Node.js Metrics to Watch
Sematext Group, Inc.
Openstack presentation
Openstack presentation
bodepd
Bootstrapping multidc observability stack
Bootstrapping multidc observability stack
Bram Vogelaar
RestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message Queue
Gleicon Moraes
Amazed by AWS Series #4
Amazed by AWS Series #4
Amazon Web Services Korea
Lightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMR
Shinji Tanaka
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
Puppet and the HashiStack
Puppet and the HashiStack
Bram Vogelaar
Workshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - Suestra
Mario IC
Terraforming the Kubernetes Land
Terraforming the Kubernetes Land
Radek Simko
RubyKaigi2015 making robots-with-mruby
RubyKaigi2015 making robots-with-mruby
yamanekko
Infrastructure as Code in Google Cloud
Infrastructure as Code in Google Cloud
Radek Simko
Observability with Consul Connect
Observability with Consul Connect
Bram Vogelaar
Introductory Overview to Managing AWS with Terraform
Introductory Overview to Managing AWS with Terraform
Michael Heyns
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Big Data Spain
Ruby meets Go
Ruby meets Go
NTT Communications Technology Development
What's hot
(20)
ELK stack at weibo.com
ELK stack at weibo.com
Nginx-lua
Nginx-lua
Terraform 0.9 + good practices
Terraform 0.9 + good practices
{{more}} Kibana4
{{more}} Kibana4
Top Node.js Metrics to Watch
Top Node.js Metrics to Watch
Openstack presentation
Openstack presentation
Bootstrapping multidc observability stack
Bootstrapping multidc observability stack
RestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message Queue
Amazed by AWS Series #4
Amazed by AWS Series #4
Lightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMR
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suite
Puppet and the HashiStack
Puppet and the HashiStack
Workshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - Suestra
Terraforming the Kubernetes Land
Terraforming the Kubernetes Land
RubyKaigi2015 making robots-with-mruby
RubyKaigi2015 making robots-with-mruby
Infrastructure as Code in Google Cloud
Infrastructure as Code in Google Cloud
Observability with Consul Connect
Observability with Consul Connect
Introductory Overview to Managing AWS with Terraform
Introductory Overview to Managing AWS with Terraform
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Apache MXNet Distributed Training Explained In Depth by Viacheslav Kovalevsky...
Ruby meets Go
Ruby meets Go
Similar to Introduction to cloudforecast
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
Michitoshi Yoshida
Debugging Ruby Systems
Debugging Ruby Systems
Engine Yard
Deathstar
Deathstar
armstrtw
MySQL Spider Architecture
MySQL Spider Architecture
I Goo Lee
Spider Setup with AWS/sandbox
Spider Setup with AWS/sandbox
I Goo Lee
Performance tweaks and tools for Linux (Joe Damato)
Performance tweaks and tools for Linux (Joe Damato)
Ontico
Mongodb workshop
Mongodb workshop
Harun Yardımcı
Relational Database Access with Python ‘sans’ ORM
Relational Database Access with Python ‘sans’ ORM
Mark Rees
Debugging Ruby
Debugging Ruby
Aman Gupta
R-House (LSRC)
R-House (LSRC)
Fernand Galiana
dotCloud and go
dotCloud and go
Flavio Poletti
Hive dirty/beautiful hacks in TD
Hive dirty/beautiful hacks in TD
SATOSHI TAGOMORI
Sinatra for REST services
Sinatra for REST services
Emanuele DelBono
Fisl - Deployment
Fisl - Deployment
Fabio Akita
Exactly once with spark streaming
Exactly once with spark streaming
Quentin Ambard
Toolbox of a Ruby Team
Toolbox of a Ruby Team
Arto Artnik
Haproxy - zastosowania
Haproxy - zastosowania
Łukasz Jagiełło
Terraform at Scale - All Day DevOps 2017
Terraform at Scale - All Day DevOps 2017
Jonathon Brouse
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
Andrey Kudryavtsev
Similar to Introduction to cloudforecast
(20)
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
Debugging Ruby Systems
Debugging Ruby Systems
Deathstar
Deathstar
MySQL Spider Architecture
MySQL Spider Architecture
Spider Setup with AWS/sandbox
Spider Setup with AWS/sandbox
Performance tweaks and tools for Linux (Joe Damato)
Performance tweaks and tools for Linux (Joe Damato)
Mongodb workshop
Mongodb workshop
Relational Database Access with Python ‘sans’ ORM
Relational Database Access with Python ‘sans’ ORM
Debugging Ruby
Debugging Ruby
R-House (LSRC)
R-House (LSRC)
dotCloud and go
dotCloud and go
Hive dirty/beautiful hacks in TD
Hive dirty/beautiful hacks in TD
Sinatra for REST services
Sinatra for REST services
Fisl - Deployment
Fisl - Deployment
Exactly once with spark streaming
Exactly once with spark streaming
Toolbox of a Ruby Team
Toolbox of a Ruby Team
Haproxy - zastosowania
Haproxy - zastosowania
Terraform at Scale - All Day DevOps 2017
Terraform at Scale - All Day DevOps 2017
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
More from Masahiro Nagano
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Masahiro Nagano
Big Master Data PHP BLT #1
Big Master Data PHP BLT #1
Masahiro Nagano
Stream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LT
Masahiro Nagano
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
Masahiro Nagano
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano
メルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えて
Masahiro Nagano
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Masahiro Nagano
Mackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LT
Masahiro Nagano
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
Masahiro Nagano
Isucon makers casual talks
Isucon makers casual talks
Masahiro Nagano
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Masahiro Nagano
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
Masahiro Nagano
Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 実践編
Masahiro Nagano
Webアプリケーションの パフォーマンス向上のコツ 概要編
Webアプリケーションの パフォーマンス向上のコツ 概要編
Masahiro Nagano
Webアプリケーションとメモリ
Webアプリケーションとメモリ
Masahiro Nagano
最近作ったN個のCPANモジュール Yokohama.pm #10
最近作ったN個のCPANモジュール Yokohama.pm #10
Masahiro Nagano
More from Masahiro Nagano
(20)
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Big Master Data PHP BLT #1
Big Master Data PHP BLT #1
Stream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LT
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
メルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えて
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Mackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LT
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
Isucon makers casual talks
Isucon makers casual talks
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 概要編
Webアプリケーションの パフォーマンス向上のコツ 概要編
Webアプリケーションとメモリ
Webアプリケーションとメモリ
最近作ったN個のCPANモジュール Yokohama.pm #10
最近作ったN個のCPANモジュール Yokohama.pm #10
Recently uploaded
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Remote DBA Services
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Khushali Kathiriya
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
The Digital Insurer
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
apidays
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Principled Technologies
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
MIND CTI
Recently uploaded
(20)
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
Introduction to cloudforecast
1.
Introduction to CloudForecast
Yokohama.pm #6.x @kazeburo
2.
• • @kazeburo • 2010
5 • 2010 6 • Web
3.
CloudForecast • • • perl
rrdtool sysadmin (by tokuhirom)
4.
• •
5.
(1)
6.
(1) • ping
7.
(1) • ping • HTTP,SSH
8.
(1) • ping • HTTP,SSH •
Disk
9.
(2) • • •
• Nagios • monit
10.
(1)
11.
(1) •
12.
(1) • • CPU
13.
(2) • • •
• Cacti • munin • Ganglia • CloudForecast
14.
CloudForecast • • YAML •
Web • Perl!
15.
CPAN •
Plack + Starlet • Gearman • Parallel::Prefork • DBI DBD::SQLite • YAML::Syck • Text::Xslate • Data::Section::Simple • local::lib
16.
• RRDTool RRDs.pm •
SNMP.pm • Shirahata(WAF)
17.
CloudForecast
1 RRD Radar Web SQLite
18.
CloudForecast
1 (1) RRD Radar Web SQLite
19.
CloudForecast
1 (1) RRD Radar Web SQLite (2)
20.
CloudForecast
1 (1) RRD Radar Web SQLite (2) (3)
21.
CloudForecast
1 (1) RRD Radar Web SQLite (2) (3)
22.
CloudForecast
2 fetcher worker RRD update Radar Web worker SQLite
23.
CloudForecast
2 Gearman Worker fetcher worker RRD update Radar Web worker SQLite
24.
CloudForecast
2 Gearman Worker RRD update Radar Web worker SQLite
25.
26.
1 # ubuntu $ sudo
apt-get install librrds-perl libsnmp-perl # CentOS rrdtool EPEL $ sudo yum install net-snmp-perl $ sudo yum install rrdtool-perl
27.
2 $ git clone
git://github.com/kazeburo/cloudforecast.git $ cd cloudforecast $ cpanm -l extlib --installdeps . $ ls Changes cloudforecast_web Makefile.PL docs README host_config cf_devstarter htdocs cf_fetcher_worker lib cf_updater_worker server_list_sample.yaml cloudforecast_radar t cloudforecast_sample.yaml
28.
# $ cp cloudforecast_sample.yaml
cloudforecast.yaml # $ cp server_list_sample.yaml server_list.yaml
29.
(server_list.yaml) --- #LOCALHOST servers:
- config: basic.yaml hosts: - 127.0.0.1 server1 my great localhost --- #My Servers servers: - config: basic.yaml hosts: ....
30.
(server_list.yaml) --- #LOCALHOST servers:
- config: basic.yaml hosts: - 127.0.0.1 server1 my great localhost --- #My Servers servers: - config: basic.yaml hosts: ....
31.
(server_list.yaml) --- #LOCALHOST servers:
- config: basic.yaml hosts: - 127.0.0.1 server1 my great localhost --- #My Servers servers: - config: basic.yaml hosts: ....
32.
(server_list.yaml) --- #LOCALHOST servers:
- config: basic.yaml hosts: - 127.0.0.1 server1 my great localhost --- #My Servers IP servers: - config: basic.yaml hosts: ....
33.
(server_list.yaml) --- #LOCALHOST servers:
- config: basic.yaml hosts: - 127.0.0.1 server1 my great localhost --- #My Servers IP servers: - config: basic.yaml hosts: ....
34.
(server_list.yaml) --- #LOCALHOST servers:
- config: basic.yaml hosts: - 127.0.0.1 server1 my great localhost --- #My Servers IP servers: - config: basic.yaml hosts: ....
35.
(basic.yaml) --- component_config: resources: -
basic - traffic:eth0 basic = eth0 CPU TCP
36.
(basic.yaml) --- component_config: resources: -
basic - traffic:eth0 basic = eth0 CPU TCP
37.
(basic.yaml) --- component_config: resources: -
basic - traffic:eth0 basic = eth0 CPU TCP
38.
•
Basic(CPU TCP ) • Traffic • Disk Usage • DiskIO Count • Apache Status • Nginx Status • Squid • Mysql • Innodb
39.
$ perldoc CloudForecast::Data::
40.
$ perldoc CloudForecast::Data::
41.
CloudForecast http://blog.nomadscafe.jp/2010/07/cloudforecast-1.html
42.
# $ ./cloudforecast_radar -c
cloudforecast.yaml -l server_list.yaml # Web $ ./cloudforecast_web -p 5000 -c cloudforecast.yaml -l server_list.yaml
43.
Web
( )
44.
Web
( )
45.
http://blog.nomadscafe.jp/2010/07/cloudforecast-2.html
46.
47.
•
48.
• •
49.
• • •
50.
# site-lib $ mkdir
-p site-lib/CloudForecast/Data
51.
Gearman Worker gearman
worker process http://blog.nomadscafe.jp/2010/07/gearman-worker-process.html
52.
% ./gearman-starter.pl --max-prcess
8 -s 127.0.0.1:7004 --scoreboard-dir /var/run/worker --port 7005 MyWorker % telnet localhost 7005 Trying 127.0.0.1... System: gearman_servers: 127.0.0.1:7004 class: MyWorker BusyWorkers: 0 IdleWorkers: 8 -- pid Status Counter Comment 1630 . 0 1631 . 0 1632 . 0 1633 . 0 1634 . 0 1635 . 0 1636 . 0 1637 . 0
53.
% ./gearman-starter.pl --max-prcess
8 -s 127.0.0.1:7004 --scoreboard-dir /var/run/worker --port 7005 MyWorker % telnet localhost 7005 Trying 127.0.0.1... System: gearman_servers: 127.0.0.1:7004 class: MyWorker BusyWorkers: 0 IdleWorkers: 8 -- pid Status Counter Comment 1630 . 0 1631 . 0 1632 . 0 1633 . 0 1634 . 0 1635 . 0 1636 . 0 1637 . 0
54.
• •
55.
package CloudForecast::Data::Gearmanstarter; use CloudForecast::Data
-base; use IO::Socket::INET; =pod host_config) resources: - gearmanstarter[:port] eg) - gearmanstarter # 9000 - gearmanstarter:9005 # port =cut
56.
rrds map {
[$_,'GAUGE'] } qw/busy idle/; # rrds ‘key’, ‘TYPE’ or rrds [‘key’,‘TYPE’], []..
57.
•
COUNTER • • • ) Traffic ( octet ) • GAUGE • • • )
58.
(1) graphs 'status' =>
'worker status'; # graphs ‘key1’ => ‘label’; # graphs ‘key2’ => ‘the great graph’;
59.
(2) graphs 'status' =>
'worker status'; .. __DATA__ @@ status DEF:my1=<%RRD%>:busy:AVERAGE DEF:my2=<%RRD%>:idle:AVERAGE AREA:my1#00C000:Busy GPRINT:my1:LAST:Cur: %4.1lf GPRINT:my1:AVERAGE:Ave: %4.1lf GPRINT:my1:MAX:Max: %4.1lf GPRINT:my1:MIN:Min: %4.1lfc STACK:my2#0000C0:Idle GPRINT:my2:LAST:Cur: %4.1lf GPRINT:my2:AVERAGE:Ave: %4.1lf GPRINT:my2:MAX:Max: %4.1lf GPRINT:my2:MIN:Min: %4.1lfc
60.
(2)
graphs 'status' => 'worker status'; .. key __DATA__ @@ status DEF:my1=<%RRD%>:busy:AVERAGE DEF:my2=<%RRD%>:idle:AVERAGE AREA:my1#00C000:Busy GPRINT:my1:LAST:Cur: %4.1lf GPRINT:my1:AVERAGE:Ave: %4.1lf GPRINT:my1:MAX:Max: %4.1lf GPRINT:my1:MIN:Min: %4.1lfc STACK:my2#0000C0:Idle GPRINT:my2:LAST:Cur: %4.1lf GPRINT:my2:AVERAGE:Ave: %4.1lf GPRINT:my2:MAX:Max: %4.1lf GPRINT:my2:MIN:Min: %4.1lfc
61.
fetcher {
my $c = shift; my $host = $c->address; my $port = $c->args->[0] || 9000; my $sock = IO::Socket::INET->new( PeerAddr => $host, PeerPort => $port, Proto => 'tcp', ); my $raw_stats; $sock->sysread( $raw_stats, 8192 ); my ($busy, $idle); foreach my $line ( split /[rn]+/, $raw_stats ) { if ( $line =~ /^Busy.+: (d+)/ ) { $busy = $1; } if ( $line =~ /^Idle.+: (d+)/ ) { $idle = $1; } } return [$busy,$idle]; };
62.
fetcher {
my $c = shift; my $host = $c->address; my $port = $c->args->[0] || 9000; my $sock = IO::Socket::INET->new( PeerAddr => $host, PeerPort => $port, Proto => 'tcp', ); my $raw_stats; $sock->sysread( $raw_stats, 8192 ); my ($busy, $idle); foreach my $line ( split /[rn]+/, $raw_stats ) { if ( $line =~ /^Busy.+: (d+)/ ) { $busy = $1; } if ( $line =~ /^Idle.+: (d+)/ ) { $idle = $1; } } return [$busy,$idle]; };
63.
•
64.
65.
IDLE
BUSY
66.
TODO/Plan • Web • RRD
SQLite •
67.
• CloudForecast
Perl • •
Editor's Notes
Download now