public IList <SpanBase> GetLatencySamples(long latencyLowerNs, long latencyUpperNs, int maxSpansToReturn)
            {
                List <SpanBase> output = new List <SpanBase>(maxSpansToReturn);

                for (int i = 0; i < NUM_LATENCY_BUCKETS; i++)
                {
                    ISampledLatencyBucketBoundaries boundaries = LatencyBucketBoundaries.Values[i];
                    if (latencyUpperNs >= boundaries.LatencyLowerNs &&
                        latencyLowerNs < boundaries.LatencyUpperNs)
                    {
                        latencyBuckets[i].GetSamplesFilteredByLatency(latencyLowerNs, latencyUpperNs, maxSpansToReturn, output);
                    }
                }
                return(output);
            }
 public Bucket GetLatencyBucket(long latencyNs)
 {
     for (int i = 0; i < NUM_LATENCY_BUCKETS; i++)
     {
         ISampledLatencyBucketBoundaries boundaries = LatencyBucketBoundaries.Values[i];
         if (latencyNs >= boundaries.LatencyLowerNs &&
             latencyNs < boundaries.LatencyUpperNs)
         {
             return(latencyBuckets[i]);
         }
     }
     // latencyNs is negative or Long.MAX_VALUE, so this Span can be ignored. This cannot happen
     // in real production because System#nanoTime is monotonic.
     return(null);
 }
Пример #3
0
            public IEnumerable <SpanBase> GetLatencySamples(TimeSpan latencyLower, TimeSpan latencyUpper, int maxSpansToReturn)
            {
                List <SpanBase> output = new List <SpanBase>(maxSpansToReturn);

                for (int i = 0; i < NumLatencyBuckets; i++)
                {
                    ISampledLatencyBucketBoundaries boundaries = LatencyBucketBoundaries.Values[i];
                    if (latencyUpper >= boundaries.LatencyLower &&
                        latencyLower < boundaries.LatencyUpper)
                    {
                        this.latencyBuckets[i].GetSamplesFilteredByLatency(latencyLower, latencyUpper, maxSpansToReturn, output);
                    }
                }

                return(output);
            }
Пример #4
0
            public Bucket GetLatencyBucket(TimeSpan latency)
            {
                for (int i = 0; i < NumLatencyBuckets; i++)
                {
                    ISampledLatencyBucketBoundaries boundaries = LatencyBucketBoundaries.Values[i];
                    if (latency >= boundaries.LatencyLower &&
                        latency < boundaries.LatencyUpper)
                    {
                        return(this.latencyBuckets[i]);
                    }
                }

                // latencyNs is negative or Long.MAX_VALUE, so this Span can be ignored. This cannot happen
                // in real production because System#nanoTime is monotonic.
                return(null);
            }