From d961d1bfa340d180ffb6e3ade021e923abae5f88 Mon Sep 17 00:00:00 2001 From: The LateRooms Group Date: Wed, 3 Jul 2013 13:50:16 +0100 Subject: [PATCH 1/4] Added optional expiry time of events Set event_ttl_seconds in bin\collector-config.js to specify the time in seconds that an event will be MongoDb --- lib/cube/event.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/cube/event.js b/lib/cube/event.js index 4825904e..05e0e740 100644 --- a/lib/cube/event.js +++ b/lib/cube/event.js @@ -6,7 +6,8 @@ var mongodb = require("mongodb"), tiers = require("./tiers"), types = require("./types"), bisect = require("./bisect"), - ObjectID = mongodb.ObjectID; + ObjectID = mongodb.ObjectID, + collector_config = require("../../bin/collector-config"); var type_re = /^[a-z][a-zA-Z0-9_]+$/, invalidate = {$set: {i: true}}, @@ -22,6 +23,9 @@ var streamDelayDefault = 5000, // How frequently to invalidate metrics after receiving events. var invalidateInterval = 5000; +// Set the Time To Live interval in seconds from the collector config +var expireEventsAfterSeconds = collector_config.event_ttl_seconds; + exports.putter = function(db) { var collection = types(db), knownByType = {}, @@ -63,7 +67,13 @@ exports.putter = function(db) { if (names.length) return saveEvents(); // Events are indexed by time. - events.ensureIndex({"t": 1}, handle); + if (expireEventsAfterSeconds) { + // Events are indexed by time and expired after a supplied period (expireEventsAfterSeconds). + events.ensureIndex({"t": 1}, { expireAfterSeconds: expireEventsAfterSeconds }, handle); + } + else { + events.ensureIndex({"t": 1}, handle); + } // Create a capped collection for metrics. Three indexes are required: one // for finding metrics, one (_id) for updating, and one for invalidation. From 0e06ae00e90bcedbf91c55e7e6ef2b7abe148a1f Mon Sep 17 00:00:00 2001 From: The LateRooms Group Date: Wed, 3 Jul 2013 14:45:50 +0100 Subject: [PATCH 2/4] Fixed tab/space indentation problem --- lib/cube/event.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/cube/event.js b/lib/cube/event.js index 05e0e740..a8760334 100644 --- a/lib/cube/event.js +++ b/lib/cube/event.js @@ -7,7 +7,7 @@ var mongodb = require("mongodb"), types = require("./types"), bisect = require("./bisect"), ObjectID = mongodb.ObjectID, - collector_config = require("../../bin/collector-config"); + collector_config = require("../../bin/collector-config"); var type_re = /^[a-z][a-zA-Z0-9_]+$/, invalidate = {$set: {i: true}}, @@ -66,14 +66,14 @@ exports.putter = function(db) { var events = collection(type).events; if (names.length) return saveEvents(); - // Events are indexed by time. - if (expireEventsAfterSeconds) { - // Events are indexed by time and expired after a supplied period (expireEventsAfterSeconds). - events.ensureIndex({"t": 1}, { expireAfterSeconds: expireEventsAfterSeconds }, handle); - } - else { - events.ensureIndex({"t": 1}, handle); - } + // Events are indexed by time. + if (expireEventsAfterSeconds) { + // Events are indexed by time and expired after a supplied period (expireEventsAfterSeconds). + events.ensureIndex({"t": 1}, { expireAfterSeconds: expireEventsAfterSeconds }, handle); + } + else { + events.ensureIndex({"t": 1}, handle); + } // Create a capped collection for metrics. Three indexes are required: one // for finding metrics, one (_id) for updating, and one for invalidation. From fe4c6d66a67c651a35a9c87cade5d32ff3c4b45e Mon Sep 17 00:00:00 2001 From: The LateRooms Group Date: Wed, 3 Jul 2013 15:11:39 +0100 Subject: [PATCH 3/4] Fixed tab/space indentation problem --- lib/cube/event.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/cube/event.js b/lib/cube/event.js index a8760334..254a4148 100644 --- a/lib/cube/event.js +++ b/lib/cube/event.js @@ -66,14 +66,14 @@ exports.putter = function(db) { var events = collection(type).events; if (names.length) return saveEvents(); - // Events are indexed by time. - if (expireEventsAfterSeconds) { - // Events are indexed by time and expired after a supplied period (expireEventsAfterSeconds). - events.ensureIndex({"t": 1}, { expireAfterSeconds: expireEventsAfterSeconds }, handle); - } - else { - events.ensureIndex({"t": 1}, handle); - } + // Events are indexed by time. + if (expireEventsAfterSeconds) { + // Events are indexed by time and expired after a supplied period (expireEventsAfterSeconds). + events.ensureIndex({"t": 1}, { expireAfterSeconds: expireEventsAfterSeconds }, handle); + } + else { + events.ensureIndex({"t": 1}, handle); + } // Create a capped collection for metrics. Three indexes are required: one // for finding metrics, one (_id) for updating, and one for invalidation. From 178676820939cd2285895ea4e481d5619168a5f1 Mon Sep 17 00:00:00 2001 From: The LateRooms Group Date: Wed, 3 Jul 2013 16:04:52 +0100 Subject: [PATCH 4/4] Fixed tab/space indentation problem --- lib/cube/event.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cube/event.js b/lib/cube/event.js index 254a4148..36661614 100644 --- a/lib/cube/event.js +++ b/lib/cube/event.js @@ -68,7 +68,7 @@ exports.putter = function(db) { // Events are indexed by time. if (expireEventsAfterSeconds) { - // Events are indexed by time and expired after a supplied period (expireEventsAfterSeconds). + // Events are indexed by time and expired after a supplied period (expireEventsAfterSeconds). events.ensureIndex({"t": 1}, { expireAfterSeconds: expireEventsAfterSeconds }, handle); } else {