46 lines
911 B
Go
46 lines
911 B
Go
package perf_metrics_setting
|
|
|
|
import "github.com/QuantumNous/new-api/setting/config"
|
|
|
|
type PerfMetricsSetting struct {
|
|
Enabled bool `json:"enabled"`
|
|
FlushInterval int `json:"flush_interval"`
|
|
BucketTime string `json:"bucket_time"`
|
|
RetentionDays int `json:"retention_days"`
|
|
}
|
|
|
|
var perfMetricsSetting = PerfMetricsSetting{
|
|
Enabled: true,
|
|
FlushInterval: 5,
|
|
BucketTime: "hour",
|
|
RetentionDays: 0,
|
|
}
|
|
|
|
func init() {
|
|
config.GlobalConfig.Register("perf_metrics_setting", &perfMetricsSetting)
|
|
}
|
|
|
|
func GetSetting() PerfMetricsSetting {
|
|
return perfMetricsSetting
|
|
}
|
|
|
|
func GetBucketSeconds() int64 {
|
|
switch perfMetricsSetting.BucketTime {
|
|
case "minute":
|
|
return 60
|
|
case "5min":
|
|
return 300
|
|
case "hour":
|
|
return 3600
|
|
default:
|
|
return 3600
|
|
}
|
|
}
|
|
|
|
func GetFlushIntervalMinutes() int {
|
|
if perfMetricsSetting.FlushInterval < 1 {
|
|
return 1
|
|
}
|
|
return perfMetricsSetting.FlushInterval
|
|
}
|