in src/OpenTelemetryEngine/Traces/FunctionsActivityBuilder.cs [20:48]
public static FunctionsActivityResponse StartInternalActivity(string invocationId, string traceParent, string traceState)
{
Activity? activity = sourceInternal.StartActivity("InternalActivity");
if (activity == null)
{
Console.WriteLine("WARNING: The InternalActivity was null, logs and spans generated in user code may not link properly to host telemetry");
return new FunctionsActivityResponse(null);
}
activity.AddTag("invocationId", invocationId);
if (ActivityContext.TryParse(traceParent, traceState, true, out ActivityContext activityContext))
{
activity.SetId(traceParent);
activity.SetSpanId(activityContext.SpanId.ToString());
activity.SetTraceId(activityContext.TraceId.ToString());
activity.SetRootId(activityContext.TraceId.ToString());
}
if(!internalActivitiesByInvocationId.TryAdd(invocationId, activity))
{
Console.WriteLine("WARNING: An activity for this InvocationId already exists, stopping this one");
activity.Stop();
return new FunctionsActivityResponse(null);
}
return new FunctionsActivityResponse(activity);
}