InfluxDB 2.x: Error: Unsupported input type for mean aggregate (string to integer): Unterschied zwischen den Versionen

Aus Wiki-WebPerfect
Wechseln zu: Navigation, Suche
Zeile 14: Zeile 14:
 
That's why we have to convert the type of the "_value" fields and rewrite this in a new measurement. <br>
 
That's why we have to convert the type of the "_value" fields and rewrite this in a new measurement. <br>
 
*Optionally: '''Create a new bucket''' (I called them "typeconversion")
 
*Optionally: '''Create a new bucket''' (I called them "typeconversion")
*Write a query that '''selects your measurement''', '''convert the values''' to integer and '''rewrite the data''' to your new bucket.
+
*Write a query that '''selects your measurement''', '''convert the values''' to integer and '''rewrite the data''' to your new bucket:  
*To prevent browser timeouts, create a InfluxDB Task. Here my example:
+
 
<pre>
 
<pre>
 +
datatoconvert = from(bucket: "telegraf")
 +
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
 +
  |> filter(fn: (r) => r._measurement == "asset_vm_cmdb")
 +
  |> toInt()
  
 +
datatoconvert
 +
  |> filter(fn: (r) => exists r._value)
 +
  |> to(bucket: "typeconversion", org: "Inventx AG")
 
</pre>
 
</pre>
 
*Remove the old measurement
 
*Remove the old measurement

Version vom 1. März 2021, 14:52 Uhr

My InfluxDB 2.x downsampling tasks could not run because of following error.

Error

Could not execute task run; Err: unsupported input type for mean aggregate: string: unsupported input type for mean aggregate: string
Unsupported input type for mean aggregate: string


Cause

This error occurs because of type conflicts in the same fields respectively in the value of it.


Solution / Workaround

Unfortunately InfluxDB 2.x has no solution for this (or I don't know about them).
That's why we have to convert the type of the "_value" fields and rewrite this in a new measurement.

  • Optionally: Create a new bucket (I called them "typeconversion")
  • Write a query that selects your measurement, convert the values to integer and rewrite the data to your new bucket:
datatoconvert = from(bucket: "telegraf")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == "asset_vm_cmdb")
  |> toInt()

datatoconvert
  |> filter(fn: (r) => exists r._value)
  |> to(bucket: "typeconversion", org: "Inventx AG")
  • Remove the old measurement