statsd: If parsing a value to int fails, try to float and cast to int
fixes #556
This commit is contained in:
parent
55c07f23b0
commit
6647cfc228
|
@ -337,10 +337,15 @@ func (s *Statsd) parseStatsdLine(line string) error {
|
||||||
}
|
}
|
||||||
m.floatvalue = v
|
m.floatvalue = v
|
||||||
case "c", "s":
|
case "c", "s":
|
||||||
|
var v int64
|
||||||
v, err := strconv.ParseInt(pipesplit[0], 10, 64)
|
v, err := strconv.ParseInt(pipesplit[0], 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error: parsing value to int64: %s\n", line)
|
v2, err2 := strconv.ParseFloat(pipesplit[0], 64)
|
||||||
return errors.New("Error Parsing statsd line")
|
if err2 != nil {
|
||||||
|
log.Printf("Error: parsing value to int64: %s\n", line)
|
||||||
|
return errors.New("Error Parsing statsd line")
|
||||||
|
}
|
||||||
|
v = int64(v2)
|
||||||
}
|
}
|
||||||
// If a sample rate is given with a counter, divide value by the rate
|
// If a sample rate is given with a counter, divide value by the rate
|
||||||
if m.samplerate != 0 && m.mtype == "c" {
|
if m.samplerate != 0 && m.mtype == "c" {
|
||||||
|
|
Loading…
Reference in New Issue