tune flux queries

This commit is contained in:
Joerg Lehmann 2021-04-20 08:41:06 +02:00
parent 62c8dab465
commit 9d0154e8f9
1 changed files with 9 additions and 10 deletions

View File

@ -111,9 +111,9 @@ func metricsHandler(response http.ResponseWriter, request *http.Request) {
data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|> range(start: %s, stop: %s)
|> filter(fn: (r) => r._measurement == "measurement")
|> filter(fn: (r) => r._field == "lon" or r._field == "lat" or r._field == "vbat")
|> filter(fn: (r) => r.deveui == "%s")
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")`, mystart, mystop, mydeveui))
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
|> filter(fn: (r) => r.lat != 0`, mystart, mystop, mydeveui))
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
if err != nil {
@ -159,15 +159,15 @@ func metricsHandler(response http.ResponseWriter, request *http.Request) {
for scanner.Scan() {
s := strings.Split(scanner.Text(), ",")
fmt.Printf("Scanned Line: %v\n", s)
if (len(s) >= 11) && !(strings.HasPrefix(s[3], "_")) {
if (len(s) >= 12) && !(strings.HasPrefix(s[3], "_")) {
t, err := time.Parse(time.RFC3339, s[3])
if err != nil {
fmt.Printf("error converting time: %s\n", s[3])
continue
}
a := t.Unix()
lat = string2float64(s[8])
lon = string2float64(s[9])
lat = string2float64(s[9])
lon = string2float64(s[10])
if (lat == 0) || (lon == 0) {
fmt.Println("skip 0 value for lon/lat")
} else {
@ -190,7 +190,7 @@ func metricsHandler(response http.ResponseWriter, request *http.Request) {
fmt.Fprintf(response, " ")
}
fmt.Fprintf(response, "[%d, %s, %s, %s, %d]\n", a, s[8], s[9], s[10], vbat2percent(s[10]))
fmt.Fprintf(response, "[%d, %s, %s, %s, %d]\n", a, s[9], s[10], s[11], vbat2percent(s[10]))
}
@ -273,8 +273,8 @@ func downloadmetricsHandler(response http.ResponseWriter, request *http.Request)
data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|> range(start: %s, stop: %s)
|> filter(fn: (r) => r._measurement == "measurement")
|> filter(fn: (r) => r._field == "lon" or r._field == "lat" or r._field == "vbat")
|> filter(fn: (r) => r.deveui == "%s")
|> filter(fn: (r) => r._field == "lon" or r._field == "lat")
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")`, mystart, mystop, mydeveui))
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
@ -312,7 +312,7 @@ func downloadmetricsHandler(response http.ResponseWriter, request *http.Request)
for scanner.Scan() {
s := strings.Split(scanner.Text(), ",")
fmt.Printf("Scanned Line: %v\n", s)
if (len(s) >= 11) && !(strings.HasPrefix(s[3], "_")) {
if (len(s) >= 10) && !(strings.HasPrefix(s[3], "_")) {
t, err := time.Parse(time.RFC3339, s[3])
if err != nil {
fmt.Printf("error converting time: %s\n", s[3])
@ -389,10 +389,9 @@ func getLastMetrics(deveui string) OneMetric {
url := "http://localhost:8086/api/v2/query?org=wobischorg"
data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|> range(start:-365d)
|> tail(n:10)
|> filter(fn: (r) => r._measurement == "measurement" and r.deveui == "%s")
|> filter(fn: (r) => r._field == "lon" or r._field == "lat" or r._field == "vbat" or r._field == "fw")
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
|> filter(fn: (r) => r.lat != 0)
|> last(column: "_time")`, deveui))
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))