func process(metric data.Metric, client *redis.Client) error { year, month, day := time.Now().UTC().Date() date := strconv.Itoa(year) + "-" + strconv.Itoa(int(month)) + "-" + strconv.Itoa(day) key := date + " " + metric.Metric err := client.Set(key, true, 0).Err() if err != nil { log.Fatalf("Failed to set metric connection. ERR: %+v", err) } log.Printf("Metric %+v", metric) return err }
func aggregate(client *redis.Client, year int, month int) error { log.Println("Curating logs...") yearMonth := strconv.Itoa(year) + "-" + strconv.Itoa(month) key := yearMonth + "-*" keys, err := client.Keys(key).Result() if err != nil { log.Printf("Failed to set metric connection. ERR: %+v", err) return err } if len(keys) == 0 { return nil } events := getEvents(keys) monthlyEvent := struct { Events []string }{ events, } byteContent, err := json.Marshal(monthlyEvent) if err != nil { log.Println("Failed to set all event under single key. ERR: %+v", err) return err } err = client.Set(yearMonth, byteContent, 0).Err() if err != nil { log.Println("Failed to set all event under single key. ERR: %+v", err) return err } err = client.Del(keys...).Err() if err != nil { log.Println("Failed to delete all event in the past month. ERR: %+v", err) return err } return err }
func releaseLock(client *redis.Client) { err := client.Set(DIST_LOCK, 0, 0).Err() if err != nil { log.Fatalf("Error in releasing the lock. ERR: %+v", err) } }