Esempio n. 1
0
        /// <summary>
        ///     Initializes this latency monitor with the given interval and number of samples over which
        ///     the average latency is determined.
        /// </summary>
        /// <param name="latencyGrain"></param>
        /// <param name="interval"></param>
        /// <param name="numSamples"></param>
        /// <param name="performLatencyMeasurements"></param>
        /// <param name="endPointName"></param>
        public LatencyMonitor(
            ILatency latencyGrain,
            TimeSpan interval,
            int numSamples,
            bool performLatencyMeasurements,
            string endPointName = null
            )
        {
            if (latencyGrain == null)
            {
                throw new ArgumentNullException(nameof(latencyGrain));
            }
            if (interval < TimeSpan.Zero)
            {
                throw new ArgumentOutOfRangeException(nameof(interval), "A positive interval must be given");
            }
            if (numSamples < 1)
            {
                throw new ArgumentOutOfRangeException(nameof(numSamples), "1 or more samples must be specified");
            }

            _syncRoot = new object();
            _interval = interval;
            _performLatencyMeasurements = performLatencyMeasurements;
            _latencyGrain = latencyGrain;
            _measurements = new TimeSpanStatisticsContainer(numSamples);
            _endPointName = endPointName;
            _stopwatch    = new Stopwatch();
        }
Esempio n. 2
0
        private void AppendDelta(TimeSpan currentValue, ref TimeSpan previousValue, TimeSpanStatisticsContainer container)
        {
            var delta = currentValue - previousValue;

            previousValue = currentValue;
            container.Enqueue(delta);
        }
Esempio n. 3
0
        public EndPointStatistics(IRemotingEndPoint endPoint)
        {
            if (endPoint == null)
            {
                throw new ArgumentNullException(nameof(endPoint));
            }

            _endPoint = endPoint;

            const int numSamples = 60;

            _bytesSent         = new StatisticsContainer(numSamples);
            _bytesReceived     = new StatisticsContainer(numSamples);
            _messagesSent      = new StatisticsContainer(numSamples);
            _messagesReceived  = new StatisticsContainer(numSamples);
            _servantsCollected = new StatisticsContainer(numSamples);
            _proxiesCollected  = new StatisticsContainer(numSamples);
            _gcTime            = new TimeSpanStatisticsContainer(numSamples);
        }