internal void UpdateCounter(IDictionary <String, Int32> logTypeToCount, Int32 logCount, Int32 dropLogCount, Int32 sendBytes, Double elapsedTimeMS) { lock (_lock) { _temporalCounter.LogCount += logCount; _temporalCounter.DropLogCount += dropLogCount; _temporalCounter.SendBytes += sendBytes; _temporalCounter.ElapsedMSTotal += elapsedTimeMS; _temporalCounter.UpdateCount += 1; if (_temporalCounter.ElapsedMSPeak < elapsedTimeMS) { _temporalCounter.ElapsedMSPeak = elapsedTimeMS; } } Interlocked.Add(ref _requestPutLogCount, logCount); Interlocked.Add(ref _failLogCount, dropLogCount); Interlocked.Add(ref _pendingLogCount, logCount); foreach (var pair in logTypeToCount) { LogTypeToCount.AddOrUpdate(pair.Key, pair.Value, (key, oldValue) => oldValue + pair.Value); } }
internal void ResetLogTypeToCount() { LogTypeToCount.Clear(); }