tune flux queries
This commit is contained in:
parent
62c8dab465
commit
9d0154e8f9
19
metrics.go
19
metrics.go
|
|
@ -111,9 +111,9 @@ func metricsHandler(response http.ResponseWriter, request *http.Request) {
|
||||||
data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|
data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|
||||||
|> range(start: %s, stop: %s)
|
|> range(start: %s, stop: %s)
|
||||||
|> filter(fn: (r) => r._measurement == "measurement")
|
|> 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.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))
|
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -159,15 +159,15 @@ func metricsHandler(response http.ResponseWriter, request *http.Request) {
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
s := strings.Split(scanner.Text(), ",")
|
s := strings.Split(scanner.Text(), ",")
|
||||||
fmt.Printf("Scanned Line: %v\n", s)
|
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])
|
t, err := time.Parse(time.RFC3339, s[3])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("error converting time: %s\n", s[3])
|
fmt.Printf("error converting time: %s\n", s[3])
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
a := t.Unix()
|
a := t.Unix()
|
||||||
lat = string2float64(s[8])
|
lat = string2float64(s[9])
|
||||||
lon = string2float64(s[9])
|
lon = string2float64(s[10])
|
||||||
if (lat == 0) || (lon == 0) {
|
if (lat == 0) || (lon == 0) {
|
||||||
fmt.Println("skip 0 value for lon/lat")
|
fmt.Println("skip 0 value for lon/lat")
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -190,7 +190,7 @@ func metricsHandler(response http.ResponseWriter, request *http.Request) {
|
||||||
fmt.Fprintf(response, " ")
|
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")
|
data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|
||||||
|> range(start: %s, stop: %s)
|
|> range(start: %s, stop: %s)
|
||||||
|> filter(fn: (r) => r._measurement == "measurement")
|
|> 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.deveui == "%s")
|
||||||
|
|> filter(fn: (r) => r._field == "lon" or r._field == "lat")
|
||||||
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")`, mystart, mystop, mydeveui))
|
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")`, mystart, mystop, mydeveui))
|
||||||
|
|
||||||
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
|
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
|
||||||
|
|
@ -312,7 +312,7 @@ func downloadmetricsHandler(response http.ResponseWriter, request *http.Request)
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
s := strings.Split(scanner.Text(), ",")
|
s := strings.Split(scanner.Text(), ",")
|
||||||
fmt.Printf("Scanned Line: %v\n", s)
|
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])
|
t, err := time.Parse(time.RFC3339, s[3])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("error converting time: %s\n", s[3])
|
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"
|
url := "http://localhost:8086/api/v2/query?org=wobischorg"
|
||||||
data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|
data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|
||||||
|> range(start:-365d)
|
|> range(start:-365d)
|
||||||
|> tail(n:10)
|
|
||||||
|> filter(fn: (r) => r._measurement == "measurement" and r.deveui == "%s")
|
|> 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")
|
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
|
||||||
|
|> filter(fn: (r) => r.lat != 0)
|
||||||
|> last(column: "_time")`, deveui))
|
|> last(column: "_time")`, deveui))
|
||||||
|
|
||||||
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
|
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue