node.js module for using telemetry.js to access telemetry aggregates from Mozilla Firefox
telemetry-js-node module loads
telemetry.mozilla.org/v1/telemetry.js and make the functions available in
node.js, so that telemetry dashboard aggregates can be analyzed server-side.
telemetry.mozilla.org/v1/telemetry.js. This poses a security risk,
do not run this in mission critical places. Run it somewhere fairly isolated,
under docker, a non-privileged user or in a LXC container. You have been
The reasoning behind the decision to load
telemetry.js dynamically is that
the storage format used server-side is unstable and we will update
telemetry.js as changes to the server-side storage format occurs. For this
reason you shouldn't expect this module to work in long running processes,
reloading it, with
Telemetry.init, may help.
This module can be used exactly like
telemetry.js, refer to the
for details on how to use it. Below is just a small example.
var Telemetry = require'telemetry-js-node';// Initialize telemetry.jsTelemetryinit// Find a versionvar version = Telemetryversions0;// Load measuresTelemetrymeasuresversion// Print measures availableconsole.log"Measures available:";ObjectkeysmeasuresforEachconsole.logmeasure;;;;
Telemetry.init(callback) have executed, this module will
not have other methods than
Telemetry.init. In the browser these methods will
be available, but they will throw an exception if
Telemetry.init have not
completed yet. This is a minor difference, that users who don't like trivial
exceptions won't notice.
Reloading, just like
telemetry.js you can reload the version information
Telemetry.init() again. This may also help, if server-side data
has been updated (which happens multiple times as day). Further more, this will
potentially loading new code. This can help if you have long running code using
this module, though long running code using this module is not recommended.
telemetry-js-node library is released on the MPL license,
LICENSE for details.