Skip to content

Commit c32e5b2

Browse files
Mo3m3noktalz
authored andcommitted
BUG/MINOR: pprof handler should be called in sync loop
pprof handler should be called in sync loop (as part of updateHandlers list) instead of being called only once in startup handelrs. This is required in order to keep the pprof config (backend + route) in haproxy cfg.
1 parent 00ca7a3 commit c32e5b2

File tree

2 files changed

+20
-16
lines changed

2 files changed

+20
-16
lines changed

controller/handler.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ func (c *HAProxyController) initHandlers() {
4949
handler.PatternFiles{},
5050
handler.Refresh{},
5151
}
52+
if c.OSArgs.PprofEnabled {
53+
c.updateHandlers = append(c.updateHandlers, handler.Pprof{})
54+
}
55+
c.updateHandlers = append(c.updateHandlers, handler.Refresh{})
5256
}
5357

5458
func (c *HAProxyController) startupHandlers() error {
@@ -66,9 +70,6 @@ func (c *HAProxyController) startupHandlers() error {
6670
if c.OSArgs.External {
6771
handlers = append(handlers, handler.GlobalCfg{})
6872
}
69-
if c.OSArgs.PprofEnabled {
70-
handlers = append(handlers, handler.Pprof{})
71-
}
7273
for _, handler := range handlers {
7374
_, err := handler.Update(c.Store, &c.Cfg, c.Client)
7475
if err != nil {

controller/handler/pprof.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,24 @@ type Pprof struct {
2929
func (h Pprof) Update(k store.K8s, cfg *config.ControllerCfg, api api.HAProxyClient) (reload bool, err error) {
3030
pprofBackend := "pprof"
3131

32-
err = api.BackendCreate(models.Backend{
33-
Name: pprofBackend,
34-
Mode: "http",
35-
})
32+
_, err = api.BackendGet(pprofBackend)
3633
if err != nil {
37-
return
38-
}
39-
err = api.BackendServerCreate(pprofBackend, models.Server{
40-
Name: "pprof",
41-
Address: "127.0.0.1:6060",
42-
})
43-
if err != nil {
44-
return
34+
err = api.BackendCreate(models.Backend{
35+
Name: pprofBackend,
36+
Mode: "http",
37+
})
38+
if err != nil {
39+
return
40+
}
41+
err = api.BackendServerCreate(pprofBackend, models.Server{
42+
Name: "pprof",
43+
Address: "127.0.0.1:6060",
44+
})
45+
if err != nil {
46+
return
47+
}
48+
logger.Debug("pprof backend created")
4549
}
46-
logger.Debug("pprof backend created")
4750
err = route.AddHostPathRoute(route.Route{
4851
BackendName: pprofBackend,
4952
Path: &store.IngressPath{

0 commit comments

Comments
 (0)