Skip to content

Commit 692db74

Browse files
committed
Update metrics handling logic
Signed-off-by: yomek33 <[email protected]>
1 parent 55c0c4a commit 692db74

File tree

1 file changed

+32
-37
lines changed

1 file changed

+32
-37
lines changed

metrics/serve.go

+32-37
Original file line numberDiff line numberDiff line change
@@ -160,55 +160,46 @@ func changeSeriesDoubleHalve(currentSeriesCount *int, seriesIncrease *bool) {
160160
func handleDoubleHalveMode(metricCount, metricLength, metricCycle, seriesCycle int, labelKeys, labelValues []string, seriesCount int, changeSeriesTick *time.Ticker, updateNotify chan struct{}) {
161161
currentSeriesCount := seriesCount
162162
seriesIncrease := true
163+
for tick := range changeSeriesTick.C {
164+
metricsMux.Lock()
165+
unregisterMetrics()
166+
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
167+
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
168+
metricsMux.Unlock()
163169

164-
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
165-
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
166-
167-
go func() {
168-
for tick := range changeSeriesTick.C {
169-
metricsMux.Lock()
170-
unregisterMetrics()
171-
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
172-
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
173-
metricsMux.Unlock()
174-
175-
changeSeriesDoubleHalve(&currentSeriesCount, &seriesIncrease)
170+
changeSeriesDoubleHalve(&currentSeriesCount, &seriesIncrease)
176171

177-
fmt.Printf("%v: Adjusting series count. New count: %d\n", tick, currentSeriesCount)
172+
fmt.Printf("%v: Adjusting series count. New count: %d\n", tick, currentSeriesCount)
178173

179-
select {
180-
case updateNotify <- struct{}{}:
181-
default:
182-
}
174+
select {
175+
case updateNotify <- struct{}{}:
176+
default:
183177
}
184-
}()
178+
}
179+
185180
}
186181

187182
func handleGradualChangeMode(metricCount, metricLength, metricCycle, seriesCycle int, labelKeys, labelValues []string, seriesChangeRate, maxSeriesCount, minSeriesCount int, changeSeriesTick *time.Ticker, updateNotify chan struct{}) {
188183
currentSeriesCount := minSeriesCount
189184
seriesIncrease := true
190185

191-
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
192-
cycleValues(labelKeys, labelValues, minSeriesCount, seriesCycle)
193-
194-
go func() {
195-
for tick := range changeSeriesTick.C {
196-
metricsMux.Lock()
197-
unregisterMetrics()
198-
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
199-
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
200-
metricsMux.Unlock()
186+
for tick := range changeSeriesTick.C {
187+
metricsMux.Lock()
188+
unregisterMetrics()
189+
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
190+
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
191+
metricsMux.Unlock()
201192

202-
changeSeriesGradual(&seriesChangeRate, &maxSeriesCount, &minSeriesCount, &currentSeriesCount, &seriesIncrease)
193+
changeSeriesGradual(&seriesChangeRate, &maxSeriesCount, &minSeriesCount, &currentSeriesCount, &seriesIncrease)
203194

204-
fmt.Printf("%v: Adjusting series count. New count: %d\n", tick, currentSeriesCount)
195+
fmt.Printf("%v: Adjusting series count. New count: %d\n", tick, currentSeriesCount)
205196

206-
select {
207-
case updateNotify <- struct{}{}:
208-
default:
209-
}
197+
select {
198+
case updateNotify <- struct{}{}:
199+
default:
210200
}
211-
}()
201+
}
202+
212203
}
213204

214205
// RunMetrics creates a set of Prometheus test series that update over time
@@ -242,15 +233,19 @@ func RunMetrics(metricCount, labelCount, seriesCount, seriesChangeRate, maxSerie
242233

243234
switch seriesOperationMode {
244235
case "double-halve":
245-
handleDoubleHalveMode(metricCount, metricLength, metricCycle, seriesCycle, labelKeys, labelValues, seriesCount, changeSeriesTick, updateNotify)
236+
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
237+
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
238+
go handleDoubleHalveMode(metricCount, metricLength, metricCycle, seriesCycle, labelKeys, labelValues, seriesCount, changeSeriesTick, updateNotify)
246239
go handleValueTicks(&labelKeys, &labelValues, &currentSeriesCount, &seriesCycle, updateNotify, valueTick)
247240
go handleSeriesTicks(&labelKeys, &labelValues, &currentSeriesCount, &seriesCycle, updateNotify, seriesTick)
248241

249242
case "gradual-change":
250243
if minSeriesCount >= maxSeriesCount {
251244
return nil, fmt.Errorf("error: minSeriesCount must be less than maxSeriesCount, got %d and %d", minSeriesCount, maxSeriesCount)
252245
}
253-
handleGradualChangeMode(metricCount, metricLength, metricCycle, seriesCycle, labelKeys, labelValues, seriesChangeRate, maxSeriesCount, minSeriesCount, changeSeriesTick, updateNotify)
246+
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
247+
cycleValues(labelKeys, labelValues, minSeriesCount, seriesCycle)
248+
go handleGradualChangeMode(metricCount, metricLength, metricCycle, seriesCycle, labelKeys, labelValues, seriesChangeRate, maxSeriesCount, minSeriesCount, changeSeriesTick, updateNotify)
254249
go handleValueTicks(&labelKeys, &labelValues, &currentSeriesCount, &seriesCycle, updateNotify, valueTick)
255250
go handleSeriesTicks(&labelKeys, &labelValues, &currentSeriesCount, &seriesCycle, updateNotify, seriesTick)
256251

0 commit comments

Comments
 (0)