mirror of https://github.com/grafana/grafana.git
				
				
				
			use sql builder for the get system stats sql query
This commit is contained in:
		
							parent
							
								
									fbc44025dc
								
							
						
					
					
						commit
						c9e9f25699
					
				|  | @ -32,60 +32,43 @@ func GetDataSourceAccessStats(query *m.GetDataSourceAccessStatsQuery) error { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func GetSystemStats(query *m.GetSystemStatsQuery) error { | func GetSystemStats(query *m.GetSystemStatsQuery) error { | ||||||
| 	var rawSql = `SELECT | 	sb := &SqlBuilder{} | ||||||
| 			( | 	sb.Write("SELECT ") | ||||||
| 				SELECT COUNT(*) | 	sb.Write(`(SELECT COUNT(*) FROM ` + dialect.Quote("user") + `) AS users,`) | ||||||
| 		FROM ` + dialect.Quote("user") + ` | 	sb.Write(`(SELECT COUNT(*) FROM ` + dialect.Quote("org") + `) AS orgs,`) | ||||||
| 	  ) AS users, | 	sb.Write(`(SELECT COUNT(*) FROM ` + dialect.Quote("dashboard") + `) AS dashboards,`) | ||||||
| 			( | 	sb.Write(`(SELECT COUNT(*) FROM ` + dialect.Quote("data_source") + `) AS datasources,`) | ||||||
| 				SELECT COUNT(*) | 	sb.Write(`(SELECT COUNT(*) FROM ` + dialect.Quote("star") + `) AS stars,`) | ||||||
| 		FROM ` + dialect.Quote("org") + ` | 	sb.Write(`(SELECT COUNT(*) FROM ` + dialect.Quote("playlist") + `) AS playlists,`) | ||||||
| 	  ) AS orgs, | 	sb.Write(`(SELECT COUNT(*) FROM ` + dialect.Quote("alert") + `) AS alerts,`) | ||||||
| 	  ( |  | ||||||
| 		SELECT COUNT(*) |  | ||||||
| 		FROM ` + dialect.Quote("dashboard") + ` |  | ||||||
| 	  ) AS dashboards, |  | ||||||
| 		( |  | ||||||
| 		SELECT COUNT(*) |  | ||||||
| 		FROM ` + dialect.Quote("data_source") + ` |  | ||||||
| 	  ) AS datasources, |  | ||||||
| 	  ( |  | ||||||
| 		SELECT COUNT(*) FROM ` + dialect.Quote("star") + ` |  | ||||||
| 	  ) AS stars, |  | ||||||
| 	  ( |  | ||||||
| 		SELECT COUNT(*) |  | ||||||
| 		FROM ` + dialect.Quote("playlist") + ` |  | ||||||
| 	  ) AS playlists, |  | ||||||
| 	  ( |  | ||||||
| 		SELECT COUNT(*) |  | ||||||
| 		FROM ` + dialect.Quote("alert") + ` |  | ||||||
| 	  ) AS alerts, |  | ||||||
| 		( |  | ||||||
| 			SELECT COUNT(*) FROM ` + dialect.Quote("user") + ` where last_seen_at > ? |  | ||||||
| 		) as active_users, |  | ||||||
| 		( |  | ||||||
| 			SELECT COUNT(id) FROM ` + dialect.Quote("dashboard") + ` where is_folder = ? |  | ||||||
| 		) as folders, |  | ||||||
| 		( |  | ||||||
| 			SELECT COUNT(acl.id) FROM ` + dialect.Quote("dashboard_acl") + ` as acl inner join ` + dialect.Quote("dashboard") + ` as d on d.id = acl.dashboard_id where d.is_folder = ? |  | ||||||
| 	  ) as dashboard_permissions, |  | ||||||
| 		( |  | ||||||
| 			SELECT COUNT(acl.id) FROM ` + dialect.Quote("dashboard_acl") + ` as acl inner join ` + dialect.Quote("dashboard") + ` as d on d.id = acl.dashboard_id where d.is_folder = ? |  | ||||||
| 		) as folder_permissions, |  | ||||||
| 		( |  | ||||||
| 			SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_provisioning") + ` |  | ||||||
| 		) as provisioned_dashboards, |  | ||||||
| 		( |  | ||||||
| 			SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_snapshot") + ` |  | ||||||
| 		) as snapshots, |  | ||||||
| 		( |  | ||||||
| 			SELECT COUNT(id) FROM ` + dialect.Quote("team") + ` |  | ||||||
| 		) as teams |  | ||||||
| 			` |  | ||||||
| 
 | 
 | ||||||
| 	activeUserDeadlineDate := time.Now().Add(-activeUserTimeLimit) | 	activeUserDeadlineDate := time.Now().Add(-activeUserTimeLimit) | ||||||
|  | 	sb.Write(`(SELECT COUNT(*) FROM `+dialect.Quote("user")+` where last_seen_at > ?) AS active_users,`, activeUserDeadlineDate) | ||||||
|  | 
 | ||||||
|  | 	sb.Write(`(SELECT COUNT(id) FROM `+dialect.Quote("dashboard")+` where is_folder = ?) AS folders,`, dialect.BooleanStr(true)) | ||||||
|  | 
 | ||||||
|  | 	sb.Write(`( | ||||||
|  | 		SELECT COUNT(acl.id) | ||||||
|  | 		FROM `+dialect.Quote("dashboard_acl")+` as acl | ||||||
|  | 			inner join `+dialect.Quote("dashboard")+` as d | ||||||
|  | 			on d.id = acl.dashboard_id | ||||||
|  | 		WHERE d.is_folder = ? | ||||||
|  | 	) AS dashboard_permissions,`, dialect.BooleanStr(false)) | ||||||
|  | 
 | ||||||
|  | 	sb.Write(`( | ||||||
|  | 		SELECT COUNT(acl.id) | ||||||
|  | 		FROM `+dialect.Quote("dashboard_acl")+` as acl | ||||||
|  | 			inner join `+dialect.Quote("dashboard")+` as d | ||||||
|  | 			on d.id = acl.dashboard_id | ||||||
|  | 		WHERE d.is_folder = ? | ||||||
|  | 	) AS folder_permissions,`, dialect.BooleanStr(true)) | ||||||
|  | 
 | ||||||
|  | 	sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_provisioning") + `) AS provisioned_dashboards,`) | ||||||
|  | 	sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_snapshot") + `) AS snapshots,`) | ||||||
|  | 	sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("team") + `) AS teams`) | ||||||
|  | 
 | ||||||
| 	var stats m.SystemStats | 	var stats m.SystemStats | ||||||
| 	_, err := x.SQL(rawSql, activeUserDeadlineDate, dialect.BooleanStr(true), dialect.BooleanStr(false), dialect.BooleanStr(true)).Get(&stats) | 	_, err := x.SQL(sb.GetSqlString(), sb.params...).Get(&stats) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue