From 9d9573a51026a541a758e7ae3f7f0994e79db2e2 Mon Sep 17 00:00:00 2001 From: rootdarkarchon Date: Fri, 19 Jan 2024 11:39:39 +0100 Subject: [PATCH] try locking metrics --- .../Metrics/MareMetrics.cs | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/MareSynchronosServer/MareSynchronosShared/Metrics/MareMetrics.cs b/MareSynchronosServer/MareSynchronosShared/Metrics/MareMetrics.cs index 6dd86b5..624e907 100644 --- a/MareSynchronosServer/MareSynchronosShared/Metrics/MareMetrics.cs +++ b/MareSynchronosServer/MareSynchronosShared/Metrics/MareMetrics.cs @@ -30,49 +30,55 @@ public class MareMetrics public void IncGaugeWithLabels(string gaugeName, double value = 1.0, params string[] labels) { - if (_gauges.TryGetValue(gaugeName, out Gauge gauge)) + if (gauges.TryGetValue(gaugeName, out Gauge gauge)) { - gauge.WithLabels(labels).Inc(value); + lock (gauge) + gauge.WithLabels(labels).Inc(value); } } public void DecGaugeWithLabels(string gaugeName, double value = 1.0, params string[] labels) { - if (_gauges.TryGetValue(gaugeName, out Gauge gauge)) + if (gauges.TryGetValue(gaugeName, out Gauge gauge)) { - gauge.WithLabels(labels).Dec(value); + lock (gauge) + gauge.WithLabels(labels).Dec(value); } } public void SetGaugeTo(string gaugeName, double value) { - if (gauges.ContainsKey(gaugeName)) + if (gauges.TryGetValue(gaugeName, out Gauge gauge)) { - gauges[gaugeName].Set(value); + lock (gauge) + gauge.Set(value); } } public void IncGauge(string gaugeName, double value = 1.0) { - if (gauges.ContainsKey(gaugeName)) + if (gauges.TryGetValue(gaugeName, out Gauge gauge)) { - gauges[gaugeName].Inc(value); + lock (gauge) + gauge.Inc(value); } } public void DecGauge(string gaugeName, double value = 1.0) { - if (gauges.ContainsKey(gaugeName)) + if (gauges.TryGetValue(gaugeName, out Gauge gauge)) { - gauges[gaugeName].Dec(value); + lock (gauge) + gauge.Dec(value); } } public void IncCounter(string counterName, double value = 1.0) { - if (counters.ContainsKey(counterName)) + if (counters.TryGetValue(counterName, out Counter counter)) { - counters[counterName].Inc(value); + lock (counter) + counter.Inc(value); } } } \ No newline at end of file