private AverageTimeSpanStatistic(string name, CounterStorage storage) { Name = name; currentName = Metric.CreateCurrentName(name); IsValueDelta = false; Storage = storage; // the following counters are used internally and shouldn't be stored. the derived value, // the average timespan, will be stored in 'storage'. tickAccum = CounterStatistic.FindOrCreate(new StatisticName(name + ".tickAccum"), IsValueDelta, CounterStorage.DontStore); sampleCounter = CounterStatistic.FindOrCreate(new StatisticName(name + ".sampleCounter"), IsValueDelta, CounterStorage.DontStore); instanceLock = new object(); }
// Must be called while Lockable is locked private CounterStatistic(string name, bool useDelta, CounterStorage storage, bool isHidden) { Name = name; currentName = Metric.CreateCurrentName(name); UseDelta = useDelta; Storage = storage; id = Interlocked.Increment(ref nextId); last = 0; firstStatDisplay = true; valueConverter = null; nonOrleansThreadsCounter = 0; this.isHidden = isHidden; specificStatisticFromAllThreads = new ConcurrentStack <ReferenceLong>(); }
// Must be called while Lockable is locked private FloatValueStatistic(string n, Func <float> f) { Name = n; currentName = Metric.CreateCurrentName(n); fetcher = f; }
// Must be called while Lockable is locked private IntValueStatistic(string n, Func <long> f) { Name = n; currentName = Metric.CreateCurrentName(n); fetcher = f; }