From fb6aa7ad5ce79ae0738ebf1cada0e834c33b0ef2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 5 Feb 2017 03:19:04 +0100 Subject: Add tracking of delay to streaming API --- streaming/index.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'streaming/index.js') diff --git a/streaming/index.js b/streaming/index.js index 16dda5c1e..4f0df1ea5 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -101,7 +101,15 @@ const streamFrom = (redisClient, id, req, output, needsFiltering = false) => { log.verbose(`Starting stream from ${id} for ${req.accountId}`) redisClient.on('message', (channel, message) => { - const { event, payload } = JSON.parse(message) + const { event, payload, queued_at } = JSON.parse(message) + + const transmit = () => { + const now = new Date().getTime() + const delta = now - queued_at; + + log.silly(`Transmitting for ${req.accountId}: ${event} ${payload} Delay: ${delta}ms`) + output(event, payload) + } // Only messages that may require filtering are statuses, since notifications // are already personalized and deletes do not matter @@ -127,13 +135,11 @@ const streamFrom = (redisClient, id, req, output, needsFiltering = false) => { return } - log.silly(`Transmitting for ${req.accountId}: ${event} ${payload}`) - output(event, payload) + transmit() }) }) } else { - log.silly(`Transmitting for ${req.accountId}: ${event} ${payload}`) - output(event, payload) + transmit() } }) -- cgit