influxdb-client-go icon indicating copy to clipboard operation
influxdb-client-go copied to clipboard

"influxdb2client E! Write error: json: cannot unmarshal string into Go struct field Error.Err of type error" in logs

Open ajb opened this issue 2 years ago • 3 comments

Specifications

  • Client Version: Telegraf 1.25.2
  • InfluxDB Version: InfluxDB v2.6.1
  • Platform: Debian 11

Steps to reproduce

We are writing like this:

		influxClient := influxdb2.NewClient(w.url, w.authString)
		writeAPI := influxClient.WriteAPI("", "")

		for {
			select {
			case e := <-w.influxCh:
				writeAPI.WritePoint(influxdb2.NewPoint(e.measurement, e.tags, e.fields, e.time))
			case <-w.quit:
				writeAPI.Flush()
				return
			}
		}

Appears in our logs occasionally. Seems like an error is being returned to the write method, but the structure is incorrect for unmarshalling. Don't know exactly how to grab more data without forking the package and adding some prints.

Expected behavior

No errors are displayed

Actual behavior

Screenshot 2023-03-10 at 9 03 58 AM

Additional info

No response

ajb avatar Mar 10 '23 17:03 ajb

found this in the telegraf agent logs:

Error parsing the request body: metric parse error: expected field at 1:214: "name_of_metric,foo=bar,main=true count=1i,reason="503 Service Unavailable: {\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32011,\"message\":\"no backends available for method\"},\"id\":4465}\n"

ajb avatar Apr 19 '23 16:04 ajb

Looks like maybe the issue is due to the trailing newline.

ajb avatar Apr 19 '23 16:04 ajb

Looks like maybe the issue is due to the trailing newline.

Line protocol is newline separated so you would need to escape it

powersj avatar Apr 19 '23 16:04 powersj