private WavefrontTracer(IReporter reporter, IList <KeyValuePair <string, string> > tags)
 {
     ScopeManager  = new AsyncLocalScopeManager();
     this.reporter = reporter;
     Tags          = tags;
     // TODO: figure out sampling
 }
        private WavefrontTracer(
            IReporter reporter, IList <KeyValuePair <string, string> > tags, IList <ISampler> samplers,
            ApplicationTags applicationTags, ISet <string> redMetricsCustomTagKeys,
            TimeSpan reportFrequency, PropagatorRegistry registry, ILoggerFactory loggerFactory)
        {
            ScopeManager  = new AsyncLocalScopeManager();
            this.reporter = reporter;
            Tags          = tags;
            this.samplers = samplers;
            this.redMetricsCustomTagKeys = redMetricsCustomTagKeys;
            this.applicationTags         = applicationTags;
            this.registry = registry;
            logger        = loggerFactory.CreateLogger <WavefrontTracer>();

            WavefrontSpanReporter spanReporter = GetWavefrontSpanReporter(reporter);

            if (spanReporter != null)
            {
                /*
                 * Tracing spans will be converted to metrics and histograms and will be reported
                 * to Wavefront only if you use the WavefrontSpanReporter.
                 */
                InitMetricsHistogramsReporting(spanReporter, applicationTags, reportFrequency,
                                               loggerFactory, out metricsRoot, out metricsScheduler, out heartbeaterService,
                                               out sdkMetricsRegistry);
            }
        }
Esempio n. 3
0
 public Tracer(ServiceConfiguration serviceConfiguration, string spanContextKey, IMetricsSender metricSender)
 {
     _serviceConfiguration = serviceConfiguration;
     _spanContextKey       = spanContextKey;
     _metricSender         = metricSender;
     ScopeManager          = new AsyncLocalScopeManager();
 }
        public void AsyncLocalScopeManager_Activate_ReturnsAsyncLocalScope()
        {
            var span = NSubstitute.Substitute.For <ISpan>();

            AsyncLocalScopeManager scopeManager = new AsyncLocalScopeManager();
            var scope = scopeManager.Activate(span, true);

            Assert.IsInstanceOfType(scope, typeof(AsyncLocalScope));
        }
        public AsyncLocalScope(AsyncLocalScopeManager scopeManager, ISpan wrappedSpan, bool finishOnDispose)
        {
            _scopeManager    = scopeManager;
            _wrappedSpan     = wrappedSpan;
            _finishOnDispose = finishOnDispose;

            _scopeToRestore     = scopeManager.Active;
            scopeManager.Active = this;
        }
        public void AsyncLocalScopeManager_Active_ReturnsInput()
        {
            var span = NSubstitute.Substitute.For <ISpan>();

            AsyncLocalScopeManager scopeManager = new AsyncLocalScopeManager();

            scopeManager.Activate(span, true);

            var active = scopeManager.Active.Span;

            Assert.AreSame(span, active);
        }
Esempio n. 7
0
        private LambdaTracer()
        {
            _logger           = new Logger();
            ScopeManager      = new AsyncLocalScopeManager();
            AdaptiveSampler   = new AdaptiveSampler(Target, Interval, new Random());
            AccountId         = Environment.GetEnvironmentVariable("NEW_RELIC_ACCOUNT_ID") ?? string.Empty;
            TrustedAccountKey = Environment.GetEnvironmentVariable("NEW_RELIC_TRUSTED_ACCOUNT_KEY") ?? string.Empty;
            var primaryAppId = Environment.GetEnvironmentVariable("NEW_RELIC_PRIMARY_APPLICATION_ID");

            PrimaryApplicationId = string.IsNullOrEmpty(primaryAppId) ? "Unknown" : primaryAppId;

            var debug = Environment.GetEnvironmentVariable("NEW_RELIC_DEBUG_MODE");

            DebugMode = !string.IsNullOrEmpty(debug) && debug.Trim().ToLower() == "true" ? true : false;
        }
        public void InstancesShouldNotShareData()
        {
            AsyncLocalScopeManager manager1 = new AsyncLocalScopeManager();
            AsyncLocalScopeManager manager2 = new AsyncLocalScopeManager();

            AsyncLocalScope manager1Scope = new AsyncLocalScope(manager1, Substitute.For <ISpan>(), false);

            manager1.Active = manager1Scope;
            AsyncLocalScope manager2Scope = new AsyncLocalScope(manager2, Substitute.For <ISpan>(), false);

            manager2.Active = manager2Scope;

            Assert.Same(manager1Scope, manager1.Active);
            Assert.Same(manager2Scope, manager2.Active);
        }
 public static CvTextWriterSpan CreateNew(
     CvTextWriterTracer tracer,
     AsyncLocalScopeManager scopeManager,
     string operationName,
     ImmutableList <(string referenceType, MutableSpanContext context)> references,
 public AsyncLocalScopeManagerTests()
 {
     _source = new AsyncLocalScopeManager();
 }
Esempio n. 11
0
 public AsyncLocalScopeTests()
 {
     _scopeManager = new AsyncLocalScopeManager();
 }