in cmd/main.go [23:70]
func main() {
log.Println("Prometheus configuration reloader started")
aws.InitializeAWSSession()
configFileDir, present := os.LookupEnv("CONFIG_FILE_DIR")
if !present {
configFileDir = "/etc/config/"
}
configReloadFrequency, present := os.LookupEnv("CONFIG_RELOAD_FREQUENCY")
if !present {
configReloadFrequency = "30"
}
prometheusConfigFilePath = strings.Join([]string{configFileDir, "prometheus.yaml"}, "/")
scrapeConfigFilePath = strings.Join([]string{configFileDir, "ecs-services.json"}, "/")
loadPrometheusConfig()
loadScrapeConfig()
log.Println("Loaded initial configuration file")
go func() {
reloadFrequency, _ := strconv.Atoi(configReloadFrequency)
ticker := time.NewTicker(time.Duration(reloadFrequency) * time.Second)
for {
select {
case <-ticker.C:
//
// Ticker contains a channel
// It sends the time on the channel after the number of ticks specified by the duration have elapsed.
//
reloadScrapeConfig()
}
}
}()
log.Println("Periodic reloads under progress...")
//
// Block indefinitely on the main channel
//
stopChannel := make(chan string)
for {
select {
case status := <-stopChannel:
fmt.Println(status)
break
}
}
}