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]); }
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); }
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]); }
public SyncUnaryClientRunner(Channel channel, int payloadSize, HistogramParams histogramParams) { this.channel = GrpcPreconditions.CheckNotNull(channel); this.payloadSize = payloadSize; this.histogram = new Histogram(histogramParams.Resolution, histogramParams.MaxPossible); this.stoppedCts = new CancellationTokenSource(); this.client = BenchmarkService.NewClient(channel); this.runnerTask = Task.Factory.StartNew(Run, TaskCreationOptions.LongRunning); }
public ClientRunnerImpl(List<Channel> channels, ClientType clientType, RpcType rpcType, int outstandingRpcsPerChannel, LoadParams loadParams, PayloadConfig payloadConfig, HistogramParams histogramParams, Func<BasicProfiler> profilerFactory) { GrpcPreconditions.CheckArgument(outstandingRpcsPerChannel > 0, "outstandingRpcsPerChannel"); GrpcPreconditions.CheckNotNull(histogramParams, "histogramParams"); this.channels = new List<Channel>(channels); this.clientType = clientType; this.rpcType = rpcType; this.payloadConfig = payloadConfig; this.histogram = new Histogram(histogramParams.Resolution, histogramParams.MaxPossible); this.runnerTasks = new List<Task>(); foreach (var channel in this.channels) { for (int i = 0; i < outstandingRpcsPerChannel; i++) { var timer = CreateTimer(loadParams, 1.0 / this.channels.Count / outstandingRpcsPerChannel); var optionalProfiler = profilerFactory(); this.runnerTasks.Add(RunClientAsync(channel, timer, optionalProfiler)); } } }
public MetricsServiceImpl(Histogram histogram) { this.histogram = histogram; }
public ClientRunnerImpl(List<Channel> channels, ClientType clientType, RpcType rpcType, int outstandingRpcsPerChannel, LoadParams loadParams, PayloadConfig payloadConfig, HistogramParams histogramParams) { GrpcPreconditions.CheckArgument(outstandingRpcsPerChannel > 0, "outstandingRpcsPerChannel"); this.channels = new List<Channel>(channels); this.clientType = clientType; this.rpcType = rpcType; this.payloadConfig = payloadConfig; this.histogram = new Histogram(histogramParams.Resolution, histogramParams.MaxPossible); this.runnerTasks = new List<Task>(); foreach (var channel in this.channels) { for (int i = 0; i < outstandingRpcsPerChannel; i++) { var timer = CreateTimer(loadParams, 1.0 / this.channels.Count / outstandingRpcsPerChannel); var threadBody = GetThreadBody(channel, timer); this.runnerTasks.Add(Task.Factory.StartNew(threadBody, TaskCreationOptions.LongRunning)); } } }
public MetricsServiceImpl(Histogram histogram) { this.histogram = histogram; }