InfluxDB: Flux - Aggregation Function reduce(): Unterschied zwischen den Versionen
Aus Wiki-WebPerfect
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
Zeile 20: | Zeile 20: | ||
|> keep(columns: ["_time", "_value", "cluster", "manufacturer", "_field"]) | |> keep(columns: ["_time", "_value", "cluster", "manufacturer", "_field"]) | ||
</pre> | </pre> | ||
+ | |||
+ | [[Datei:00-before reduce.png]] | ||
Zeile 45: | Zeile 47: | ||
</pre> | </pre> | ||
+ | [[Datei:01-after reduce.png]] | ||
Version vom 19. Mai 2021, 12:55 Uhr
Inhaltsverzeichnis
When should I use reduce()
Example
Because the raw data in my example measurement "asset_hyperv_local" has a lot of tags I use "keep()" to decrease the number of columns.
Flux
bucket = "<YOUR_BUCKET>" from(bucket: bucket) |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r._measurement == "asset_hyperv_local" and r._field == "physicalmemory" ) |> last() |> group(columns: ["cluster", "manufacturer"]) |> keep(columns: ["_time", "_value", "cluster", "manufacturer", "_field"])
Same Flux Query but with "reduce()" in action
bucket = "<YOUR_BUCKET>" from(bucket: bucket) |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r._measurement == "asset_hyperv_local" and r._field == "physicalmemory" ) |> last() |> group(columns: ["cluster", "manufacturer"]) |> keep(columns: ["_time", "_value", "cluster", "manufacturer", "_field"]) |> reduce( fn: (r, accumulator) => ({ NumberOfNodes: accumulator.NumberOfNodes + 1.0, SumOfPhysicalMemory: r._value + accumulator.SumOfPhysicalMemory, }), identity: {NumberOfNodes: 0.0, SumOfPhysicalMemory: 0.0} )