diff --git a/metrics/influxdb/influxdb.go b/metrics/influxdb/influxdb.go
index d4fc478e7b14c0eafe869dc2de5814b0063a7529..52d00910343e6b9c21ac7744ca310913b1577f43 100644
--- a/metrics/influxdb/influxdb.go
+++ b/metrics/influxdb/influxdb.go
@@ -162,26 +162,29 @@ func (r *reporter) send() error {
 			})
 		case metrics.Histogram:
 			ms := metric.Snapshot()
-			ps := ms.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999, 0.9999})
-			pts = append(pts, client.Point{
-				Measurement: fmt.Sprintf("%s%s.histogram", namespace, name),
-				Tags:        r.tags,
-				Fields: map[string]interface{}{
-					"count":    ms.Count(),
-					"max":      ms.Max(),
-					"mean":     ms.Mean(),
-					"min":      ms.Min(),
-					"stddev":   ms.StdDev(),
-					"variance": ms.Variance(),
-					"p50":      ps[0],
-					"p75":      ps[1],
-					"p95":      ps[2],
-					"p99":      ps[3],
-					"p999":     ps[4],
-					"p9999":    ps[5],
-				},
-				Time: now,
-			})
+
+			if ms.Count() > 0 {
+				ps := ms.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999, 0.9999})
+				pts = append(pts, client.Point{
+					Measurement: fmt.Sprintf("%s%s.histogram", namespace, name),
+					Tags:        r.tags,
+					Fields: map[string]interface{}{
+						"count":    ms.Count(),
+						"max":      ms.Max(),
+						"mean":     ms.Mean(),
+						"min":      ms.Min(),
+						"stddev":   ms.StdDev(),
+						"variance": ms.Variance(),
+						"p50":      ps[0],
+						"p75":      ps[1],
+						"p95":      ps[2],
+						"p99":      ps[3],
+						"p999":     ps[4],
+						"p9999":    ps[5],
+					},
+					Time: now,
+				})
+			}
 		case metrics.Meter:
 			ms := metric.Snapshot()
 			pts = append(pts, client.Point{