diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-01-20 15:24:53 -0500 |
---|---|---|
committer | enahum <nahumhbl@gmail.com> | 2017-01-20 17:24:53 -0300 |
commit | 11a688d3813646aeb97f58b61c083b019da66cfc (patch) | |
tree | 2d1c7085837505fb49ecba4dd49c8a34b0a5888c /api | |
parent | 66dddbdb7895a87e858f9238e546cedc6e05e34e (diff) | |
download | chat-11a688d3813646aeb97f58b61c083b019da66cfc.tar.gz chat-11a688d3813646aeb97f58b61c083b019da66cfc.tar.bz2 chat-11a688d3813646aeb97f58b61c083b019da66cfc.zip |
Adding active users statistics to system console (#5141)
Diffstat (limited to 'api')
-rw-r--r-- | api/admin.go | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/api/admin.go b/api/admin.go index 300796bad..4e4d21b0b 100644 --- a/api/admin.go +++ b/api/admin.go @@ -25,6 +25,11 @@ import ( "github.com/mssola/user_agent" ) +const ( + DAY_MILLISECONDS = 24 * 60 * 60 * 1000 + MONTH_MILLISECONDS = 31 * DAY_MILLISECONDS +) + func InitAdmin() { l4g.Debug(utils.T("api.admin.init.debug")) @@ -382,7 +387,7 @@ func getAnalytics(c *Context, w http.ResponseWriter, r *http.Request) { } if name == "standard" { - var rows model.AnalyticsRows = make([]*model.AnalyticsRow, 8) + var rows model.AnalyticsRows = make([]*model.AnalyticsRow, 10) rows[0] = &model.AnalyticsRow{"channel_open_count", 0} rows[1] = &model.AnalyticsRow{"channel_private_count", 0} rows[2] = &model.AnalyticsRow{"post_count", 0} @@ -391,6 +396,8 @@ func getAnalytics(c *Context, w http.ResponseWriter, r *http.Request) { rows[5] = &model.AnalyticsRow{"total_websocket_connections", 0} rows[6] = &model.AnalyticsRow{"total_master_db_connections", 0} rows[7] = &model.AnalyticsRow{"total_read_db_connections", 0} + rows[8] = &model.AnalyticsRow{"daily_active_users", 0} + rows[9] = &model.AnalyticsRow{"monthly_active_users", 0} openChan := app.Srv.Store.Channel().AnalyticsTypeCount(teamId, model.CHANNEL_OPEN) privateChan := app.Srv.Store.Channel().AnalyticsTypeCount(teamId, model.CHANNEL_PRIVATE) @@ -406,6 +413,9 @@ func getAnalytics(c *Context, w http.ResponseWriter, r *http.Request) { postChan = app.Srv.Store.Post().AnalyticsPostCount(teamId, false, false) } + dailyActiveChan := app.Srv.Store.User().AnalyticsActiveCount(DAY_MILLISECONDS) + monthlyActiveChan := app.Srv.Store.User().AnalyticsActiveCount(MONTH_MILLISECONDS) + if r := <-openChan; r.Err != nil { c.Err = r.Err return @@ -477,6 +487,20 @@ func getAnalytics(c *Context, w http.ResponseWriter, r *http.Request) { rows[7].Value = float64(app.Srv.Store.TotalReadDbConnections()) } + if r := <-dailyActiveChan; r.Err != nil { + c.Err = r.Err + return + } else { + rows[8].Value = float64(r.Data.(int64)) + } + + if r := <-monthlyActiveChan; r.Err != nil { + c.Err = r.Err + return + } else { + rows[9].Value = float64(r.Data.(int64)) + } + w.Write([]byte(rows.ToJson())) } else if name == "post_counts_day" { if skipIntensiveQueries { |