public static FunctionsActivityResponse StartInternalActivity()

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);
        }