diff options
Diffstat (limited to 'cmd/rr/limit')
-rw-r--r-- | cmd/rr/limit/debug.go | 71 | ||||
-rw-r--r-- | cmd/rr/limit/metrics.go | 63 |
2 files changed, 0 insertions, 134 deletions
diff --git a/cmd/rr/limit/debug.go b/cmd/rr/limit/debug.go deleted file mode 100644 index b9d919dc..00000000 --- a/cmd/rr/limit/debug.go +++ /dev/null @@ -1,71 +0,0 @@ -package limit - -import ( - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" - "github.com/spiral/roadrunner" - rr "github.com/spiral/roadrunner/cmd/rr/cmd" - "github.com/spiral/roadrunner/cmd/util" - "github.com/spiral/roadrunner/service/limit" -) - -func init() { - cobra.OnInitialize(func() { - if rr.Debug { - svc, _ := rr.Container.Get(limit.ID) - if svc, ok := svc.(*limit.Service); ok { - svc.AddListener((&debugger{logger: rr.Logger}).listener) - } - } - }) -} - -// listener provide debug callback for system events. With colors! -type debugger struct{ logger *logrus.Logger } - -// listener listens to http events and generates nice looking output. -func (s *debugger) listener(event int, ctx interface{}) { - if util.LogEvent(s.logger, event, ctx) { - // handler by default debug package - return - } - - // watchers - switch event { - case limit.EventTTL: - w := ctx.(roadrunner.WorkerError) - s.logger.Debug(util.Sprintf( - "<white+hb>worker.%v</reset> <yellow>%s</reset>", - *w.Worker.Pid, - w.Caused, - )) - return - - case limit.EventIdleTTL: - w := ctx.(roadrunner.WorkerError) - s.logger.Debug(util.Sprintf( - "<white+hb>worker.%v</reset> <yellow>%s</reset>", - *w.Worker.Pid, - w.Caused, - )) - return - - case limit.EventMaxMemory: - w := ctx.(roadrunner.WorkerError) - s.logger.Error(util.Sprintf( - "<white+hb>worker.%v</reset> <red>%s</reset>", - *w.Worker.Pid, - w.Caused, - )) - return - - case limit.EventExecTTL: - w := ctx.(roadrunner.WorkerError) - s.logger.Error(util.Sprintf( - "<white+hb>worker.%v</reset> <red>%s</reset>", - *w.Worker.Pid, - w.Caused, - )) - return - } -} diff --git a/cmd/rr/limit/metrics.go b/cmd/rr/limit/metrics.go deleted file mode 100644 index 947f53fe..00000000 --- a/cmd/rr/limit/metrics.go +++ /dev/null @@ -1,63 +0,0 @@ -package limit - -import ( - "github.com/prometheus/client_golang/prometheus" - "github.com/spf13/cobra" - rr "github.com/spiral/roadrunner/cmd/rr/cmd" - rrlimit "github.com/spiral/roadrunner/service/limit" - "github.com/spiral/roadrunner/service/metrics" -) - -func init() { - cobra.OnInitialize(func() { - svc, _ := rr.Container.Get(metrics.ID) - mtr, ok := svc.(*metrics.Service) - if !ok || !mtr.Enabled() { - return - } - - ht, _ := rr.Container.Get(rrlimit.ID) - if ht, ok := ht.(*rrlimit.Service); ok { - collector := newCollector() - - // register metrics - mtr.MustRegister(collector.maxMemory) - - // collect events - ht.AddListener(collector.listener) - } - }) -} - -// listener provide debug callback for system events. With colors! -type metricCollector struct { - maxMemory prometheus.Counter - maxExecutionTime prometheus.Counter -} - -func newCollector() *metricCollector { - return &metricCollector{ - maxMemory: prometheus.NewCounter( - prometheus.CounterOpts{ - Name: "rr_limit_max_memory", - Help: "Total number of workers that was killed because they reached max memory limit.", - }, - ), - maxExecutionTime: prometheus.NewCounter( - prometheus.CounterOpts{ - Name: "rr_limit_max_execution_time", - Help: "Total number of workers that was killed because they reached max execution time limit.", - }, - ), - } -} - -// listener listens to http events and generates nice looking output. -func (c *metricCollector) listener(event int, ctx interface{}) { - switch event { - case rrlimit.EventMaxMemory: - c.maxMemory.Inc() - case rrlimit.EventExecTTL: - c.maxExecutionTime.Inc() - } -} |