Skip to content

Commit e403319

Browse files
committed
delay startup
Signed-off-by: Markus Blaschke <[email protected]>
1 parent d71e4ac commit e403319

4 files changed

Lines changed: 25 additions & 10 deletions

File tree

README.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,19 @@ Application Options:
3535
--server.bind= Server address (default: :8080) [$SERVER_BIND]
3636
--server.timeout.read= Server read timeout (default: 5s) [$SERVER_TIMEOUT_READ]
3737
--server.timeout.write= Server write timeout (default: 10s) [$SERVER_TIMEOUT_WRITE]
38-
--scrape.time= Scrape time in seconds (default: 1m) [$SCRAPE_TIME]
39-
--azure.metadatainstance-url= Azure ScheduledEvents API URL (default: http://169.254.169.254/metadata/instance?api-version=2019-08-01) [$AZURE_METADATAINSTANCE_URL]
40-
--azure.scheduledevents-url= Azure ScheduledEvents API URL (default: http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01) [$AZURE_SCHEDULEDEVENTS_URL]
38+
--startup.delay= Delay startup time (default: 30s) [$STARTUP_DELAY]
39+
--scrape.time= Scrape time (default: 1m) [$SCRAPE_TIME]
40+
--azure.metadatainstance-url= Azure ScheduledEvents API URL (default:
41+
http://169.254.169.254/metadata/instance?api-version=2019-08-01)
42+
[$AZURE_METADATAINSTANCE_URL]
43+
--azure.scheduledevents-url= Azure ScheduledEvents API URL (default:
44+
http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01)
45+
[$AZURE_SCHEDULEDEVENTS_URL]
4146
--azure.timeout= Azure API timeout (seconds) (default: 30s) [$AZURE_TIMEOUT]
42-
--azure.error-threshold= Azure API error threshold (after which app will panic) (default: 0) [$AZURE_ERROR_THRESHOLD]
43-
--azure.approve-scheduledevent Approve ScheduledEvent and start (if possible) start them ASAP [$AZURE_APPROVE_SCHEDULEDEVENT]
47+
--azure.error-threshold= Azure API error threshold (after which app will panic) (default: 0)
48+
[$AZURE_ERROR_THRESHOLD]
49+
--azure.approve-scheduledevent Approve ScheduledEvent and start (if possible) start them ASAP
50+
[$AZURE_APPROVE_SCHEDULEDEVENT]
4451
--vm.nodename= VM node name [$VM_NODENAME]
4552
--drain.enable Enable drain handling [$DRAIN_ENABLE]
4653
--drain.mode=[kubernetes|command] Mode [$DRAIN_MODE]

config/opts.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,12 @@ type (
2323
WriteTimeout time.Duration `long:"server.timeout.write" env:"SERVER_TIMEOUT_WRITE" description:"Server write timeout" default:"10s"`
2424
}
2525

26+
Startup struct {
27+
Delay time.Duration `long:"startup.delay" env:"STARTUP_DELAY" description:"Delay startup time" default:"30s"`
28+
}
29+
2630
Scrape struct {
27-
Time time.Duration `long:"scrape.time" env:"SCRAPE_TIME" description:"Scrape time in seconds" default:"1m"`
31+
Time time.Duration `long:"scrape.time" env:"SCRAPE_TIME" description:"Scrape time" default:"1m"`
2832
}
2933

3034
// Api option

main.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,6 @@ func main() {
103103
default:
104104
logger.Fatalf("drain mode \"%v\" is not valid", Opts.Drain.Mode)
105105
}
106-
107-
if err := scheduledEventsManager.DrainManager.Test(); err != nil {
108-
logger.Fatalf(`failed to test drain manager: %v`, err)
109-
}
110106
}
111107

112108
logger.Infof("starting manager")

manager/manager.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,14 @@ func (m *ScheduledEventsManager) initMetrics() {
110110

111111
func (m *ScheduledEventsManager) Start() {
112112
go func() {
113+
// delay startup a little bit
114+
time.Sleep(m.Conf.Startup.Delay)
115+
116+
// test drain manager
117+
if err := m.DrainManager.Test(); err != nil {
118+
m.Logger.Fatalf(`failed to test drain manager: %v`, err)
119+
}
120+
113121
for {
114122
m.collect()
115123
time.Sleep(m.Conf.Scrape.Time)

0 commit comments

Comments
 (0)