Skip to content

Commit bddbb3b

Browse files
committed
change currentSeriesCount to be a pointer
Signed-off-by: yomek33 <[email protected]>
1 parent 7a2f8dd commit bddbb3b

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

metrics/serve.go

+13-14
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ func handleMetricTicks(metricCount, metricLength, metricCycle *int, labelKeys *[
128128
}
129129

130130
func changeSeriesGradual(seriesChangeRate, maxSeriesCount, minSeriesCount, currentSeriesCount *int, seriesIncrease *bool) {
131+
fmt.Printf("Current series count: %d\n", *currentSeriesCount)
131132
if *seriesIncrease {
132133
*currentSeriesCount += *seriesChangeRate
133134
if *currentSeriesCount >= *maxSeriesCount {
@@ -136,7 +137,7 @@ func changeSeriesGradual(seriesChangeRate, maxSeriesCount, minSeriesCount, curre
136137
}
137138
} else {
138139
*currentSeriesCount -= *seriesChangeRate
139-
if *currentSeriesCount <= *minSeriesCount {
140+
if *currentSeriesCount < *minSeriesCount {
140141
*currentSeriesCount = *minSeriesCount
141142
*seriesIncrease = true
142143
}
@@ -155,19 +156,18 @@ func changeSeriesDoubleHalve(currentSeriesCount *int, seriesIncrease *bool) {
155156
*seriesIncrease = !*seriesIncrease
156157
}
157158

158-
func handleDoubleHalveMode(metricCount, metricLength, metricCycle, seriesCycle int, labelKeys, labelValues []string, seriesCount int, changeSeriesTick *time.Ticker, updateNotify chan struct{}) {
159-
currentSeriesCount := seriesCount
159+
func handleDoubleHalveMode(metricCount, metricLength, metricCycle, seriesCycle int, labelKeys, labelValues []string, currentSeriesCount *int, changeSeriesTick *time.Ticker, updateNotify chan struct{}) {
160160
seriesIncrease := true
161161
for tick := range changeSeriesTick.C {
162162
metricsMux.Lock()
163163
unregisterMetrics()
164164
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
165-
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
165+
cycleValues(labelKeys, labelValues, *currentSeriesCount, seriesCycle)
166166
metricsMux.Unlock()
167167

168-
changeSeriesDoubleHalve(&currentSeriesCount, &seriesIncrease)
168+
changeSeriesDoubleHalve(currentSeriesCount, &seriesIncrease)
169169

170-
fmt.Printf("%v: Adjusting series count. New count: %d\n", tick, currentSeriesCount)
170+
fmt.Printf("%v: Adjusting series count. New count: %d\n", tick, *currentSeriesCount)
171171

172172
select {
173173
case updateNotify <- struct{}{}:
@@ -177,19 +177,19 @@ func handleDoubleHalveMode(metricCount, metricLength, metricCycle, seriesCycle i
177177
}
178178

179179
func handleGradualChangeMode(metricCount, metricLength, metricCycle, seriesCycle int, labelKeys, labelValues []string, seriesChangeRate, maxSeriesCount, minSeriesCount int, changeSeriesTick *time.Ticker, updateNotify chan struct{}) {
180-
currentSeriesCount := minSeriesCount
180+
currentSeriesCount := &minSeriesCount
181181
seriesIncrease := true
182182

183183
for tick := range changeSeriesTick.C {
184184
metricsMux.Lock()
185185
unregisterMetrics()
186186
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
187-
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
187+
cycleValues(labelKeys, labelValues, *currentSeriesCount, seriesCycle)
188188
metricsMux.Unlock()
189189

190-
changeSeriesGradual(&seriesChangeRate, &maxSeriesCount, &minSeriesCount, &currentSeriesCount, &seriesIncrease)
190+
changeSeriesGradual(&seriesChangeRate, &maxSeriesCount, &minSeriesCount, currentSeriesCount, &seriesIncrease)
191191

192-
fmt.Printf("%v: Adjusting series count. New count: %d\n", tick, currentSeriesCount)
192+
fmt.Printf("%v: Adjusting series count. New count: %d\n", tick, *currentSeriesCount)
193193

194194
select {
195195
case updateNotify <- struct{}{}:
@@ -225,13 +225,13 @@ func RunMetrics(metricCount, labelCount, seriesCount, seriesChangeRate, maxSerie
225225
changeSeriesTick := time.NewTicker(time.Duration(seriesChangeInterval) * time.Second)
226226
updateNotify := make(chan struct{}, 1)
227227

228-
var currentSeriesCount int
228+
currentSeriesCount := seriesCount
229229

230230
switch seriesOperationMode {
231231
case "double-halve":
232232
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
233233
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
234-
go handleDoubleHalveMode(metricCount, metricLength, metricCycle, seriesCycle, labelKeys, labelValues, seriesCount, changeSeriesTick, updateNotify)
234+
go handleDoubleHalveMode(metricCount, metricLength, metricCycle, seriesCycle, labelKeys, labelValues, &currentSeriesCount, changeSeriesTick, updateNotify)
235235
go handleValueTicks(&labelKeys, &labelValues, &currentSeriesCount, &seriesCycle, updateNotify, valueTick)
236236
go handleSeriesTicks(&labelKeys, &labelValues, &currentSeriesCount, &seriesCycle, updateNotify, seriesTick)
237237

@@ -246,9 +246,8 @@ func RunMetrics(metricCount, labelCount, seriesCount, seriesChangeRate, maxSerie
246246
go handleSeriesTicks(&labelKeys, &labelValues, &currentSeriesCount, &seriesCycle, updateNotify, seriesTick)
247247

248248
default:
249-
currentSeriesCount = seriesCount
250249
registerMetrics(metricCount, metricLength, metricCycle, labelKeys)
251-
cycleValues(labelKeys, labelValues, seriesCount, seriesCycle)
250+
cycleValues(labelKeys, labelValues, currentSeriesCount, seriesCycle)
252251
go handleValueTicks(&labelKeys, &labelValues, &currentSeriesCount, &seriesCycle, updateNotify, valueTick)
253252
go handleSeriesTicks(&labelKeys, &labelValues, &currentSeriesCount, &seriesCycle, updateNotify, seriesTick)
254253
go handleMetricTicks(&metricCount, &metricLength, &metricCycle, &labelKeys, updateNotify, metricTick)

0 commit comments

Comments
 (0)