Skip to content
19 changes: 19 additions & 0 deletions src/Client/Grpc/GrpcDurableTaskClient.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

using System.Diagnostics;
using System.Text;
using Google.Protobuf.WellKnownTypes;
using Microsoft.DurableTask.Client.Entities;
Expand Down Expand Up @@ -85,6 +86,24 @@ public override async Task<string> ScheduleNewOrchestrationInstanceAsync(
Input = this.DataConverter.Serialize(input),
};

if (Activity.Current?.Id != null || Activity.Current?.TraceStateString != null)
{
if (request.ParentTraceContext == null)
{
request.ParentTraceContext = new P.TraceContext();
}

if (Activity.Current?.Id != null)
{
request.ParentTraceContext.TraceParent = Activity.Current?.Id;
}

if (Activity.Current?.TraceStateString != null)
{
request.ParentTraceContext.TraceState = Activity.Current?.TraceStateString;
}
}

DateTimeOffset? startAt = options?.StartAt;
this.logger.SchedulingOrchestration(
request.InstanceId,
Expand Down
Loading