diff --git a/pkg/api/admin.go b/pkg/api/admin.go index 1264cfa12eb..d7f5a240416 100644 --- a/pkg/api/admin.go +++ b/pkg/api/admin.go @@ -3,10 +3,10 @@ package api import ( "strings" + "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/middleware" + m "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/setting" - "github.com/grafana/grafana/pkg/bus" - m "github.com/grafana/grafana/pkg/models" ) func AdminGetSettings(c *middleware.Context) { @@ -32,12 +32,12 @@ func AdminGetSettings(c *middleware.Context) { func AdminGetStats(c *middleware.Context) { - statsQuery := m.GetAdminStatsQuery{} - - if err := bus.Dispatch(&statsQuery); err != nil { - c.JsonApiErr(500, "Failed to get admin stats from database", err) - return - } + statsQuery := m.GetAdminStatsQuery{} - c.JSON(200, statsQuery.Result) + if err := bus.Dispatch(&statsQuery); err != nil { + c.JsonApiErr(500, "Failed to get admin stats from database", err) + return + } + + c.JSON(200, statsQuery.Result) } diff --git a/pkg/api/api.go b/pkg/api/api.go index 7a4fc684497..32ccd5dc793 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -40,7 +40,7 @@ func Register(r *macaron.Macaron) { r.Get("/admin/users/edit/:id", reqGrafanaAdmin, Index) r.Get("/admin/orgs", reqGrafanaAdmin, Index) r.Get("/admin/orgs/edit/:id", reqGrafanaAdmin, Index) - r.Get("/admin/stats", reqGrafanaAdmin, Index) + r.Get("/admin/stats", reqGrafanaAdmin, Index) r.Get("/apps", reqSignedIn, Index) r.Get("/apps/edit/*", reqSignedIn, Index) @@ -211,7 +211,7 @@ func Register(r *macaron.Macaron) { r.Delete("/users/:id", AdminDeleteUser) r.Get("/users/:id/quotas", wrap(GetUserQuotas)) r.Put("/users/:id/quotas/:target", bind(m.UpdateUserQuotaCmd{}), wrap(UpdateUserQuota)) - r.Get("/stats", AdminGetStats) + r.Get("/stats", AdminGetStats) }, reqGrafanaAdmin) // rendering diff --git a/pkg/models/stats.go b/pkg/models/stats.go index 8fd7614ffd2..6d8618d6ddf 100644 --- a/pkg/models/stats.go +++ b/pkg/models/stats.go @@ -20,16 +20,16 @@ type GetDataSourceStatsQuery struct { } type AdminStats struct { - UserCount int - OrgCount int - DashboardCount int - DBSnapshotCount int - DBTagCount int - DataSourceCount int - PlaylistCount int - StarredDBCount int + UserCount int `json:"user_count"` + OrgCount int `json:"org_count"` + DashboardCount int `json:"dashboard_count"` + DbSnapshotCount int `json:"db_snapshot_count"` + DbTagCount int `json:"db_tag_count"` + DataSourceCount int `json:"data_source_count"` + PlaylistCount int `json:"playlist_count"` + StarredDbCount int `json:"starred_db_count"` } type GetAdminStatsQuery struct { - Result *AdminStats + Result *AdminStats } diff --git a/pkg/services/sqlstore/stats.go b/pkg/services/sqlstore/stats.go index c57128bc76a..3c9325fa149 100644 --- a/pkg/services/sqlstore/stats.go +++ b/pkg/services/sqlstore/stats.go @@ -8,7 +8,7 @@ import ( func init() { bus.AddHandler("sql", GetSystemStats) bus.AddHandler("sql", GetDataSourceStats) - bus.AddHandler("sql", GetAdminStats) + bus.AddHandler("sql", GetAdminStats) } func GetDataSourceStats(query *m.GetDataSourceStatsQuery) error { @@ -49,7 +49,7 @@ func GetSystemStats(query *m.GetSystemStatsQuery) error { } func GetAdminStats(query *m.GetAdminStatsQuery) error { - var rawSql = `SELECT + var rawSql = `SELECT ( SELECT COUNT(*) FROM ` + dialect.Quote("user") + ` @@ -73,23 +73,23 @@ func GetAdminStats(query *m.GetAdminStatsQuery) error { ( SELECT COUNT(*) FROM ` + dialect.Quote("data_source") + ` - ) AS datasource_count, + ) AS data_source_count, ( SELECT COUNT(*) FROM ` + dialect.Quote("playlist") + ` ) AS playlist_count, ( - SELECT DISTINCT(dashboard_id) + SELECT COUNT (DISTINCT ` + dialect.Quote("dashboard_id") + ` ) FROM ` + dialect.Quote("star") + ` ) AS starred_db_count ` - var stats m.AdminStats - _, err := x.Sql(rawSql).Get(&stats) - if err != nil { - return err - } + var stats m.AdminStats + _, err := x.Sql(rawSql).Get(&stats) + if err != nil { + return err + } - query.Result = &stats - return err + query.Result = &stats + return err }