diff --git a/docs/metrics.md b/docs/metrics.md index 79e83583..432e00f4 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -68,6 +68,7 @@ Server events allow us to aggregate data about file lifecycle without collecting * `event_properties` * `download_count` downloads completed * `ttl` time remaining before expiry truncated to hour + * `agent` the browser name or first 6 characters of the user agent that made the request ### Client Events diff --git a/server/amplitude.js b/server/amplitude.js index 22e2d389..f4e8f57e 100644 --- a/server/amplitude.js +++ b/server/amplitude.js @@ -45,6 +45,9 @@ function statUploadEvent(data) { size: orderOfMagnitude(data.size), anonymous: data.anonymous }, + event_properties: { + agent: data.agent + }, event_id: 0 }; return sendBatch([event]); @@ -61,6 +64,7 @@ function statDownloadEvent(data) { time: truncateToHour(Date.now()), event_type: 'server_download', event_properties: { + agent: data.agent, download_count: data.download_count, ttl: data.ttl }, @@ -80,6 +84,7 @@ function statDeleteEvent(data) { time: truncateToHour(Date.now()), event_type: 'server_delete', event_properties: { + agent: data.agent, download_count: data.download_count, ttl: data.ttl }, diff --git a/server/bin/dev.js b/server/bin/dev.js index aa64312f..de9b1b08 100644 --- a/server/bin/dev.js +++ b/server/bin/dev.js @@ -12,6 +12,7 @@ const ID_REGEX = '([0-9a-fA-F]{10, 16})'; module.exports = function(app, devServer) { const wsapp = express(); expressWs(wsapp, null, { perMessageDeflate: false }); + routes(wsapp); wsapp.ws('/api/ws', require('../routes/ws')); wsapp.listen(8081, config.listen_address); diff --git a/server/bin/prod.js b/server/bin/prod.js index 72acecd5..56e35f1b 100644 --- a/server/bin/prod.js +++ b/server/bin/prod.js @@ -13,8 +13,8 @@ if (config.sentry_dsn) { const app = express(); expressWs(app, null, { perMessageDeflate: false }); -app.ws('/api/ws', require('../routes/ws')); routes(app); +app.ws('/api/ws', require('../routes/ws')); app.use( express.static(path.resolve(__dirname, '../../dist/'), { diff --git a/server/bin/test.js b/server/bin/test.js index eed28f65..9a4fa5e3 100644 --- a/server/bin/test.js +++ b/server/bin/test.js @@ -7,8 +7,8 @@ const expressWs = require('express-ws'); module.exports = function(app, devServer) { assets.setMiddleware(devServer.middleware); expressWs(app, null, { perMessageDeflate: false }); - app.ws('/api/ws', require('../routes/ws')); routes(app); + app.ws('/api/ws', require('../routes/ws')); tests(app); // webpack-dev-server routes haven't been added yet // so wait for next tick to add 404 handler diff --git a/server/routes/delete.js b/server/routes/delete.js index 757b015b..c0b70bd1 100644 --- a/server/routes/delete.js +++ b/server/routes/delete.js @@ -13,7 +13,8 @@ module.exports = async function(req, res) { ip: req.ip, owner: meta.owner, download_count: meta.dl, - ttl + ttl, + agent: req.ua.browser.name || req.ua.ua.substring(0, 6) }); } catch (e) { res.sendStatus(404); diff --git a/server/routes/download.js b/server/routes/download.js index 006f11c2..acf2253c 100644 --- a/server/routes/download.js +++ b/server/routes/download.js @@ -28,7 +28,8 @@ module.exports = async function(req, res) { ip: req.ip, owner: meta.owner, download_count: dl, - ttl + ttl, + agent: req.ua.browser.name || req.ua.ua.substring(0, 6) }); try { if (dl >= dlimit) { diff --git a/server/routes/ws.js b/server/routes/ws.js index bd0ebb28..c893c99f 100644 --- a/server/routes/ws.js +++ b/server/routes/ws.js @@ -114,7 +114,8 @@ module.exports = function(ws, req) { dlimit, timeLimit, anonymous: !user, - size: limiter.length + size: limiter.length, + agent: req.ua.browser.name || req.ua.ua.substring(0, 6) }); } } catch (e) {