config.go 911 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package perf_metrics_setting
  2. import "github.com/QuantumNous/new-api/setting/config"
  3. type PerfMetricsSetting struct {
  4. Enabled bool `json:"enabled"`
  5. FlushInterval int `json:"flush_interval"`
  6. BucketTime string `json:"bucket_time"`
  7. RetentionDays int `json:"retention_days"`
  8. }
  9. var perfMetricsSetting = PerfMetricsSetting{
  10. Enabled: true,
  11. FlushInterval: 5,
  12. BucketTime: "hour",
  13. RetentionDays: 0,
  14. }
  15. func init() {
  16. config.GlobalConfig.Register("perf_metrics_setting", &perfMetricsSetting)
  17. }
  18. func GetSetting() PerfMetricsSetting {
  19. return perfMetricsSetting
  20. }
  21. func GetBucketSeconds() int64 {
  22. switch perfMetricsSetting.BucketTime {
  23. case "minute":
  24. return 60
  25. case "5min":
  26. return 300
  27. case "hour":
  28. return 3600
  29. default:
  30. return 3600
  31. }
  32. }
  33. func GetFlushIntervalMinutes() int {
  34. if perfMetricsSetting.FlushInterval < 1 {
  35. return 1
  36. }
  37. return perfMetricsSetting.FlushInterval
  38. }