public override IList <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter)
        {
            int numSpansToReturn   = filter.MaxSpansToReturn == 0 ? MAX_PER_SPAN_NAME_SAMPLES : filter.MaxSpansToReturn;
            IList <SpanBase> spans = new List <SpanBase>();

            // Try to not keep the lock to much, do the SpanImpl -> SpanData conversion outside the lock.
            lock (samples) {
                PerSpanNameSamples perSpanNameSamples = samples[filter.SpanName];
                if (perSpanNameSamples != null)
                {
                    spans = perSpanNameSamples.GetLatencySamples(filter.LatencyLowerNs, filter.LatencyUpperNs, numSpansToReturn);
                }
            }
            List <ISpanData> ret = new List <ISpanData>(spans.Count);

            foreach (SpanBase span in spans)
            {
                ret.Add(span.ToSpanData());
            }
            return(ret.AsReadOnly());
        }
Exemple #2
0
        /// <inheritdoc/>
        public override IEnumerable <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter)
        {
            int numSpansToReturn         = filter.MaxSpansToReturn == 0 ? MaxPerSpanNameSamples : filter.MaxSpansToReturn;
            IEnumerable <SpanBase> spans = Enumerable.Empty <SpanBase>();

            // Try to not keep the lock to much, do the SpanImpl -> SpanData conversion outside the lock.
            lock (this.samples)
            {
                PerSpanNameSamples perSpanNameSamples = this.samples[filter.SpanName];
                if (perSpanNameSamples != null)
                {
                    spans = perSpanNameSamples.GetLatencySamples(filter.LatencyLower, filter.LatencyUpper, numSpansToReturn);
                }
            }

            List <ISpanData> ret = new List <ISpanData>(spans.Count());

            foreach (SpanBase span in spans)
            {
                ret.Add(span.ToSpanData());
            }

            return(ret.AsReadOnly());
        }
Exemple #3
0
 public override IEnumerable <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter)
 {
     return(EmptySpanData);
 }
Exemple #4
0
 public abstract IList <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter);
 public abstract IEnumerable <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter);
 public override IList <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter)
 {
     return(EMPTY_SPANDATA);
 }