コード例 #1
0
            long GetQpsAndReset()
            {
                var snapshot     = histogram.GetSnapshot(true);
                var timeSnapshot = timeStats.GetSnapshot(true);

                return((long)(snapshot.Count / timeSnapshot.WallClockTime.TotalSeconds));
            }
コード例 #2
0
ファイル: StressTestClient.cs プロジェクト: zs1621/grpc
            long GetQpsAndReset()
            {
                var snapshot        = histogram.GetSnapshot(true);
                var elapsedSnapshot = wallClockStopwatch.GetElapsedSnapshot(true);

                return((long)(snapshot.Count / elapsedSnapshot.TotalSeconds));
            }
コード例 #3
0
        public void ExtremeObservations()
        {
            var hist = new Histogram(0.01, 60e9);
            hist.AddObservation(-0.5);  // should be in the first bucket
            hist.AddObservation(1e12);  // should be in the last bucket 

            var data = hist.GetSnapshot();
            Assert.AreEqual(1, data.Bucket[0]);
            Assert.AreEqual(1, data.Bucket[data.Bucket.Count - 1]);
        }
コード例 #4
0
        public void ExtremeObservations()
        {
            var hist = new Histogram(0.01, 60e9);

            hist.AddObservation(-0.5);  // should be in the first bucket
            hist.AddObservation(1e12);  // should be in the last bucket

            var data = hist.GetSnapshot();

            Assert.AreEqual(1, data.Bucket[0]);
            Assert.AreEqual(1, data.Bucket[data.Bucket.Count - 1]);
        }
コード例 #5
0
        public void Reset()
        {
            var hist = new Histogram(0.01, 60e9);

            hist.AddObservation(10000);
            hist.AddObservation(11000);

            var data = hist.GetSnapshot(true);  // snapshot contains data before reset

            Assert.AreEqual(2, data.Count);
            Assert.AreEqual(10000, data.MinSeen);
            Assert.AreEqual(11000, data.MaxSeen);

            data = hist.GetSnapshot();  // snapshot contains state after reset
            Assert.AreEqual(0, data.Count);
            Assert.AreEqual(double.PositiveInfinity, data.MinSeen);
            Assert.AreEqual(double.NegativeInfinity, data.MaxSeen);
            Assert.AreEqual(0, data.Sum);
            Assert.AreEqual(0, data.SumOfSquares);
            CollectionAssert.AreEqual(new uint[data.Bucket.Count], data.Bucket);
        }
コード例 #6
0
        public ClientStats GetStats(bool reset)
        {
            var histogramData  = histogram.GetSnapshot(reset);
            var secondsElapsed = wallClockStopwatch.GetElapsedSnapshot(reset).TotalSeconds;

            // TODO: populate user time and system time
            return(new ClientStats
            {
                Latencies = histogramData,
                TimeElapsed = secondsElapsed,
                TimeUser = 0,
                TimeSystem = 0
            });
        }
コード例 #7
0
        public void Simple()
        {
            var hist = new Histogram(0.01, 60e9);
            hist.AddObservation(10000);
            hist.AddObservation(10000);
            hist.AddObservation(11000);
            hist.AddObservation(11000);

            var data = hist.GetSnapshot();

            Assert.AreEqual(4, data.Count);
            Assert.AreEqual(42000.0, data.Sum, 1e-6);
            Assert.AreEqual(10000, data.MinSeen);
            Assert.AreEqual(11000, data.MaxSeen);
            Assert.AreEqual(2.0*10000*10000 + 2.0*11000*11000, data.SumOfSquares, 1e-6);

            // 1.01^925 < 10000 < 1.01^926
            Assert.AreEqual(2, data.Bucket[925]);
            Assert.AreEqual(2, data.Bucket[935]);
        }
コード例 #8
0
        public void Simple()
        {
            var hist = new Histogram(0.01, 60e9);

            hist.AddObservation(10000);
            hist.AddObservation(10000);
            hist.AddObservation(11000);
            hist.AddObservation(11000);

            var data = hist.GetSnapshot();

            Assert.AreEqual(4, data.Count);
            Assert.AreEqual(42000.0, data.Sum, 1e-6);
            Assert.AreEqual(10000, data.MinSeen);
            Assert.AreEqual(11000, data.MaxSeen);
            Assert.AreEqual(2.0 * 10000 * 10000 + 2.0 * 11000 * 11000, data.SumOfSquares, 1e-6);

            // 1.01^925 < 10000 < 1.01^926
            Assert.AreEqual(2, data.Bucket[925]);
            Assert.AreEqual(2, data.Bucket[935]);
        }
コード例 #9
0
ファイル: ClientRunners.cs プロジェクト: zhiqinghuang/grpc
        public ClientStats GetStats(bool reset)
        {
            var histogramData  = histogram.GetSnapshot(reset);
            var secondsElapsed = wallClockStopwatch.GetElapsedSnapshot(reset).TotalSeconds;

            if (reset)
            {
                statsResetCount.Increment();
            }

            GrpcEnvironment.Logger.Info("[ClientRunnerImpl.GetStats] GC collection counts: gen0 {0}, gen1 {1}, gen2 {2}, gen3 {3} (histogram reset count:{4}, seconds since reset: {5})",
                                        GC.CollectionCount(0), GC.CollectionCount(1), GC.CollectionCount(2), GC.CollectionCount(3), statsResetCount.Count, secondsElapsed);

            // TODO: populate user time and system time
            return(new ClientStats
            {
                Latencies = histogramData,
                TimeElapsed = secondsElapsed,
                TimeUser = 0,
                TimeSystem = 0
            });
        }
コード例 #10
0
        public void MergeSnapshots()
        {
            var data = new HistogramData();

            var hist1 = new Histogram(0.01, 60e9);

            hist1.AddObservation(-0.5);  // should be in the first bucket
            hist1.AddObservation(1e12);  // should be in the last bucket
            hist1.GetSnapshot(data, false);

            var hist2 = new Histogram(0.01, 60e9);

            hist2.AddObservation(10000);
            hist2.AddObservation(11000);
            hist2.GetSnapshot(data, false);

            Assert.AreEqual(4, data.Count);
            Assert.AreEqual(-0.5, data.MinSeen);
            Assert.AreEqual(1e12, data.MaxSeen);
            Assert.AreEqual(1, data.Bucket[0]);
            Assert.AreEqual(1, data.Bucket[925]);
            Assert.AreEqual(1, data.Bucket[935]);
            Assert.AreEqual(1, data.Bucket[data.Bucket.Count - 1]);
        }
コード例 #11
0
        public void Reset()
        {
            var hist = new Histogram(0.01, 60e9);
            hist.AddObservation(10000);
            hist.AddObservation(11000);

            var data = hist.GetSnapshot(true);  // snapshot contains data before reset
            Assert.AreEqual(2, data.Count);
            Assert.AreEqual(10000, data.MinSeen);
            Assert.AreEqual(11000, data.MaxSeen);

            data = hist.GetSnapshot();  // snapshot contains state after reset
            Assert.AreEqual(0, data.Count);
            Assert.AreEqual(double.PositiveInfinity, data.MinSeen);
            Assert.AreEqual(double.NegativeInfinity, data.MaxSeen);
            Assert.AreEqual(0, data.Sum);
            Assert.AreEqual(0, data.SumOfSquares);
            CollectionAssert.AreEqual(new uint[data.Bucket.Count], data.Bucket); 
        }