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)
	}
}