Skip to content

Commit ae9a2fd

Browse files
committed
Updates per more PR feedback.
1 parent 1dc3277 commit ae9a2fd

File tree

4 files changed

+67
-26
lines changed

4 files changed

+67
-26
lines changed

src/Shared/Grpc/Tracing/DiagnosticActivityExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ static class DiagnosticActivityExtensions
4040
static DiagnosticActivityExtensions()
4141
{
4242
BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance;
43-
SetSpanIdMethod = (typeof(Activity).GetField("_spanId", flags) ?? throw new InvalidOperationException("The field Activity._spanId was not found.")).CreateSetter<Activity, string>();
43+
SetSpanIdMethod = (typeof(Activity).GetField("_spanId", flags)
44+
?? throw new InvalidOperationException("The field Activity._spanId was not found."))
45+
.CreateSetter<Activity, string>();
4446
SetStatusMethod = CreateSetStatus();
4547
}
4648

src/Shared/Grpc/Tracing/TraceActivityConstants.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace Microsoft.DurableTask.Tracing;
77
/// <summary>
88
/// Constants for trace activity names used in Durable Task Framework.
99
/// </summary>
10-
class TraceActivityConstants
10+
static class TraceActivityConstants
1111
{
1212
/// <summary>
1313
/// The name of the activity that represents orchestration operations.

src/Shared/Grpc/Tracing/TraceHelper.cs

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ namespace Microsoft.DurableTask.Tracing;
1414
/// <remarks>
1515
/// Adapted from "https://github.com/Azure/durabletask/blob/main/src/DurableTask.Core/Tracing/TraceHelper.cs".
1616
/// </remarks>
17-
class TraceHelper
17+
static class TraceHelper
1818
{
1919
const string Source = "Microsoft.DurableTask";
2020

@@ -30,7 +30,10 @@ class TraceHelper
3030
public static Activity? StartActivityForNewOrchestration(P.CreateInstanceRequest createInstanceRequest)
3131
{
3232
Activity? newActivity = ActivityTraceSource.StartActivity(
33-
name: CreateSpanName(TraceActivityConstants.CreateOrchestration, createInstanceRequest.Name, createInstanceRequest.Version),
33+
name: CreateSpanName(
34+
TraceActivityConstants.CreateOrchestration,
35+
createInstanceRequest.Name,
36+
createInstanceRequest.Version),
3437
kind: ActivityKind.Producer);
3538

3639
if (newActivity != null)
@@ -44,13 +47,10 @@ class TraceHelper
4447
{
4548
newActivity.SetTag(Schema.Task.Version, createInstanceRequest.Version);
4649
}
47-
}
4850

49-
if (Activity.Current is not null)
50-
{
5151
createInstanceRequest.ParentTraceContext ??= new P.TraceContext();
52-
createInstanceRequest.ParentTraceContext.TraceParent = Activity.Current.Id!;
53-
createInstanceRequest.ParentTraceContext.TraceState = Activity.Current.TraceStateString;
52+
createInstanceRequest.ParentTraceContext.TraceParent = newActivity.Id!;
53+
createInstanceRequest.ParentTraceContext.TraceState = newActivity.TraceStateString;
5454
}
5555

5656
return newActivity;
@@ -73,7 +73,11 @@ class TraceHelper
7373
return null;
7474
}
7575

76-
if (startEvent.ParentTraceContext is null || !ActivityContext.TryParse(startEvent.ParentTraceContext.TraceParent, startEvent.ParentTraceContext.TraceState, out ActivityContext activityContext))
76+
if (startEvent.ParentTraceContext is null
77+
|| !ActivityContext.TryParse(
78+
startEvent.ParentTraceContext.TraceParent,
79+
startEvent.ParentTraceContext.TraceState,
80+
out ActivityContext activityContext))
7781
{
7882
return null;
7983
}
@@ -120,7 +124,11 @@ class TraceHelper
120124
public static Activity? StartTraceActivityForTaskExecution(
121125
P.ActivityRequest request)
122126
{
123-
if (request.ParentTraceContext is null || !ActivityContext.TryParse(request.ParentTraceContext.TraceParent, request.ParentTraceContext.TraceState, out ActivityContext activityContext))
127+
if (request.ParentTraceContext is null
128+
|| !ActivityContext.TryParse(
129+
request.ParentTraceContext.TraceParent,
130+
request.ParentTraceContext.TraceState,
131+
out ActivityContext activityContext))
124132
{
125133
return null;
126134
}
@@ -234,7 +242,8 @@ public static void EmitTraceActivityForSubOrchestrationFailed(
234242

235243
if (failedEvent != null)
236244
{
237-
string statusDescription = failedEvent.FailureDetails.ErrorMessage ?? "Unspecified sub-orchestration failure";
245+
string statusDescription = failedEvent.FailureDetails.ErrorMessage
246+
?? "Unspecified sub-orchestration failure";
238247
activity?.SetStatus(ActivityStatusCode.Error, statusDescription);
239248
}
240249

@@ -378,7 +387,10 @@ static string CreateSpanName(string spanDescription, string? taskName, string? t
378387

379388
if (taskScheduledEvent.ParentTraceContext != null)
380389
{
381-
if (ActivityContext.TryParse(taskScheduledEvent.ParentTraceContext.TraceParent, taskScheduledEvent.ParentTraceContext?.TraceState, out ActivityContext parentContext))
390+
if (ActivityContext.TryParse(
391+
taskScheduledEvent.ParentTraceContext.TraceParent,
392+
taskScheduledEvent.ParentTraceContext?.TraceState,
393+
out ActivityContext parentContext))
382394
{
383395
newActivity.SetSpanId(parentContext.SpanId.ToString());
384396
}
@@ -428,7 +440,11 @@ static string CreateSpanName(string spanDescription, string? taskName, string? t
428440
return null;
429441
}
430442

431-
if (createdEvent.ParentTraceContext != null && ActivityContext.TryParse(createdEvent.ParentTraceContext.TraceParent, createdEvent.ParentTraceContext.TraceState, out ActivityContext parentContext))
443+
if (createdEvent.ParentTraceContext != null
444+
&& ActivityContext.TryParse(
445+
createdEvent.ParentTraceContext.TraceParent,
446+
createdEvent.ParentTraceContext.TraceState,
447+
out ActivityContext parentContext))
432448
{
433449
activity.SetSpanId(parentContext.SpanId.ToString());
434450
}

src/Worker/Grpc/GrpcDurableTaskWorker.Processor.cs

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,9 @@ async Task OnRunOrchestratorAsync(
370370
.Select(e => e.ExecutionStarted)
371371
.FirstOrDefault();
372372

373-
Activity? traceActivity = TraceHelper.StartTraceActivityForOrchestrationExecution(executionStartedEvent, request.OrchestrationTraceContext);
373+
Activity? traceActivity = TraceHelper.StartTraceActivityForOrchestrationExecution(
374+
executionStartedEvent,
375+
request.OrchestrationTraceContext);
374376

375377
if (executionStartedEvent is not null)
376378
{
@@ -402,7 +404,9 @@ async Task OnRunOrchestratorAsync(
402404
{
403405
case P.HistoryEvent.EventTypeOneofCase.SubOrchestrationInstanceCompleted:
404406
{
405-
var subOrchestrationInstanceCreatedEvent = GetSuborchestrationInstanceCreatedEvent(newEvent.SubOrchestrationInstanceCompleted.TaskScheduledId);
407+
P.HistoryEvent? subOrchestrationInstanceCreatedEvent =
408+
GetSuborchestrationInstanceCreatedEvent(
409+
newEvent.SubOrchestrationInstanceCompleted.TaskScheduledId);
406410

407411
TraceHelper.EmitTraceActivityForSubOrchestrationCompleted(
408412
request.InstanceId,
@@ -413,7 +417,9 @@ async Task OnRunOrchestratorAsync(
413417

414418
case P.HistoryEvent.EventTypeOneofCase.SubOrchestrationInstanceFailed:
415419
{
416-
var subOrchestrationInstanceCreatedEvent = GetSuborchestrationInstanceCreatedEvent(newEvent.SubOrchestrationInstanceFailed.TaskScheduledId);
420+
P.HistoryEvent? subOrchestrationInstanceCreatedEvent =
421+
GetSuborchestrationInstanceCreatedEvent(
422+
newEvent.SubOrchestrationInstanceFailed.TaskScheduledId);
417423

418424
TraceHelper.EmitTraceActivityForSubOrchestrationFailed(
419425
request.InstanceId,
@@ -425,23 +431,35 @@ async Task OnRunOrchestratorAsync(
425431

426432
case P.HistoryEvent.EventTypeOneofCase.TaskCompleted:
427433
{
428-
var taskScheduledEvent = GetTaskScheduledEvent(newEvent.TaskCompleted.TaskScheduledId);
434+
P.HistoryEvent? taskScheduledEvent =
435+
GetTaskScheduledEvent(newEvent.TaskCompleted.TaskScheduledId);
429436

430-
TraceHelper.EmitTraceActivityForTaskCompleted(request.InstanceId, taskScheduledEvent, taskScheduledEvent?.TaskScheduled);
437+
TraceHelper.EmitTraceActivityForTaskCompleted(
438+
request.InstanceId,
439+
taskScheduledEvent,
440+
taskScheduledEvent?.TaskScheduled);
431441
break;
432442
}
433443

434444
case P.HistoryEvent.EventTypeOneofCase.TaskFailed:
435445
{
436-
var taskScheduledEvent = GetTaskScheduledEvent(newEvent.TaskFailed.TaskScheduledId);
446+
P.HistoryEvent? taskScheduledEvent =
447+
GetTaskScheduledEvent(newEvent.TaskFailed.TaskScheduledId);
437448

438-
TraceHelper.EmitTraceActivityForTaskFailed(request.InstanceId, taskScheduledEvent, taskScheduledEvent?.TaskScheduled, newEvent.TaskFailed);
449+
TraceHelper.EmitTraceActivityForTaskFailed(
450+
request.InstanceId,
451+
taskScheduledEvent,
452+
taskScheduledEvent?.TaskScheduled,
453+
newEvent.TaskFailed);
439454
break;
440455
}
441456

442457
case P.HistoryEvent.EventTypeOneofCase.TimerFired:
443-
// We immediately publish the activity span for this timer by creating the activity and immediately calling Dispose() on it.
444-
TraceHelper.EmitTraceActivityForTimer(request.InstanceId, executionStartedEvent.Name, newEvent.Timestamp.ToDateTime(), newEvent.TimerFired);
458+
TraceHelper.EmitTraceActivityForTimer(
459+
request.InstanceId,
460+
executionStartedEvent.Name,
461+
newEvent.Timestamp.ToDateTime(),
462+
newEvent.TimerFired);
445463
break;
446464
}
447465
}
@@ -611,16 +629,21 @@ await this.client.AbandonTaskOrchestratorWorkItemAsync(
611629
};
612630
}
613631

614-
var completeOrchestrationAction = response.Actions.FirstOrDefault(a => a.CompleteOrchestration is not null);
632+
var completeOrchestrationAction = response.Actions.FirstOrDefault(
633+
a => a.CompleteOrchestration is not null);
615634

616635
if (completeOrchestrationAction is not null)
617636
{
618637
if (completeOrchestrationAction.CompleteOrchestration.OrchestrationStatus == P.OrchestrationStatus.Failed)
619638
{
620-
traceActivity?.SetStatus(ActivityStatusCode.Error, completeOrchestrationAction.CompleteOrchestration.Result);
639+
traceActivity?.SetStatus(
640+
ActivityStatusCode.Error,
641+
completeOrchestrationAction.CompleteOrchestration.Result);
621642
}
622643

623-
traceActivity?.SetTag(Schema.Task.Status, completeOrchestrationAction.CompleteOrchestration.OrchestrationStatus.ToString());
644+
traceActivity?.SetTag(
645+
Schema.Task.Status,
646+
completeOrchestrationAction.CompleteOrchestration.OrchestrationStatus.ToString());
624647

625648
traceActivity?.Dispose();
626649
}

0 commit comments

Comments
 (0)