|
|
@@ -15,6 +15,7 @@ import (
|
|
|
)
|
|
|
|
|
|
var metricsLogger log.Logger = log.New("metrics")
|
|
|
+var metricPublishCounter int64 = 0
|
|
|
|
|
|
func Init() {
|
|
|
settings := readSettings()
|
|
|
@@ -45,12 +46,35 @@ func sendMetrics(settings *MetricSettings) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ updateTotalStats()
|
|
|
+
|
|
|
metrics := MetricStats.GetSnapshots()
|
|
|
for _, publisher := range settings.Publishers {
|
|
|
publisher.Publish(metrics)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func updateTotalStats() {
|
|
|
+
|
|
|
+ // every interval also publish totals
|
|
|
+ metricPublishCounter++
|
|
|
+ if metricPublishCounter%2 == 0 {
|
|
|
+ metricsLogger.Info("Stats!")
|
|
|
+
|
|
|
+ // get stats
|
|
|
+ statsQuery := m.GetSystemStatsQuery{}
|
|
|
+ if err := bus.Dispatch(&statsQuery); err != nil {
|
|
|
+ metricsLogger.Error("Failed to get system stats", "error", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ M_StatTotal_Dashboards.Update(statsQuery.Result.DashboardCount)
|
|
|
+ M_StatTotal_Users.Update(statsQuery.Result.UserCount)
|
|
|
+ M_StatTotal_Playlists.Update(statsQuery.Result.PlaylistCount)
|
|
|
+ M_StatTotal_Orgs.Update(statsQuery.Result.OrgCount)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func sendUsageStats() {
|
|
|
if !setting.ReportingEnabled {
|
|
|
return
|