The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
grafana/vendor/phantomjs/render.js

55 lines
1.2 KiB

var page = require('webpage').create();
var args = require('system').args;
var params = {};
var regexp = /^([^=]+)=([^$]+)/;
args.forEach(function(arg) {
var parts = arg.match(regexp);
if (!parts) { return; }
params[parts[1]] = parts[2];
});
var usage = "url=<url> png=<filename> width=<width> height=<height> cookiename=<cookiename> sessionid=<sessionid> domain=<domain>";
if (!params.url || !params.png || !params.cookiename || ! params.sessionid || !params.domain) {
console.log(usage);
phantom.exit();
}
phantom.addCookie({
'name': params.cookiename,
'value': params.sessionid,
'domain': params.domain
});
page.viewportSize = {
11 years ago
width: params.width || '800',
height: params.height || '400'
};
var tries = 0;
page.open(params.url, function (status) {
console.log('Loading a web page: ' + params.url);
11 years ago
function checkIsReady() {
var canvas = page.evaluate(function() {
var body = angular.element(document.body); // 1
var rootScope = body.scope().$root;
return rootScope.performance.panelsRendered > 0;
11 years ago
});
if (canvas || tries === 1000) {
11 years ago
page.render(params.png);
phantom.exit();
}
else {
tries++;
11 years ago
setTimeout(checkIsReady, 10);
}
}
setTimeout(checkIsReady, 200);
});