diff --git a/lib/metrics.js b/lib/metrics.js
index a5961661a78e9548535b84c247b1429949ae7766..399dea903be529ff2d481c04dd602b1b18b087f1 100644
--- a/lib/metrics.js
+++ b/lib/metrics.js
@@ -21,7 +21,8 @@ const
 winston = require("winston"),
 configuration = require("./configuration"),
 path = require('path'),
-fs = require('fs');
+fs = require('fs'),
+urlparse = require('urlparse');
 
 // go through the configuration and determine log location
 // for now we only log to one place
@@ -78,9 +79,17 @@ exports.userEntry = function(req) {
   var ipAddress = req.connection.remoteAddress;
   if (req.headers['x-real-ip']) ipAddress = req.headers['x-real-ip'];
 
+  var referer = null;
+  try {
+    // don't log more than we need
+    referer = urlparse(req.headers['referer']).originOnly().toString();
+  } catch(e) {
+    // ignore malformed referrers.  just log null
+  }
+
   exports.report('signin', {
     browser: req.headers['user-agent'],
-    rp: req.headers['referer'],
+    rp: referer,
     // IP address (this probably needs to be replaced with the X-forwarded-for value
     ip: ipAddress
   });