Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
node.js module for using telemetry.js to access telemetry aggregates from Mozilla Firefox
JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.gitignore
LICENSE
README.md
index.js
package.json
test.js

README.md

telemetry.js for node.js

The telemetry-js-node module loads telemetry.js from telemetry.mozilla.org/v1/telemetry.js and make the functions available in node.js, so that telemetry dashboard aggregates can be analyzed server-side.

Warning, this module downloads and loads Javascript code from 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 duly warned.

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.

Usage

This module can be used exactly like telemetry.js, refer to the documentation for telemetry.js for details on how to use it. Below is just a small example.

var Telemetry = require('telemetry-js-node');

// Initialize telemetry.js
Telemetry.init(function() {
  // Find a version
  var version = Telemetry.versions()[0];

  // Load measures
  Telemetry.measures(version, function(measures) {

    // Print measures available
    console.log("Measures available:");
    Object.keys(measures).forEach(function(measure) {
      console.log(measure);
    });
  });

});

Remark, until 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 by calling Telemetry.init() again. This may also help, if server-side data has been updated (which happens multiple times as day). Further more, this will also reload telemetry.js from telemetry.mozilla.org/v1/telemetry.js, hence, 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.

License

The telemetry-js-node library is released on the MPL license, see the LICENSE for details.

Something went wrong with that request. Please try again.