2019-10-14 09:27:47 +01:00
|
|
|
import { GrafanaRootScope } from 'app/routes/GrafanaCtrl';
|
|
|
|
|
2016-06-08 06:51:01 +02:00
|
|
|
export class Profiler {
|
|
|
|
panelsRendered: number;
|
|
|
|
enabled: boolean;
|
2019-10-14 09:27:47 +01:00
|
|
|
$rootScope: GrafanaRootScope;
|
2018-05-24 15:26:27 +02:00
|
|
|
window: any;
|
2016-06-08 06:51:01 +02:00
|
|
|
|
2019-10-14 09:27:47 +01:00
|
|
|
init(config: any, $rootScope: GrafanaRootScope) {
|
2016-06-08 06:51:01 +02:00
|
|
|
this.$rootScope = $rootScope;
|
2018-05-24 15:26:27 +02:00
|
|
|
this.window = window;
|
2016-06-08 06:51:01 +02:00
|
|
|
|
|
|
|
if (!this.enabled) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-05-13 09:38:19 +02:00
|
|
|
renderingCompleted() {
|
2016-06-17 08:49:11 +02:00
|
|
|
// add render counter to root scope
|
|
|
|
// used by phantomjs render.js to know when panel has rendered
|
2016-07-29 15:04:51 +02:00
|
|
|
this.panelsRendered = (this.panelsRendered || 0) + 1;
|
2018-05-24 15:26:27 +02:00
|
|
|
|
|
|
|
// this window variable is used by backend rendering tools to know
|
|
|
|
// all panels have completed rendering
|
|
|
|
this.window.panelsRendered = this.panelsRendered;
|
2016-06-08 06:51:01 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-08-29 14:26:50 +02:00
|
|
|
const profiler = new Profiler();
|
2017-12-19 16:06:54 +01:00
|
|
|
export { profiler };
|