Meteor Template Monitor
Monitoring for Blaze templates. Tracks the following Template
internals:
Template.prototype.onCreated
Template.prototype.onRendered
Template.prototype.onDestroyed
Template.prototype.helpers
Template.prototype.events
Template.prototype.constructView
Template.registerHelper
Currently measures
- Call count per Template and per function
- Duration of call and average duration of the last 100 calls
Installation and usage
Use
$ meteor add jkuester:template-monitor
to install the package.
Covering Templates from other packages
The package hooks immediately into Template
as soon as it's added. Therefore you have to place the package in your
.meteor/packages
at a position, where all following packages are intended to be monitored.
This is due to the fact, that many packages still use api.addFiles
in order to register Templates immediately at
build / startup time. If they are added before the this one they simply wont't be monitored.
If you only want to monitor your project's Templates you place the package as the last entry in .meteor/packages
.
Configuration
This package monitors all the aforementioned Template internals by default. If you want to shut anyone off you can
add the following entry to your Meteor.settings.public
:
1{ 2 "templateMonitor": { 3 "onCreated": Boolean, 4 "onRendered": Boolean, 5 "onDestroyed": Boolean, 6 "helpers": Boolean, 7 "events": Boolean, 8 "constructView": Boolean, 9 "registerHelper": Boolean 10 } 11}
Omitting an entry or setting it to true
have basically the same effect, only an explicit false
will skip monitoring
the respective internals.
Accessing the stats
You can manually access the stats at any point using Template.monitor()
, which will return an Object with a snapshot
of all current stats.
You can either call it from your code or even type it in the Browser's JavaScript console.
Note for Firefox users: Firefox prevents timing attacks by rounding values of performance.now
which may result in less distinctive stats. If you need detailed insights to timing you may check for a browser, that
does not use this rounding or disable it in Firefox.
License
MIT, see LICENSE