yandex-tank/index-en.html
Alexey Lavrenuke 98429d62bf Yandex.Metrika
2014-12-03 19:46:43 +03:00

29 lines
7.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content=""><meta name="author" content=""><title>Yandex.Tank: a performance measurement tool</title><link rel="icon" href="undefined/docs/favicon.ico"><link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.4.6/rickshaw.min.css"><style type="text/css">.rickshaw_legend li {
display: inline-block;
padding: 0 0 0 2px;
min-width: 80px;
white-space: nowrap;
}
</style><!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries--><!--if lt IE 9script(src='https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js')
script(src='https://oss.maxcdn.com/respond/1.4.2/respond.min.js')--></head><body><div class="container"><!-- Jumbotron--><div class="jumbotron"><div class="row"><div class="col-lg-5 text-center"><img src="images/tank192.jpg" class="img-rounded"><h1>Yandex.Tank</h1><p><i>a performance measurement tool</i></p></div><div class="col-lg-7"><blockquote><p>Once we accept our limits, we go beyond them.</p><footer>Albert Einstein</footer></blockquote><p>Find out about your apps performance limits and bottlenecks in order to use your resources in a most effective way. Ensure your app is scalable and find a way to make it scalable. Use Yandex.Tank to choose a reliable technology stack before you even started developing your product.</p><p><a href="#install" role="button" class="btn btn-lg btn-success">Get started today</a></p></div></div></div><!-- Example row of columns--><div class="row"><div class="col-lg-4"><h2>100 000+ RPS</h2><p>Use <em>phantom </em>load engine written in pure C++ to generate big amount of load from one machine.</p><p><a href="#phantom" role="button" class="btn btn-primary">View details &raquo;</a></p></div><div class="col-lg-4"><h2>Interactive reports</h2><p>See how your system behaves under load while running the test. Save report when the test is over and email it to your colleagues.</p><p><a href="#reports" role="button" class="btn btn-primary">View details &raquo;</a></p></div><div class="col-lg-4"><h2>Monitoring plugin</h2><p>Collect all your system and business metrics by configuring monitoring plugin. The resources of the host you shooting at are monitored by default.</p><p><a href="#monitoring" role="button" class="btn btn-primary">View details &raquo;</a></p></div></div><div class="row"><div class="col-lg-4"><h2>Multiple load engines</h2><p>Use JMeter to test complex scenarios or BFG (experimental) for exotic protocols. Implement your own module for your favorite tool and use Tanks features like OnlineReport with it.</p><p><a href="#load_engines" role="button" class="btn btn-primary">View details &raquo;</a></p></div><div class="col-lg-4"><h2>Integration</h2><p>Use Yandex.Tank with Jenkins or other CI software to automate your load tests. Store reports online. Stop your tests automatically using customizable criteria.</p><p><a href="#integration" role="button" class="btn btn-primary">View details &raquo;</a></p></div><div class="col-lg-4"><h2>Simple ammo format</h2><p>Use your access.log for shooting or generate ammo from your logs using simple script.</p><p><a href="#ammo" role="button" class="btn btn-primary">View details &raquo;</a></p></div></div><hr><div id="install" class="row"><div class="col-lg-6"><h2>Install from PPA</h2><p>Add our repository and install:<pre>sudo add-apt-repository ppa:yandex-load/main
sudo apt-get update && sudo apt-get install yandex-load-tank-base</pre></p></div><div class="col-lg-6"><h2>Download archive</h2><p><a href="https://github.com/yandex/yandex-tank/archive/master.zip"><span aria-hidden="true" class="glyphicon glyphicon-download-alt"></span>&nbsp;download .zip</a></p></div></div><hr><div id="phantom" class="row"><div class="col-lg-12"><h2>phantom</h2><p>Our default load generator is phantom. Phantom is an open-source web server based on coroutines. That is why it is so fast and resource efficient.</p><p>Wait, the <i>web server</i>? How to use a web server as a load generator? Long time ago we added benchmarking feature to this web server so it became also a performant client. It was done in order to be able to test high capacity phantom-based services. No other tool of that time was capable of generating such amount of load using only one machine. Phantom could.</p><a href="#" role="button" class="btn btn-primary">Go to top &raquo;</a></div></div><hr><div id="reports" class="row"><div class="col-lg-12"><h2>reports</h2><p>One look is worth a thousand words, so here is an interactive example. This is one of the most important charts from the report that Tank shows you: a quantile graph. There are response time quantiles for each second on it, so that you can examine that, for example, at 16:16:54 75% of responses were faster then 45 milliseconds. Give it a try!</p><div ng-app="ng-tank-report" ng-controller="TankReport" class="app container"><div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">{{quantiles.name}}</h3></div><div class="panel-body"><rickshaw rickshaw-series="quantiles.series" rickshaw-options="quantiles.options" rickshaw-features="quantiles.features" class="panel-body"></rickshaw></div></div></div><a href="#" role="button" class="btn btn-primary">Go to top &raquo;</a></div></div><hr><div id="monitoring" class="row"><div class="col-lg-12"><h2>monitoring</h2><p>interactive report example</p><a href="#" role="button" class="btn btn-primary">Go to top &raquo;</a></div></div><hr><div id="load_engines" class="row"><div class="col-lg-12"><h2>load engines</h2><p>interactive report example</p><a href="#" role="button" class="btn btn-primary">Go to top &raquo;</a></div></div><hr><div id="integration" class="row"><div class="col-lg-12"><h2>integration</h2><p>interactive report example</p><a href="#" role="button" class="btn btn-primary">Go to top &raquo;</a></div></div><hr><div id="ammo" class="row"><div class="col-lg-12"><h2>ammo</h2><p>interactive report example</p><a href="#" role="button" class="btn btn-primary">Go to top &raquo;</a></div></div><hr><!-- Site footer--><div class="footer"><p>&copy; Alexey Lavrenuke 2014</p></div></div><!-- /container--><script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script><script src="https://code.angularjs.org/1.2.24/angular.min.js"></script><script src="http://d3js.org/d3.v3.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.4.6/rickshaw.min.js"></script><script src="javascripts/report.js"></script><!-- Yandex.Metrika--><script type="text/javascript">(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter27357737 = new Ya.Metrika({
id:27357737,
webvisor:true
});
} catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");</script><noscript><div><img src="//mc.yandex.ru/watch/27357737" style="position:absolute; left:-9999px;" alt=""></div></noscript></body></html>