fix update, using raw flux script.

This commit is contained in:
Jason Kulatunga
2022-07-09 10:42:30 -07:00
parent 04563c0d0d
commit 0f0efac866
2 changed files with 116 additions and 94 deletions
@@ -11,10 +11,10 @@ import (
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
func (sr *scrutinyRepository) EnsureTasks(ctx context.Context, orgID string) error { func (sr *scrutinyRepository) EnsureTasks(ctx context.Context, orgID string) error {
weeklyTaskName := "tsk-weekly-aggr" weeklyTaskName := "tsk-weekly-aggr"
weeklyTaskScript := sr.DownsampleScript("weekly") weeklyTaskScript := sr.DownsampleScript("weekly", weeklyTaskName, "0 1 * * 0")
if found, findErr := sr.influxTaskApi.FindTasks(ctx, &api.TaskFilter{Name: weeklyTaskName}); findErr == nil && len(found) == 0 { if found, findErr := sr.influxTaskApi.FindTasks(ctx, &api.TaskFilter{Name: weeklyTaskName}); findErr == nil && len(found) == 0 {
//weekly on Sunday at 1:00am //weekly on Sunday at 1:00am
_, err := sr.influxTaskApi.CreateTaskWithCron(ctx, weeklyTaskName, weeklyTaskScript, "0 1 * * 0", orgID) _, err := sr.influxTaskApi.CreateTaskByFlux(ctx, weeklyTaskScript, orgID)
if err != nil { if err != nil {
return err return err
} }
@@ -32,10 +32,10 @@ func (sr *scrutinyRepository) EnsureTasks(ctx context.Context, orgID string) err
} }
monthlyTaskName := "tsk-monthly-aggr" monthlyTaskName := "tsk-monthly-aggr"
monthlyTaskScript := sr.DownsampleScript("monthly") monthlyTaskScript := sr.DownsampleScript("monthly", monthlyTaskName, "30 1 1 * *")
if found, findErr := sr.influxTaskApi.FindTasks(ctx, &api.TaskFilter{Name: monthlyTaskName}); findErr == nil && len(found) == 0 { if found, findErr := sr.influxTaskApi.FindTasks(ctx, &api.TaskFilter{Name: monthlyTaskName}); findErr == nil && len(found) == 0 {
//monthly on first day of the month at 1:30am //monthly on first day of the month at 1:30am
_, err := sr.influxTaskApi.CreateTaskWithCron(ctx, monthlyTaskName, monthlyTaskScript, "30 1 1 * *", orgID) _, err := sr.influxTaskApi.CreateTaskByFlux(ctx, monthlyTaskScript, orgID)
if err != nil { if err != nil {
return err return err
} }
@@ -53,10 +53,10 @@ func (sr *scrutinyRepository) EnsureTasks(ctx context.Context, orgID string) err
} }
yearlyTaskName := "tsk-yearly-aggr" yearlyTaskName := "tsk-yearly-aggr"
yearlyTaskScript := sr.DownsampleScript("yearly") yearlyTaskScript := sr.DownsampleScript("yearly", yearlyTaskName, "0 2 1 1 *")
if found, findErr := sr.influxTaskApi.FindTasks(ctx, &api.TaskFilter{Name: yearlyTaskName}); findErr == nil && len(found) == 0 { if found, findErr := sr.influxTaskApi.FindTasks(ctx, &api.TaskFilter{Name: yearlyTaskName}); findErr == nil && len(found) == 0 {
//yearly on the first day of the year at 2:00am //yearly on the first day of the year at 2:00am
_, err := sr.influxTaskApi.CreateTaskWithCron(ctx, yearlyTaskName, yearlyTaskScript, "0 2 1 1 *", orgID) _, err := sr.influxTaskApi.CreateTaskByFlux(ctx, yearlyTaskScript, orgID)
if err != nil { if err != nil {
return err return err
} }
@@ -75,7 +75,7 @@ func (sr *scrutinyRepository) EnsureTasks(ctx context.Context, orgID string) err
return nil return nil
} }
func (sr *scrutinyRepository) DownsampleScript(aggregationType string) string { func (sr *scrutinyRepository) DownsampleScript(aggregationType string, name string, cron string) string {
var sourceBucket string // the source of the data var sourceBucket string // the source of the data
var destBucket string // the destination for the aggregated data var destBucket string // the destination for the aggregated data
var rangeStart string var rangeStart string
@@ -124,6 +124,11 @@ func (sr *scrutinyRepository) DownsampleScript(aggregationType string) string {
*/ */
return fmt.Sprintf(` return fmt.Sprintf(`
option task = {
name: "%s",
cron: "%s",
}
sourceBucket = "%s" sourceBucket = "%s"
rangeStart = %s rangeStart = %s
rangeEnd = %s rangeEnd = %s
@@ -148,6 +153,8 @@ func (sr *scrutinyRepository) DownsampleScript(aggregationType string) string {
|> set(key: "_field", value: "temp") |> set(key: "_field", value: "temp")
|> to(bucket: destBucket, org: destOrg) |> to(bucket: destBucket, org: destOrg)
`, `,
name,
cron,
sourceBucket, sourceBucket,
rangeStart, rangeStart,
rangeEnd, rangeEnd,
@@ -24,10 +24,15 @@ func Test_DownsampleScript_Weekly(t *testing.T) {
aggregationType := "weekly" aggregationType := "weekly"
//test //test
influxDbScript := deviceRepo.DownsampleScript(aggregationType) influxDbScript := deviceRepo.DownsampleScript(aggregationType, "tsk-weekly-aggr", "0 1 * * 0")
//assert //assert
require.Equal(t, ` require.Equal(t, `
option task = {
name: "tsk-weekly-aggr",
cron: "0 1 * * 0",
}
sourceBucket = "metrics" sourceBucket = "metrics"
rangeStart = -2w rangeStart = -2w
rangeEnd = -1w rangeEnd = -1w
@@ -71,10 +76,15 @@ func Test_DownsampleScript_Monthly(t *testing.T) {
aggregationType := "monthly" aggregationType := "monthly"
//test //test
influxDbScript := deviceRepo.DownsampleScript(aggregationType) influxDbScript := deviceRepo.DownsampleScript(aggregationType, "tsk-monthly-aggr", "30 1 1 * *")
//assert //assert
require.Equal(t, ` require.Equal(t, `
option task = {
name: "tsk-monthly-aggr",
cron: "30 1 1 * *",
}
sourceBucket = "metrics_weekly" sourceBucket = "metrics_weekly"
rangeStart = -2mo rangeStart = -2mo
rangeEnd = -1mo rangeEnd = -1mo
@@ -118,10 +128,15 @@ func Test_DownsampleScript_Yearly(t *testing.T) {
aggregationType := "yearly" aggregationType := "yearly"
//test //test
influxDbScript := deviceRepo.DownsampleScript(aggregationType) influxDbScript := deviceRepo.DownsampleScript(aggregationType, "tsk-yearly-aggr", "0 2 1 1 *")
//assert //assert
require.Equal(t, ` require.Equal(t, `
option task = {
name: "tsk-yearly-aggr",
cron: "0 2 1 1 *",
}
sourceBucket = "metrics_monthly" sourceBucket = "metrics_monthly"
rangeStart = -2y rangeStart = -2y
rangeEnd = -1y rangeEnd = -1y