8000 chore: remove unnecessary atomicity since map is protected by mutex a… · coder/coder@971f65c · GitHub
[go: up one dir, main page]

Skip to content

Commit 971f65c

Browse files
committed
chore: remove unnecessary atomicity since map is protected by mutex anyway
Signed-off-by: Danny Kopping <dannykopping@gmail.com>
1 parent f74d799 commit 971f65c

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

enterprise/coderd/prebuilds/metricscollector.go

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ type MetricsCollector struct {
102102

103103
latestState atomic.Pointer[metricsState]
104104

105-
replacementsCounter map[replacementKey]*atomic.Int64
105+
replacementsCounter map[replacementKey]float64
106106
replacementsCounterMu sync.Mutex
107107
}
108108

@@ -114,7 +114,7 @@ func NewMetricsCollector(db database.Store, logger slog.Logger, snapshotter preb
114114
database: db,
115115
logger: log,
116116
snapshotter: snapshotter,
117-
replacementsCounter: make(map[replacementKey]*atomic.Int64),
117+
replacementsCounter: make(map[replacementKey]float64),
118118
}
119119
}
120120

@@ -148,7 +148,7 @@ func (mc *MetricsCollector) Collect(metricsCh chan<- prometheus.Metric) {
148148

149149
mc.replacementsCounterMu.Lock()
150150
for key, val := range mc.replacementsCounter {
151-
metricsCh <- prometheus.MustNewConstMetric(resourceReplacementsDesc, prometheus.CounterValue, float64(val.Load()), key.templateName, key.presetName, key.orgName)
151+
metricsCh <- prometheus.MustNewConstMetric(resourceReplacementsDesc, prometheus.CounterValue, val, key.templateName, key.presetName, key.orgName)
152152
}
153153
mc.replacementsCounterMu.Unlock()
154154

@@ -236,13 +236,10 @@ func (mc *MetricsCollector) trackResourceReplacement(orgName, templateName, pres
236236
defer mc.replacementsCounterMu.Unlock()
237237

238238
key := replacementKey{orgName: orgName, templateName: templateName, presetName: presetName}
239-
if _, ok := mc.replacementsCounter[key]; !ok {
240-
mc.replacementsCounter[key] = &atomic.Int64{}
241-
}
242239

243240
// We only track _that_ a resource replacement occurred, not how many.
244241
// Just one is enough to ruin a prebuild, but we can't know apriori which replacement would cause this.
245242
// For example, say we have 2 replacements: a docker_container and a null_resource; we don't know which one might
246243
// cause an issue (or indeed if either would), so we just track the replacement.
247-
mc.replacementsCounter[key].Add(1)
244+
mc.replacementsCounter[key] += 1
248245
}

0 commit comments

Comments
 (0)
0