public static TracerBuilder UseEventSource(this TracerBuilder builder, EventSourceCollectorOption option) { builder.AddAdapter(tracer => { var collector = new EventSourceAdapter(tracer, option.ConvertFunc, option.IsEnableFunc); foreach (var(ev, evoption) in option.Events) { collector.Add(ev, evoption); } return(collector); }); return(builder); }
static void Main(string[] args) { var host = new HostBuilder() .ConfigureServices(services => { services.AddOpenTelemetry(builder => { builder.UseEventSource(EventSourceCollectorOption.Create() .SetIsEnableFunc((src) => { if (!src.Name.StartsWith("System.Threading")) { Console.WriteLine($"{src.Name} enabled"); return(true, new EventEnableOption()); } else { Console.WriteLine($"{src.Name} ignored"); return(false, default);