-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmape.tick
37 lines (30 loc) · 1 KB
/
mape.tick
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
dbrp "test"."autogen"
var src = batch
|query('SELECT "logvalue" AS "value" FROM "test"."autogen"."src"')
.period(60d)
.every(1m)
.offset(1d)
var forecasted = batch
|query('SELECT "value" FROM "test"."autogen"."forecasted"')
.period(60d)
.every(1m)
.offset(1d)
// Compute percentage errors
var errors = src
|join(forecasted).as('src','forecasted').tolerance(1m)
|log().prefix('join src.forecasted')
|eval(lambda: abs(("src.value" - "forecasted.value") / "src.value")).as('error')
var sum_errors = errors
|sum('error').as('value')
|log().prefix('sum_errors')
var count = errors
|count('error').as('value')
|log().prefix('count')
sum_errors
|join(count).as('sum_errors', 'count')
|eval(lambda: float("sum_errors.value") / float("count.value")).as('mape')
|log().prefix('mape')
|influxDBOut()
.database('test')
.retentionPolicy('autogen')
.measurement('mape')