add verifyValue func for datadog and librato, bail if no good

closes #906
This commit is contained in:
JP
2016-03-22 10:07:01 -05:00
committed by Cameron Sparr
parent 276e7629bd
commit 51d7724255
4 changed files with 49 additions and 14 deletions

View File

@@ -165,6 +165,9 @@ func (l *Librato) buildGauges(m telegraf.Metric) ([]*Gauge, error) {
Name: l.buildGaugeName(m, fieldName),
MeasureTime: m.Time().Unix(),
}
if !gauge.verifyValue(value) {
continue
}
if err := gauge.setValue(value); err != nil {
return gauges, fmt.Errorf("unable to extract value from Fields, %s\n",
err.Error())
@@ -186,6 +189,14 @@ func (l *Librato) buildGauges(m telegraf.Metric) ([]*Gauge, error) {
return gauges, nil
}
func (g *Gauge) verifyValue(v interface{}) bool {
switch v.(type) {
case string:
return false
}
return true
}
func (g *Gauge) setValue(v interface{}) error {
switch d := v.(type) {
case int:

View File

@@ -139,12 +139,8 @@ func TestBuildGauge(t *testing.T) {
},
{
testutil.TestMetric("11234.5", "test7"),
&Gauge{
Name: "value1.test7.value",
MeasureTime: time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC).Unix(),
Value: 11234.5,
},
fmt.Errorf("unable to extract value from Fields, undeterminable type"),
nil,
nil,
},
}
@@ -158,6 +154,9 @@ func TestBuildGauge(t *testing.T) {
t.Errorf("%s: expected an error (%s) but none returned",
gt.ptIn.Name(), gt.err.Error())
}
if len(gauges) != 0 && gt.outGauge == nil {
t.Errorf("%s: unexpected gauge, %+v\n", gt.ptIn.Name(), gt.outGauge)
}
if len(gauges) == 0 {
continue
}