@@ -176,24 +176,38 @@ tracker.collectServerStats = function() {
176176 stats . getServer ( common . db , function ( data ) {
177177 common . db . collection ( "apps" ) . aggregate ( [ { $project : { last_data : 1 } } , { $sort : { "last_data" : - 1 } } , { $limit : 1 } ] , { allowDiskUse : true } , function ( errApps , resApps ) {
178178 common . db . collection ( "members" ) . aggregate ( [ { $project : { last_login : 1 } } , { $sort : { "last_login" : - 1 } } , { $limit : 1 } ] , { allowDiskUse : true } , function ( errLogin , resLogin ) {
179- if ( resApps && resApps [ 0 ] ) {
180- props . last_data = resApps [ 0 ] . last_data || 0 ;
181- }
182- if ( resLogin && resLogin [ 0 ] ) {
183- props . last_login = resLogin [ 0 ] . last_login || 0 ;
184- }
185- if ( data ) {
186- if ( data . app_users ) {
187- props . app_users = data . app_users ;
179+ // Aggregate total list lengths across all documents in events collection
180+ common . db . collection ( "events" ) . aggregate ( [
181+ {
182+ $group : {
183+ _id : null ,
184+ totalListLength : { $sum : { $size : "$list" } }
185+ }
186+ }
187+ ] , { allowDiskUse : true } , function ( errEvents , resEvents ) {
188+
189+ if ( resApps && resApps [ 0 ] ) {
190+ props . last_data = resApps [ 0 ] . last_data || 0 ;
188191 }
189- if ( data . apps ) {
190- props . apps = data . apps ;
192+ if ( resLogin && resLogin [ 0 ] ) {
193+ props . last_login = resLogin [ 0 ] . last_login || 0 ;
191194 }
192- if ( data . users ) {
193- props . users = data . users ;
195+ if ( resEvents && resEvents [ 0 ] ) {
196+ props . total_events = resEvents [ 0 ] . totalListLength || 0 ;
194197 }
195- }
196- resolve ( props ) ;
198+ if ( data ) {
199+ if ( data . app_users ) {
200+ props . app_users = data . app_users ;
201+ }
202+ if ( data . apps ) {
203+ props . apps = data . apps ;
204+ }
205+ if ( data . users ) {
206+ props . users = data . users ;
207+ }
208+ }
209+ resolve ( props ) ;
210+ } ) ;
197211 } ) ;
198212 } ) ;
199213 } ) ;
0 commit comments