UNPKG

glutenfree

Version:

A profiler/loganalyzer for nginx/Cetrea Aw.

71 lines (58 loc) 2.02 kB
// Generated by CoffeeScript 1.4.0 (function() { var cluster, clusterId, logger, nl, reporter, util, winston, _; cluster = require("cluster"); winston = require("winston"); util = require("util"); _ = require("underscore"); nl = require("nodeload"); logger = new winston.Logger({ transports: [ new winston.transports.Console({ 'timestamp': true }) ] }); logger.info("PrWrkr#" + cluster.worker.id + ": online, waiting for input"); reporter = {}; clusterId = ""; cluster.worker.on("message", function(msg) { switch (msg.subject) { case "targeting": logger.info("PrWorker#" + cluster.worker.id + ": targeting received (http://" + msg.server + ":" + msg.port + " w " + msg.user + ":" + msg.password + "), hitting " + msg.targeting.length + " targets"); clusterId = msg.clusterId; return nl.run({ numClients: 10, targetRps: 100, timeLimit: 10, requestGenerator: function(client) { var r, request, target; r = Math.random() * 100; target = _.find(msg.targeting, (function(t) { return r < t.acc_percentage; })); request = client.request("GET", "/" + target.path, { method: "GET", host: msg.server, port: msg.port, headers: target.headers, auth: "" + msg.user + ":" + msg.password }, function(res) { var _ref; console.log("---> hit"); return target.headers = { "If-None-Match": res.headers["etag"] || (target != null ? (_ref = target.headers) != null ? _ref["If-None-Match"] : void 0 : void 0) }; }); return request.end(); } }); } }); cluster.worker.on("disconnect", function() { clearTimeout(reporter); report(0); logger.info("report, disconnect"); return process.exit(0); }); }).call(this);