mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-25 05:34:05 -08:00
Merge pull request #14004 from liam-howe-maersk/implement-config-marshal
configuration: Implement IsZero for relabel.Regex to remove default regex
This commit is contained in:
commit
cb7306155b
|
@ -206,6 +206,11 @@ func (re Regexp) MarshalYAML() (interface{}, error) {
|
|||
return nil, nil
|
||||
}
|
||||
|
||||
// IsZero implements the yaml.IsZeroer interface.
|
||||
func (re Regexp) IsZero() bool {
|
||||
return re.Regexp == DefaultRelabelConfig.Regex.Regexp
|
||||
}
|
||||
|
||||
// String returns the original string used to compile the regular expression.
|
||||
func (re Regexp) String() string {
|
||||
str := re.Regexp.String()
|
||||
|
|
|
@ -851,3 +851,52 @@ func BenchmarkRelabel(b *testing.B) {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfig_UnmarshalThenMarshal(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
inputYaml string
|
||||
}{
|
||||
{
|
||||
name: "Values provided",
|
||||
inputYaml: `source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port]
|
||||
separator: ;
|
||||
regex: \\d+
|
||||
target_label: __meta_kubernetes_pod_container_port_number
|
||||
replacement: $1
|
||||
action: replace
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "No regex provided",
|
||||
inputYaml: `source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port]
|
||||
separator: ;
|
||||
target_label: __meta_kubernetes_pod_container_port_number
|
||||
replacement: $1
|
||||
action: keepequal
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "Default regex provided",
|
||||
inputYaml: `source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port]
|
||||
separator: ;
|
||||
regex: (.*)
|
||||
target_label: __meta_kubernetes_pod_container_port_number
|
||||
replacement: $1
|
||||
action: replace
|
||||
`,
|
||||
},
|
||||
}
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
unmarshalled := Config{}
|
||||
err := yaml.Unmarshal([]byte(test.inputYaml), &unmarshalled)
|
||||
require.NoError(t, err)
|
||||
|
||||
marshalled, err := yaml.Marshal(&unmarshalled)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, test.inputYaml, string(marshalled))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue