Phedenskog has uploaded a new change for review.
https://gerrit.wikimedia.org/r/248295
Change subject: Check the statsv limit size before sending metrics
......................................................................
Check the statsv limit size before sending metrics
Check the current limit of the URL length sent to statsv
and split into multiple request depending on the actual
length.
Bug: T114997
Change-Id: I676500b082e1b0abee6526874316770628c689c3
---
M lib/reporter/statsv.js
1 file changed, 28 insertions(+), 22 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/performance/WebPageTest
refs/changes/95/248295/1
diff --git a/lib/reporter/statsv.js b/lib/reporter/statsv.js
index 37c9a14..ba6d4b3 100644
--- a/lib/reporter/statsv.js
+++ b/lib/reporter/statsv.js
@@ -8,6 +8,22 @@
'use strict';
var request = require('request');
+var STATSV_MAX_LENGTH = 1000;
+
+function sendMetrics(url, endpoint) {
+ console.log('Will send:' + url);
+ request(url, function(error, response, body) { // jshint unused:false
+ if (!error) {
+ console.log('Succesfully sent metrics.');
+ } else {
+ // default testing to localhost, then skip error logging
+ if (endpoint.indexOf('http://localhost') === -1) {
+ console.error(error);
+ }
+ }
+ });
+}
+
module.exports = {
/**
* Validate the input arguments.
@@ -39,33 +55,23 @@
});
});
-
- // Lets do something smarter in the future, now
- // cut after 5 keys and send a new request
- var MAX_KEYS_PER_REQUEST = 5;
var url = endpoint + '?';
-
var keys = Object.keys(flatten);
+ var newUrl;
for (var i = 0; i < keys.length; i++) {
-
- url += keys[i] + '=' + flatten[keys[i]] + '&';
- // don't send first, and then for each MAX_KEYS_PER_REQUEST
- // and the last time
- if (i !== 0 && i % MAX_KEYS_PER_REQUEST === 0 || (i + 1 ===
flatten.length)) {
+ newUrl = url + keys[i] + '=' + flatten[keys[i]] + '&';
+ // If the new length is larger that the limit, send what we have
+ if (newUrl.length >= STATSV_MAX_LENGTH) {
url = url.slice(0, -1);
- console.log(url);
- request(url, function(error, response, body) { // jshint
unused:false
- if (!error) {
- console.log('Succesfully sent metrics.');
- } else {
- // default testing to localhost, then skip error
logging
- if (endpoint.indexOf('http://localhost') === -1) {
- console.error(error);
- }
- }
- });
- url = endpoint + '?';
+ sendMetrics(url, endpoint);
+ // Reset base url and add the new one
+ url = endpoint + '?' + keys[i] + '=' + flatten[keys[i]] + '&';
+ } else {
+ url = newUrl;
}
}
+ // send the last batch of metrics
+ url = url.slice(0, -1);
+ sendMetrics(url, endpoint);
}
};
--
To view, visit https://gerrit.wikimedia.org/r/248295
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I676500b082e1b0abee6526874316770628c689c3
Gerrit-PatchSet: 1
Gerrit-Project: performance/WebPageTest
Gerrit-Branch: master
Gerrit-Owner: Phedenskog <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits