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); } }
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); }
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(); }
public AsyncLocalScopeTests() { _scopeManager = new AsyncLocalScopeManager(); }