Ignore errors serializing single metrics (#5943)
This commit is contained in:
@@ -113,6 +113,9 @@ func (s *Serializer) SerializeBatch(metrics []telegraf.Metric) ([]byte, error) {
|
||||
for _, m := range metrics {
|
||||
_, err := s.Write(&s.buf, m)
|
||||
if err != nil {
|
||||
if _, ok := err.(*MetricError); ok {
|
||||
continue
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,12 +53,13 @@ func (r *reader) Read(p []byte) (int, error) {
|
||||
r.offset += 1
|
||||
if err != nil {
|
||||
r.buf.Reset()
|
||||
if err != nil {
|
||||
// Since we are serializing multiple metrics, don't fail the
|
||||
// the entire batch just because of one unserializable metric.
|
||||
log.Printf("E! [serializers.influx] could not serialize metric: %v; discarding metric", err)
|
||||
if _, ok := err.(*MetricError); ok {
|
||||
continue
|
||||
}
|
||||
// Since we are serializing multiple metrics, don't fail the
|
||||
// the entire batch just because of one unserializable metric.
|
||||
log.Printf("E! [serializers.influx] could not serialize metric: %v; discarding metric", err)
|
||||
continue
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user