using System.Collections.Frozen; using System.Diagnostics.Metrics; namespace MatrixContentFilter.Services; public class MatrixContentFilterMetrics { private readonly Meter meter = new Meter("MatrixContentFilter"); private FrozenDictionary> _counters = FrozenDictionary>.Empty; public void Increment(string counter, int value = 1) { if(!_counters.TryGetValue(counter, out var c)) { c = meter.CreateCounter(counter); _counters = _counters.Concat([new KeyValuePair>(counter, c)]).ToFrozenDictionary(); } } }