Пример #1
0
        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);
            }
        }
Пример #2
0
 internal void ResetLogTypeToCount()
 {
     LogTypeToCount.Clear();
 }