influxdata / telegraf

Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.
https://influxdata.com/telegraf
MIT License
14.63k stars 5.58k forks source link

Define an error handling behavior of Serializer.SerializeBatch function #8830

Open dialogbox opened 3 years ago

dialogbox commented 3 years ago

Feature Request

Currently, the serializer interface doesn't define error handling behavior of SerializeBatch function.

If an error is occurred in the middle of processing multiple metrics, whether of not return the rest of succeeded metrics is up to the implementation.

Proposal:

Define the expected behaviour and add it in the comment/document.

Current behavior:

Undefined.

It made each serializer uses different strategy.

For example,

Desired behavior:

Having well defined set of behavior including

Use case:

This is important to reduce possible confusions of end users and plugin writers.

powersj commented 2 years ago

next steps: review how this might look if we want to adopt this

@srebhan you had a conversation about this in #8828, did you have thoughts here?

srebhan commented 2 years ago

@powersj I think that having inconsistent behavior is not a good thing. Furthermore, a serializer might decide to just drop the complete batch resulting in throwing away more data than needed. So I tend to agree that we should define what the behavior is and allow a way to only drop the faulty parts if possible. The same problem might also arise in parsers where you maybe can parse certain information (e.g. from an array or a bunch of text-lines) even-though there is an error elsewhere.