コード例 #1
0
        public BaggageSetterTests()
        {
            _metricsFactory = new InMemoryMetricsFactory();
            _reporter       = new InMemoryReporter();
            _metrics        = new MetricsImpl(_metricsFactory);
            _mgr            = Substitute.For <IBaggageRestrictionManager>();
            _setter         = new BaggageSetter(_mgr, _metrics);

            _tracer = new Tracer.Builder(Service)
                      .WithReporter(_reporter)
                      .WithSampler(new ConstSampler(true))
                      .WithMetrics(_metrics)
                      .Build();

            _span = (Span)_tracer.BuildSpan("some-operation").Start();
        }
コード例 #2
0
        public void TestSetAndGetBaggageItem()
        {
            string service = "SamplerTest";
            IBaggageRestrictionManager mgr = Substitute.ForPartsOf <DefaultBaggageRestrictionManager>();
            var tracer = new Tracer.Builder(service)
                         .WithReporter(reporter)
                         .WithSampler(new ConstSampler(true))
                         .WithClock(clock)
                         .WithBaggageRestrictionManager(mgr)
                         .Build();
            var span = (Span)tracer.BuildSpan("some-operation").Start();

            string key   = "key";
            string value = "value";

            mgr.GetRestriction(service, key).Returns(new Restriction(true, 10));
            span.SetBaggageItem(key, "value");
            mgr.Received(1).GetRestriction(service, key);
            Assert.Equal(value, span.GetBaggageItem(key));
        }
コード例 #3
0
        private Tracer(
            string serviceName,
            IReporter reporter,
            ISampler sampler,
            PropagationRegistry registry,
            IClock clock,
            IMetrics metrics,
            ILoggerFactory loggerFactory,
            Dictionary <string, object> tags,
            bool zipkinSharedRpcSpan,
            IScopeManager scopeManager,
            IBaggageRestrictionManager baggageRestrictionManager,
            bool expandExceptionLogs)
        {
            ServiceName         = serviceName;
            Reporter            = reporter;
            Sampler             = sampler;
            Registry            = registry;
            Clock               = clock;
            Metrics             = metrics;
            Logger              = loggerFactory.CreateLogger <Tracer>();
            ZipkinSharedRpcSpan = zipkinSharedRpcSpan;
            ScopeManager        = scopeManager;
            _baggageSetter      = new BaggageSetter(baggageRestrictionManager, metrics);
            ExpandExceptionLogs = expandExceptionLogs;

            Version = LoadVersion();
            tags[Constants.JaegerClientVersionTagKey] = Version;

            string hostname = GetHostName();

            if (!tags.ContainsKey(Constants.TracerHostnameTagKey))
            {
                if (hostname != null)
                {
                    tags[Constants.TracerHostnameTagKey] = hostname;
                }
            }

            if (tags.TryGetValue(Constants.TracerIpTagKey, out object ipTag))
            {
                try
                {
                    IPv4 = Utils.IpToInt(ipTag as string);
                }
                catch
                {
                }
            }
            else
            {
                try
                {
                    IPAddress hostIPv4 = Dns.GetHostAddresses(hostname).First(ip => ip.AddressFamily == AddressFamily.InterNetwork);

                    tags[Constants.TracerIpTagKey] = hostIPv4.ToString();
                    IPv4 = Utils.IpToInt(hostIPv4);
                }
                catch
                {
                }
            }

            Tags = tags;
        }
コード例 #4
0
 public Builder WithBaggageRestrictionManager(IBaggageRestrictionManager baggageRestrictionManager)
 {
     _baggageRestrictionManager = baggageRestrictionManager;
     return(this);
 }
コード例 #5
0
 public BaggageSetter(IBaggageRestrictionManager restrictionManager, IMetrics metrics)
 {
     _restrictionManager = restrictionManager ?? throw new ArgumentNullException(nameof(restrictionManager));
     _metrics            = metrics ?? throw new ArgumentNullException(nameof(metrics));
 }