public override IList <ISpanData> GetErrorSampledSpans(ISampledSpanStoreErrorFilter 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.GetErrorSamples(filter.CanonicalCode, 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 <SpanData> GetErrorSampledSpans(ISampledSpanStoreErrorFilter filter)
        {
            var numSpansToReturn = filter.MaxSpansToReturn == 0 ? MaxPerSpanNameSamples : filter.MaxSpansToReturn;
            var spans            = Enumerable.Empty <SpanBase>();

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

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

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

            return(ret.AsReadOnly());
        }
示例#3
0
 public override IEnumerable <ISpanData> GetErrorSampledSpans(ISampledSpanStoreErrorFilter filter)
 {
     return(EmptySpanData);
 }
示例#4
0
 public abstract IList <ISpanData> GetErrorSampledSpans(ISampledSpanStoreErrorFilter filter);
 public abstract IEnumerable <ISpanData> GetErrorSampledSpans(ISampledSpanStoreErrorFilter filter);
 public override IList <ISpanData> GetErrorSampledSpans(ISampledSpanStoreErrorFilter filter)
 {
     return(EMPTY_SPANDATA);
 }