yats.git

commit 873a8080d9eade1d010713c0c89538bc54abcdcf

Author: Paolo Lulli <paolo@lulli.net>

Store away history to Parquet files

 server/db/metric.go | 12 ++++++++++++
 server/maintenance.go | 5 +----


diff --git a/server/db/metric.go b/server/db/metric.go
index 0e9de5c209d7b024d7f2735fc602ae3348c08452..cd6660f773070235d839f0232d159e7362af0c04 100644
--- a/server/db/metric.go
+++ b/server/db/metric.go
@@ -48,6 +48,18 @@ 	}
 	return metrics
 }
 
+func DeleteMetrics(session *gocql.Session, idClient string, daysRange dates.DaysRange) {
+	metricInfos := GetClientMetrics(session, idClient)
+
+	for mx := range metricInfos {
+		metricName := metricInfos[mx].Name
+		fmt.Printf("Querying from: %s to: %s\n", daysRange.From, daysRange.To)
+		q := fmt.Sprintf("DELETE FROM metric where id_client='%s' and name ='%s' and mtime > '%s' and mtime < '%s'", idClient, metricName, daysRange.From, daysRange.To)
+		fmt.Println(q)
+		session.Query(q).Exec()
+	}
+}
+
 func SaveMetric(idClient string, metricName string, metricValue string) {
 	q := fmt.Sprintf("insert into metric ( id_client, mtime, name, value) values ('%s',toTimestamp(now()),'%s','%s');", idClient, metricName, metricValue)
 	Session.Query(q).Exec()




diff --git a/server/maintenance.go b/server/maintenance.go
index caa308ba8b378835cbf5c4f561d790d5be03c7f7..4967f900a1bae9d750032561b4e581bf97bbeee2 100644
--- a/server/maintenance.go
+++ b/server/maintenance.go
@@ -11,13 +11,9 @@ 	"yats-server/model"
 )
 
 func calculateParquetDirName(cfg config.Configuration, t time.Time, id_client string, item string) string {
-	fmt.Println("called calculateParquetDirName()")
 	baseParquetDir := cfg.ARCHIVE_DIRECTORY
-	fmt.Printf("calculateParquetDirName: %s", baseParquetDir)
 	previousMonth := dates.CalculatePreviousMonth(t)
-	fmt.Printf("previousMonth: %s", previousMonth)
 	parquetDirName := fmt.Sprintf("%s/%s/%s/%s", baseParquetDir, id_client, item, previousMonth)
-	fmt.Printf("parquetDirName: %s", parquetDirName)
 	return parquetDirName
 }
 
@@ -74,5 +70,6 @@
 		metrics := db.LoadMetrics(db.Session, clients[i].ID, daysRange)
 		fmt.Printf("Loaded: [%d] results", len(metrics))
 		db.MetricToParquet(metrics, metricFileName)
+		db.DeleteMetrics(db.Session, clients[i].ID, daysRange)
 	}
 }