summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-01-20 15:24:53 -0500
committerenahum <nahumhbl@gmail.com>2017-01-20 17:24:53 -0300
commit11a688d3813646aeb97f58b61c083b019da66cfc (patch)
tree2d1c7085837505fb49ecba4dd49c8a34b0a5888c /api
parent66dddbdb7895a87e858f9238e546cedc6e05e34e (diff)
downloadchat-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.go26
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 {