mirror of
https://github.com/prometheus/statsd_exporter.git
synced 2024-11-13 10:51:06 +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.
|
||||
metricRe := strings.Replace(currentMapping.Match, ".", "\\.", -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 {
|
||||
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 == "" {
|
||||
|
|
|
@ -310,7 +310,7 @@ mappings:
|
|||
{
|
||||
config: `---
|
||||
mappings:
|
||||
- match: "*\.foo"
|
||||
- match: "*\\.foo"
|
||||
match_type: regex
|
||||
name: "foo"
|
||||
labels: {}
|
||||
|
|
Loading…
Reference in a new issue