make histogram and summary options always non-nil in defaults struct

Signed-off-by: glightfoot <glightfoot@rsglab.com>
This commit is contained in:
glightfoot 2021-01-28 11:32:44 -05:00
parent 0ea986a974
commit 3673e56e85
2 changed files with 12 additions and 26 deletions

View file

@ -96,14 +96,9 @@ var defaultQuantiles = []metricObjective{
// GetDefaultHistogramOptions returns a copy of the default HistogramOptions
func (m *MetricMapper) GetDefaultHistogramOptions() HistogramOptions {
r := HistogramOptions{}
if m.Defaults.HistogramOptions == nil {
r := m.Defaults.HistogramOptions.Clone()
if len(m.Defaults.HistogramOptions.Buckets) == 0 {
r.Buckets = prometheus.DefBuckets
} else {
r = m.Defaults.HistogramOptions.Clone()
if len(m.Defaults.HistogramOptions.Buckets) == 0 {
r.Buckets = prometheus.DefBuckets
}
}
return r
@ -111,14 +106,9 @@ func (m *MetricMapper) GetDefaultHistogramOptions() HistogramOptions {
// GetDefaultSummaryOptions returns a copy of the default SummaryOptions
func (m *MetricMapper) GetDefaultSummaryOptions() SummaryOptions {
r := SummaryOptions{}
if m.Defaults.SummaryOptions == nil {
r := m.Defaults.SummaryOptions.Clone()
if len(m.Defaults.SummaryOptions.Quantiles) == 0 {
r.Quantiles = defaultQuantiles
} else {
r = m.Defaults.SummaryOptions.Clone()
if len(m.Defaults.SummaryOptions.Quantiles) == 0 {
r.Quantiles = defaultQuantiles
}
}
return r
@ -131,15 +121,11 @@ func (m *MetricMapper) InitFromYAMLString(fileContents string, cacheSize int, op
return err
}
if n.Defaults.HistogramOptions == nil {
n.Defaults.HistogramOptions = &HistogramOptions{Buckets: prometheus.DefBuckets}
} else if n.Defaults.HistogramOptions != nil && len(n.Defaults.HistogramOptions.Buckets) == 0 {
if len(n.Defaults.HistogramOptions.Buckets) == 0 {
n.Defaults.HistogramOptions.Buckets = prometheus.DefBuckets
}
if n.Defaults.SummaryOptions == nil {
n.Defaults.SummaryOptions = &SummaryOptions{Quantiles: defaultQuantiles}
} else if n.Defaults.SummaryOptions != nil && len(n.Defaults.SummaryOptions.Quantiles) == 0 {
if len(n.Defaults.SummaryOptions.Quantiles) == 0 {
n.Defaults.SummaryOptions.Quantiles = defaultQuantiles
}

View file

@ -23,8 +23,8 @@ type mapperConfigDefaults struct {
MatchType MatchType `yaml:"match_type"`
GlobDisableOrdering bool `yaml:"glob_disable_ordering"`
Ttl time.Duration `yaml:"ttl"`
SummaryOptions *SummaryOptions `yaml:"summary_options"`
HistogramOptions *HistogramOptions `yaml:"histogram_options"`
SummaryOptions SummaryOptions `yaml:"summary_options"`
HistogramOptions HistogramOptions `yaml:"histogram_options"`
}
// UnmarshalYAML is a custom unmarshal function to allow use of deprecated config keys
@ -50,13 +50,13 @@ func (d *mapperConfigDefaults) UnmarshalYAML(unmarshal func(interface{}) error)
}
// Use deprecated quantiles if necessary
if tmp.SummaryOptions == nil && tmp.Quantiles != nil {
d.SummaryOptions = &SummaryOptions{Quantiles: tmp.Quantiles}
if len(tmp.SummaryOptions.Quantiles) == 0 && len(tmp.Quantiles) > 0 {
d.SummaryOptions = SummaryOptions{Quantiles: tmp.Quantiles}
}
// Use deprecated buckets if necessary
if tmp.HistogramOptions == nil && tmp.Buckets != nil {
d.HistogramOptions = &HistogramOptions{Buckets: tmp.Buckets}
if len(tmp.HistogramOptions.Buckets) == 0 && len(tmp.Buckets) > 0 {
d.HistogramOptions = HistogramOptions{Buckets: tmp.Buckets}
}
return nil