

#ITRACE LINUX CODE#
I think that tracing hardware will not generate any overhead for executing the code outside of filtered address range, and will do some 1-5% overhead of executing the code in the filtered (required) range.
#ITRACE LINUX FULL#
Second approach is full tracing which should generate hundreds of megabytes per second for every call executed.įilter processing is done in hardware, so there is no huge overhead. It generates tracing output only for EIP address range of the func1 function, and trace log packets are not generated by hardware for other addresses. So, first approach is better in terms of trace log size. I also tried setting the Span OperationName in my Web API Controller method using the GlobalTracer like this but this affects an inner span and NOT the main Trace/Span that shows up on the main Jaeger UI search results page: It does not seem to affect how the Trace/Span associated with the request I received is named. Instead, I want to see the Web API action name or something else that lets me know what kind of request this really is.Īs you can see from my sample code above, I have tried setting the HttpHandlerDiagnosticOptions.OperationNameResolver but this only affects HttpClient calls I make from within my web service. This is not terribly useful to see "HTTP GET" there. So this works OK and I get Traces with their Spans showing up in my Jaeger Search UI ( but it just shows the Trace with my service name (in this case "MySuperCoolWebAPI") followed by "HTTP GET": dotnet add package Jaeger -version 0.4.1.To use all this, you need to add a few packages to your project: Options.OperationNameResolver = (request) => Allows code that can't use DI to also access the tracer. ITracer tracer = new Tracer.Builder(serviceName).WithLoggerFactory(loggerFactory).WithReporter(reporter).WithSampler(sampler).Build()

Var sampler = new ConstSampler(true) //new GuaranteedThroughputSampler(samplingRate, lowerBound) Var reporter = new RemoteReporter.Builder().WithLoggerFactory(loggerFactory).WithSender(udpSender).Build() ILoggerFactory loggerFactory = serviceProvider.GetRequiredService() String serviceName = serviceProvider.GetRequiredService().ApplicationName
