mirror of
https://github.com/prometheus/statsd_exporter.git
synced 2024-11-26 09:11:01 +00:00
Merge pull request #126 from yuiofthesun/avoid-regex-panic
Avoid regex panic
This commit is contained in:
commit
16865d75b7
2 changed files with 11 additions and 3 deletions
12
mapper.go
12
mapper.go
|
@ -106,9 +106,17 @@ func (m *metricMapper) initFromYAMLString(fileContents string) error {
|
||||||
// can use to match metrics later on.
|
// can use to match metrics later on.
|
||||||
metricRe := strings.Replace(currentMapping.Match, ".", "\\.", -1)
|
metricRe := strings.Replace(currentMapping.Match, ".", "\\.", -1)
|
||||||
metricRe = strings.Replace(metricRe, "*", "([^.]*)", -1)
|
metricRe = strings.Replace(metricRe, "*", "([^.]*)", -1)
|
||||||
currentMapping.regex = regexp.MustCompile("^" + metricRe + "$")
|
if regex, err := regexp.Compile("^" + metricRe + "$"); err != nil {
|
||||||
|
return fmt.Errorf("invalid match %s. cannot compile regex in mapping: %v", currentMapping.Match, err)
|
||||||
|
} else {
|
||||||
|
currentMapping.regex = regex
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
currentMapping.regex = regexp.MustCompile(currentMapping.Match)
|
if regex, err := regexp.Compile(currentMapping.Match); err != nil {
|
||||||
|
return fmt.Errorf("invalid regex %s in mapping: %v", currentMapping.Match, err)
|
||||||
|
} else {
|
||||||
|
currentMapping.regex = regex
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if currentMapping.TimerType == "" {
|
if currentMapping.TimerType == "" {
|
||||||
|
|
|
@ -310,7 +310,7 @@ mappings:
|
||||||
{
|
{
|
||||||
config: `---
|
config: `---
|
||||||
mappings:
|
mappings:
|
||||||
- match: "*\.foo"
|
- match: "*\\.foo"
|
||||||
match_type: regex
|
match_type: regex
|
||||||
name: "foo"
|
name: "foo"
|
||||||
labels: {}
|
labels: {}
|
||||||
|
|
Loading…
Reference in a new issue