InfluxDB: Flux - String comparison

Aus Wiki-WebPerfect
Version vom 8. Februar 2021, 11:39 Uhr von Admin (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

In this example I show you how to compare a tag [string] against another tag [string] in Flux.

Example:

  • We have to tags (VMName, vNICName)
  • We want to compare theses tags
  • And show only rows that these tags not matched


import "strings"

from(bucket: "telegraf")

 |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
 |> filter(fn: (r) => 
   r._measurement == "hyperv_vmnet" and
   r._field == "Bytes_Received_persec" and 
   r.VMName !~ /TestRHE.*/ and //Exclude Test-VMs
   exists r.VMName //Exclude Hyper-V NICs 
 )
 |> last()
 |> group() //group to one table because "strings.compare" does not support multiple series
 // compare VMName and vNICName
 |> map(fn: (r) => ({r with 
     comparison: strings.compare(v: r.VMName, t: r.vNICName)
 }))
 |> map(fn: (r) => ({r with 
     IsCloned: 
       if r.comparison == 0 then "not cloned"
       else "yes"
 }))
 |> filter(fn: (r) => r.comparison != 0) // filter only cloned VMs