From c5b2d69a9a3e5de120208800c100f4f4706a4d0c Mon Sep 17 00:00:00 2001
From: Sean McArthur <sean.monstar@gmail.com>
Date: Thu, 21 Jun 2012 13:11:11 -0700
Subject: [PATCH] moved node-statsd to optionalDependency

also prevents error from require node-statsd if it wasn't installed,
but logs error if config says it should be enabled.
---
 lib/statsd.js | 25 ++++++++++++++++++-------
 package.json  |  4 +++-
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/lib/statsd.js b/lib/statsd.js
index f7278dca5..d18f24e75 100644
--- a/lib/statsd.js
+++ b/lib/statsd.js
@@ -3,8 +3,15 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const
-StatsD = require("node-statsd").StatsD,
-config = require('./configuration');
+config = require('./configuration'),
+logger = require('./logging').logger;
+
+var StatsD = false;
+try {
+  StatsD = require("node-statsd").StatsD;
+} catch (requireError) {
+  // its ok, its an optionalDependency
+}
 
 const PREFIX = "browserid." + config.get('process_type') + ".";
 
@@ -23,11 +30,15 @@ module.exports = {
 var statsd_config = config.get('statsd');
 
 if (statsd_config && statsd_config.enabled) {
-  var options = {};
-  options["host"] = options["host"] || "localhost";
-  options["port"] = options["port"] || 8125;
-
-  statsd = new StatsD(options["host"], options["port"]);
+  if (StatsD) {
+    var options = {};
+    options["host"] = options["host"] || "localhost";
+    options["port"] = options["port"] || 8125;
+
+    statsd = new StatsD(options["host"], options["port"]);
+  } else {
+	log.error('statsd config enabled, but node-statsd not installed.');
+  }
 }
 
 process.on('uncaughtException', function(err) {
diff --git a/package.json b/package.json
index 1e45de688..66c1b4322 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,6 @@
         "mustache": "0.3.1-dev",
         "jwcrypto": "0.3.2",
         "mysql": "0.9.5",
-        "node-statsd": "https://github.com/downloads/lloyd/node-statsd/0509f85.tgz",
         "nodemailer": "0.1.24",
         "mkdirp": "0.3.0",
         "optimist": "0.2.8",
@@ -34,6 +33,9 @@
         "validator": "0.4.9",
         "winston": "0.6.2"
     },
+    "optionalDependencies": {
+        "node-statsd": "https://github.com/downloads/lloyd/node-statsd/0509f85.tgz"
+    },
     "devDependencies": {
         "vows": "0.5.13",
         "awsbox": "0.2.12",
-- 
GitLab