-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
83 lines (64 loc) · 7.83 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen" />
<link rel="stylesheet" type="text/css" href="stylesheets/pygment_trac.css" media="screen" />
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print" />
<title>webrockit.io by WebRockit</title>
</head>
<body>
<header>
<div class="container">
<h1>webrockit.io</h1>
<section id="downloads">
<a href="https://github.com/WebRockit" class="btn btn-github"><span class="icon"></span>View source on GitHub</a>
<a href="https://bintray.com/webrockit/webrockit/" target="_blank" class="btn"><span class="icon"><img border="0" src="https://pbs.twimg.com/profile_images/3425030332/96c3491c27da587aaa5414b4e846e11a_normal.png" width="16" height="16"></span>View Packages</a>
<a href="https://twitter.com/webrockit" target="_blank" class="btn"><span class="icon"><img border="0" src="https://g.twimg.com/twitter-bird-16x16.png" width="16" height="16"></span>Follow us on Twitter</a><br>
</section>
</div>
</header>
<div class="container">
<section id="main_content">
<ul>
<li><a href="https://github.com/WebRockit/webrockit-docs/wiki/WebRockit-Setup" target="_blank">Setup Docs</a></li>
<li><a href="https://github.com/WebRockit/webrockit-docs/wiki/Screenshots" target="_blank">Screenshots</a></li>
<li>Quickstart UI/API Install</li>
curl -L http://x.co/wrapiuic6 | bash -s stable
<li>Quickstart CheckSync (Sensu Server) Install</li>
curl -L http://x.co/wrchecksyn | bash -s stable
<li>Quickstart Poller (Sensu Client) Install <a href="http://shelr.tv/records/52d9b9279660800fe9000086" target="_blank"><img border=0 src="https://cdn2.iconfinder.com/data/icons/atrous/512/command_line_prompt_shell-48.png" height="16" width="16"></a></li>
curl -L http://x.co/wrclientc6 | bash -s stable
</ul>
<h3>
<a name="welcome-to-the-github-pages-for-webrockit" class="anchor" href="#welcome-to-the-github-pages-for-webrockit"><span class="octicon octicon-link"></span></a>Welcome to the Github pages for WebRockit</h3>
<p>
<div style="width:100px;height:106px;-webkit-border-radius: 20px 10px 10px 10px;-moz-border-radius: 20px 10px 10px 10px;border-radius: 20px 10px 10px 10px;border:2px solid #000000;background:rgba(0,0,0,0.8);-webkit-box-shadow: #079907 1px 1px 1px;-moz-box-shadow: #666666 2px 2px 2px; box-shadow: #666666 2px 2px 2px; float: left; padding-right: 2px; padding-bottom: 2px; margin-right: 10px"><img src="images/webrockit-200px.png" height="106" width="100" alt="WebRockit Logo"></div>
WebRockit uses a headless web browser to measure how fast web pages load, relative to what a real user might experience. WebRockit also captures interesting metrics about the page load (time to first byte, number of assets, size of response, etc) and can draw some time-series graphs using that data. WebRockit is intended for periodic collection of this data, but is not intended to stress test a web host. WebRockit combines the scalability of <a href="http://sensuapp.org/" target="_blank">Sensu</a>, the accessibility of <a href="http://graphite.wikidot.com/" target="_blank">Graphite</a>, backed by the reliability of <a href="http://qt-project.org/doc/qt-5.0/qtwebkit/qtwebkit-index.html" target="_blank">WebKit</a>. WebRockit is designed for a web-ops audience, but is a useful toolkit for the entire spectrum of web professionals. WebRockit will run on Centos/RHEL 6.x with our initial public release, with support coming for Fedora, Debian, Ubuntu, and other popular Linux distributions. WebRockit may work without much modification on other operating systems, but we haven't fully tested other combinations (yet).</p>
<p>WebRockit comes with instructions on how to bring up new Graphite and Sensu server components, but may also fit in with existing Graphite and Sensu services you are already running. WebRockit aims to provide all necessary services where all the services are geographically local to each other, but may function when communicating with geo-remote services (YMMV). </p>
<p>WebRockit exposes a REST API so url checks can be added/changed/removed through automation. We follow the <a href="https://github.com/godaddy/gdapi/blob/master/specification.md" target="_blank">GD API</a> specification. The WebRockit UI uses the API to handle all aspects of the human visualiation and administration interface. WebRockit also includes a component to apply checks to Sensu and restart Sensu services where necessary, using the WebRockit API. WebRockit is able to poll sites which do not have active public DNS or where you wish to override the standard DNS resolution for a host. </p>
<p>WebRockit is able to poll at least 500 unique URLs every 5 minutes where each URL is less than 1.5MB in size, from a single polling server (with 1GB ram, 1x 1.8Ghz quad core Xeon). It can operate at much higher volumes than this, but this gives at least some idea on expectations when sizing server real-estate. Spinning up 2 virtual instances with most c-word providers (one for sensu/graphite/ui server, one for the poller client), with about 1GB of ram each, will be enough to query and measure several hundred URLs.
<img src="images/webrockit_infrastructure.thumb.png" alt="WebRockit Infrastructure"></p>
<p>While it is technically possible to mash this toolkit into other purposes (OpenStack service monitoring you say? Go on..), we don't encourage it (yet). This toolkit has one main job, and that's to measure how webpages load over time in a browser. Franken-steining this into other tasks might work -- but we would caution: understand what problems you are trying to solve first, before you end up building a bridge to Mars. So far, we haven't found a great open source solution to address our challenges, so that's why we did this. </p>
<p>If you add network-diversity to where the polls are made from, you can get a bit of triangulation. While that's nifty and potentially useful (West Coast vs East Coast perspective?), one important thing this suite doesn't do yet is tie activity to performance. One cannot rely solely on this data to make business decisions. You must understand what activity is leading to your performance state. This can mean diving into answering questions such as:</p>
<ul>
<li>Is my cpu a bottleneck? Are my cores %100 busy for my poorly threaded application?</li>
<li>Are my requests periodically being served from a cold cache or hitting a cache's max TTL? (DNS, opcode, inode, dentry, TCP metrics, DB query cache, and so on)</li>
<li>Am I hitting a network resource limitation? (Saturated link, asynchronous route through a lossy channel, etc)</li>
<li>And more!<br>
</li>
</ul><p>We hope to eventually include concurrent activity data point collection for folks that control their own infrastructure, so that bottlenecks can be identified and alarms can be raised -- but that is further down in our list of goals. Even in that space, correlation is not always causation (and only sometimes).</p>
<p>WebRockit is released under the MIT license, and bundles other liberally licensed OSS components. Do what you want with it, but remember: sharing is caring. Through technology, we hope to make the world a better place for our human sisters and brothers.</p>
</section>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-53246205-1', {'siteSpeedSampleRate': 100});
ga('send', 'pageview');
</script>
</body>
</html>