Skip to content

Commit ca391c6

Browse files
committed
feat(config): add hot reload manager for check lifecycle
1 parent 1984ea0 commit ca391c6

File tree

3 files changed

+554
-91
lines changed

3 files changed

+554
-91
lines changed

internal/app/app.go

Lines changed: 2 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,12 @@ package app
33
import (
44
"context"
55

6-
"golang.org/x/sync/errgroup"
7-
86
"github.com/pixel365/pulse/internal/logger"
97

108
checksvc "github.com/pixel365/pulse/internal/services/check"
119

1210
"github.com/pixel365/pulse/internal"
1311

14-
"github.com/pixel365/pulse/internal/checker/dns"
15-
"github.com/pixel365/pulse/internal/checker/grpc"
16-
"github.com/pixel365/pulse/internal/checker/http"
17-
"github.com/pixel365/pulse/internal/checker/tcp"
18-
"github.com/pixel365/pulse/internal/checker/tls"
1912
"github.com/pixel365/pulse/internal/config"
2013
)
2114

@@ -40,87 +33,6 @@ func NewApp(
4033
}
4134

4235
func (a *App) Run(ctx context.Context) error {
43-
g, ctx := errgroup.WithContext(ctx)
44-
45-
for i := range a.cfg.HttpChecks {
46-
if !a.cfg.HttpChecks[i].Enabled {
47-
continue
48-
}
49-
50-
executor := internal.NewCheckExecutor(
51-
a.checkHandlerSvc,
52-
a.cfg.HttpChecks[i].CheckFields,
53-
a.logger,
54-
)
55-
checker := http.NewChecker(a.cfg.HttpChecks[i], executor)
56-
g.Go(func() error {
57-
return checker.Check(ctx)
58-
})
59-
}
60-
61-
for i := range a.cfg.TCPChecks {
62-
if !a.cfg.TCPChecks[i].Enabled {
63-
continue
64-
}
65-
66-
executor := internal.NewCheckExecutor(
67-
a.checkHandlerSvc,
68-
a.cfg.TCPChecks[i].CheckFields,
69-
a.logger,
70-
)
71-
checker := tcp.NewChecker(a.cfg.TCPChecks[i], executor)
72-
g.Go(func() error {
73-
return checker.Check(ctx)
74-
})
75-
}
76-
77-
for i := range a.cfg.GRPCChecks {
78-
if !a.cfg.GRPCChecks[i].Enabled {
79-
continue
80-
}
81-
82-
executor := internal.NewCheckExecutor(
83-
a.checkHandlerSvc,
84-
a.cfg.GRPCChecks[i].CheckFields,
85-
a.logger,
86-
)
87-
checker := grpc.NewChecker(a.cfg.GRPCChecks[i], executor)
88-
g.Go(func() error {
89-
return checker.Check(ctx)
90-
})
91-
}
92-
93-
for i := range a.cfg.DNSChecks {
94-
if !a.cfg.DNSChecks[i].Enabled {
95-
continue
96-
}
97-
98-
executor := internal.NewCheckExecutor(
99-
a.checkHandlerSvc,
100-
a.cfg.DNSChecks[i].CheckFields,
101-
a.logger,
102-
)
103-
checker := dns.NewChecker(a.cfg.DNSChecks[i], executor)
104-
g.Go(func() error {
105-
return checker.Check(ctx)
106-
})
107-
}
108-
109-
for i := range a.cfg.TLSChecks {
110-
if !a.cfg.TLSChecks[i].Enabled {
111-
continue
112-
}
113-
114-
executor := internal.NewCheckExecutor(
115-
a.checkHandlerSvc,
116-
a.cfg.TLSChecks[i].CheckFields,
117-
a.logger,
118-
)
119-
checker := tls.NewChecker(a.cfg.TLSChecks[i], executor)
120-
g.Go(func() error {
121-
return checker.Check(ctx)
122-
})
123-
}
124-
125-
return g.Wait()
36+
m := newManager(a)
37+
return m.run(ctx)
12638
}

0 commit comments

Comments
 (0)