コード例 #1
0
        public SpanProcessor(ISpanProcessorTask spanProcessorTask, ISpanCollector spanCollector,
                             ZipkinConfig zipkinConfig, ILogger <SpanProcessor> logger)
        {
            if (spanProcessorTask == null)
            {
                throw new ArgumentNullException(nameof(spanProcessorTask));
            }
            if (spanCollector == null)
            {
                throw new ArgumentNullException(nameof(spanCollector));
            }
            if (zipkinConfig == null)
            {
                throw new ArgumentNullException(nameof(zipkinConfig));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            _zipkinConfig      = zipkinConfig;
            _spanCollector     = spanCollector;
            _serializableSpans = new ConcurrentQueue <JsonSpan>();
            _logger            = logger;
            _spanProcessorTask = spanProcessorTask;
        }
コード例 #2
0
        internal Tracer(IPerformanceConfig config, ICollector[] collectors, TraceHeader? traceHeader, bool useStopwatch = false)
        {
            if (config == null) throw new ArgumentNullException(nameof(config));

            if (collectors != null && collectors.Length > 0)
            {
                ISpanCollector spanCollector = null;
                IMetricCollector metricCollector = null;
                foreach (var item in collectors)
                {
                    if ((spanCollector = item as ISpanCollector) != null)
                    {
                        if (lstSpanCollector == null)
                        {
                            lstSpanCollector = new List<ISpanCollector>();
                        }
                        lstSpanCollector.Add(spanCollector);
                    }
                    else if ((metricCollector = item as IMetricCollector) != null)
                    {
                        if (lstMetrictCollector == null)
                        {
                            lstMetrictCollector = new List<IMetricCollector>();
                        }
                        lstMetrictCollector.Add(metricCollector);
                    }
                }
            }

            this.traceHeader = traceHeader;
            this.useStopwatch = useStopwatch;
        }
コード例 #3
0
        public bool SubmitEndAnnotation(string annotationName, ISpanCollector spanCollector)
        {
            Span span = SpanAndEndpoint.Span;

            if (span == null)
            {
                return(false);
            }
            Annotation annotation = new Annotation();

            annotation.Timestamp = Util.CurrentTimeMicroseconds();
            annotation.Host      = SpanAndEndpoint.Endpoint;
            annotation.Value     = annotationName;
            span.Annotations.Add(annotation);
            span.Duration = annotation.Timestamp - span.Timestamp;
            spanCollector.Collect(span);
            return(true);
        }
コード例 #4
0
        public SpanTracer(ZipkinConfig zipkinConfig, ISpanCollector spanCollector, IServiceEndpoint zipkinEndpoint)
        {
            if (zipkinConfig == null)
            {
                throw new ArgumentNullException(nameof(zipkinConfig));
            }
            if (spanCollector == null)
            {
                throw new ArgumentNullException(nameof(spanCollector));
            }
            if (zipkinEndpoint == null)
            {
                throw new ArgumentNullException(nameof(zipkinEndpoint));
            }

            _spanCollector  = spanCollector;
            _zipkinEndpoint = zipkinEndpoint;
            _zipkinConfig   = zipkinConfig;
        }
コード例 #5
0
 ServerTracer(ServerSpanAndEndpoint spanAndEndpoint, ISpanCollector spanCollector, Sampler traceSampler)
 {
     base.SpanAndEndpoint = SpanAndEndpoint = spanAndEndpoint;
     this.spanCollector   = spanCollector;
     this.traceSampler    = traceSampler;
 }
コード例 #6
0
 public ServerTracer(IServerSpanState state, ISpanCollector spanCollector, Sampler traceSampler)
     : this(new ServerSpanAndEndpoint(state), spanCollector, traceSampler)
 {
 }
コード例 #7
0
 /**
  * @param spanCollector
  */
 public Builder SpanCollector(ISpanCollector spanCollector)
 {
     this.spanCollector = spanCollector;
     return(this);
 }
コード例 #8
0
 public LocalTracer(IServerClientAndLocalSpanState state, ISpanCollector spanCollector, Sampler traceSampler)
     : this(new LocalSpanAndEndpoint(state), spanCollector, traceSampler)
 {
 }