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()); }
/// <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()); }
public override IEnumerable <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter) { return(EmptySpanData); }
public abstract IList <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter);
public abstract IEnumerable <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter);
public override IList <ISpanData> GetLatencySampledSpans(ISampledSpanStoreLatencyFilter filter) { return(EMPTY_SPANDATA); }