fix(go.d): fix dyncfg vnodes configs (#21332)
Ilya Mashchenko committed
Nov 21, 2025 at 16:09 UTC
e5b1e5a1e1968099aa2b1a756620936857508b32
2 files changed
+22
-10
src/go/plugin/go.d/agent/jobmgr/dyncfg.go
+20
-1
@@ -29,7 +29,13 @@ func (m *Manager) dyncfgConfig(fn functions.Function) {
29
30
//m.Infof("QQ FN: '%s'", fn)
31
32
- switch id := fn.Args[0]; true {
32
+ m.dyncfgQueuedExec(fn)
33
+}
34
+
35
+func (m *Manager) dyncfgQueuedExec(fn functions.Function) {
36
+ id := fn.Args[0]
37
+
38
+ switch {
39
case strings.HasPrefix(id, m.dyncfgCollectorPrefixValue()):
40
m.dyncfgCollectorExec(fn)
41
case strings.HasPrefix(id, m.dyncfgVnodePrefixValue()):
@@ -39,6 +45,19 @@ func (m *Manager) dyncfgConfig(fn functions.Function) {
45
}
46
}
47
48
+func (m *Manager) dyncfgSeqExec(fn functions.Function) {
49
+ id := fn.Args[0]
50
+
51
+ switch {
52
+ case strings.HasPrefix(id, m.dyncfgCollectorPrefixValue()):
53
+ m.dyncfgCollectorSeqExec(fn)
54
+ case strings.HasPrefix(id, m.dyncfgVnodePrefixValue()):
55
+ m.dyncfgVnodeSeqExec(fn)
56
+ default:
57
+ m.dyncfgApi.SendCodef(fn, 503, "unknown function '%s' (%s).", fn.Name, id)
58
+ }
59
+}
60
+
61
func unmarshalPayload(dst any, fn functions.Function) error {
62
if v := reflect.ValueOf(dst); v.Kind() != reflect.Ptr || v.IsNil() {
63
return fmt.Errorf("invalid config: expected a pointer to a struct, got a %s", v.Type())
src/go/plugin/go.d/agent/jobmgr/manager.go
+2
-9
@@ -161,7 +161,7 @@ func (m *Manager) run() {
161
case <-m.ctx.Done():
162
return
163
case fn := <-m.dyncfgCh:
164
- m.dyncfgCollectorSeqExec(fn)
164
+ m.dyncfgSeqExec(fn)
165
}
166
} else {
167
select {
@@ -172,14 +172,7 @@ func (m *Manager) run() {
172
case cfg := <-m.rmCh:
173
m.removeConfig(cfg)
174
case fn := <-m.dyncfgCh:
175
- switch id := fn.Args[0]; true {
176
- case strings.HasPrefix(id, m.dyncfgCollectorPrefixValue()):
177
- m.dyncfgCollectorSeqExec(fn)
178
- case strings.HasPrefix(id, m.dyncfgVnodePrefixValue()):
179
- m.dyncfgVnodeSeqExec(fn)
180
- default:
181
- m.dyncfgApi.SendCodef(fn, 503, "unknown function '%s' (%s).", fn.Name, id)
182
- }
175
+ m.dyncfgSeqExec(fn)
176
}
177
}
178
}