in src/ServiceProfiler.EventPipe.Otel/Azure.Monitor.OpenTelemetry.Profiler.Core/EventListeners/TraceSessionListener.cs [128:155]
private async Task HandleEventSourceCreated(EventSource eventSource)
{
// This has to be the very first statement to making sure the objects are constructed.
_ctorWaitHandle.Wait();
try
{
_logger.LogDebug("Got manual trigger for source: {name}", eventSource.Name);
await Task.Yield();
if (string.Equals(eventSource.Name, OpenTelemetrySDKEventSourceName, StringComparison.OrdinalIgnoreCase))
{
EventKeywords keywordsMask = (EventKeywords)0x0000F;
_logger.LogDebug("Enabling EventSource: {eventSourceName}", eventSource.Name);
EnableEvents(eventSource, EventLevel.Verbose, keywordsMask);
}
else if (eventSource.Name == "System.Threading.Tasks.TplEventSource")
{
// Activity IDs aren't enabled by default.
// Enabling Keyword 0x80 on the TplEventSource turns them on
EnableEvents(eventSource, EventLevel.LogAlways, (EventKeywords)0x80);
}
}
catch (Exception ex)
{
_logger?.LogError(ex, "Error enabling event source: {name}", eventSource.Name);
}
}