admin.go 936 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package api
  2. import (
  3. "strings"
  4. "github.com/grafana/grafana/pkg/bus"
  5. m "github.com/grafana/grafana/pkg/models"
  6. "github.com/grafana/grafana/pkg/setting"
  7. )
  8. func AdminGetSettings(c *m.ReqContext) {
  9. settings := make(map[string]interface{})
  10. for _, section := range setting.Cfg.Sections() {
  11. jsonSec := make(map[string]interface{})
  12. settings[section.Name()] = jsonSec
  13. for _, key := range section.Keys() {
  14. keyName := key.Name()
  15. value := key.Value()
  16. if strings.Contains(keyName, "secret") || strings.Contains(keyName, "password") || (strings.Contains(keyName, "provider_config")) {
  17. value = "************"
  18. }
  19. jsonSec[keyName] = value
  20. }
  21. }
  22. c.JSON(200, settings)
  23. }
  24. func AdminGetStats(c *m.ReqContext) {
  25. statsQuery := m.GetAdminStatsQuery{}
  26. if err := bus.Dispatch(&statsQuery); err != nil {
  27. c.JsonApiErr(500, "Failed to get admin stats from database", err)
  28. return
  29. }
  30. c.JSON(200, statsQuery.Result)
  31. }