mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-15 19:41:02 +00:00
Fix probe & app's shutdown to please signals.SignalHandlerLoop
Fixes: ``` not enough arguments in call to signals.SignalHandlerLoop have () want (logging.Interface, ...signals.SignalReceiver) ```
This commit is contained in:
@@ -110,9 +110,10 @@ func (p *Probe) Start() {
|
||||
}
|
||||
|
||||
// Stop stops the probe
|
||||
func (p *Probe) Stop() {
|
||||
func (p *Probe) Stop() error {
|
||||
close(p.quit)
|
||||
p.done.Wait()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Publish will queue a report for immediate publication,
|
||||
|
||||
24
prog/app.go
24
prog/app.go
@@ -19,6 +19,7 @@ import (
|
||||
|
||||
billing "github.com/weaveworks/billing-client"
|
||||
"github.com/weaveworks/common/aws"
|
||||
"github.com/weaveworks/common/logging"
|
||||
"github.com/weaveworks/common/middleware"
|
||||
"github.com/weaveworks/common/network"
|
||||
"github.com/weaveworks/common/signals"
|
||||
@@ -307,10 +308,27 @@ func appMain(flags appFlags) {
|
||||
}()
|
||||
|
||||
// block until INT/TERM
|
||||
signals.SignalHandlerLoop()
|
||||
signals.SignalHandlerLoop(
|
||||
logging.Logrus(log.StandardLogger()),
|
||||
stopper{
|
||||
Server: server,
|
||||
StopTimeout: flags.stopTimeout,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
// stopper adapts graceful.Server's interface to signals.SignalReceiver's interface.
|
||||
type stopper struct {
|
||||
Server *graceful.Server
|
||||
StopTimeout time.Duration
|
||||
}
|
||||
|
||||
// Stop implements signals.SignalReceiver's Stop method.
|
||||
func (c stopper) Stop() error {
|
||||
// stop listening, wait for any active connections to finish
|
||||
server.Stop(flags.stopTimeout)
|
||||
<-server.StopChan()
|
||||
c.Server.Stop(c.StopTimeout)
|
||||
<-c.Server.StopChan()
|
||||
return nil
|
||||
}
|
||||
|
||||
func newWeavePublisher(dockerEndpoint, weaveAddr, weaveHostname, containerName string) (*app.WeavePublisher, error) {
|
||||
|
||||
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/weaveworks/common/logging"
|
||||
"github.com/weaveworks/common/network"
|
||||
"github.com/weaveworks/common/sanitize"
|
||||
"github.com/weaveworks/common/signals"
|
||||
@@ -304,7 +305,8 @@ func probeMain(flags probeFlags, targets []appclient.Target) {
|
||||
maybeExportProfileData(flags)
|
||||
|
||||
p.Start()
|
||||
defer p.Stop()
|
||||
|
||||
signals.SignalHandlerLoop()
|
||||
signals.SignalHandlerLoop(
|
||||
logging.Logrus(log.StandardLogger()),
|
||||
p,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user