@@ -4,9 +4,10 @@ import {
44 SemanticInternalAttributes ,
55 TaskRunContext ,
66 TaskRunError ,
7+ TriggerTraceContext ,
78 V3TaskRunContext ,
89} from "@trigger.dev/core/v3" ;
9- import { AttemptId , getMaxDuration } from "@trigger.dev/core/v3/isomorphic" ;
10+ import { AttemptId , getMaxDuration , parseTraceparent } from "@trigger.dev/core/v3/isomorphic" ;
1011import { RUNNING_STATUSES } from "~/components/runs/v3/TaskRunStatus" ;
1112import { logger } from "~/services/logger.server" ;
1213import { eventRepository , rehydrateAttribute } from "~/v3/eventRepository.server" ;
@@ -173,6 +174,8 @@ export class SpanPresenter extends BasePresenter {
173174
174175 const context = await this . #getTaskRunContext( { run, machine : machine ?? undefined } ) ;
175176
177+ const externalTraceId = this . #getExternalTraceId( run . traceContext ) ;
178+
176179 return {
177180 id : run . id ,
178181 friendlyId : run . friendlyId ,
@@ -234,6 +237,7 @@ export class SpanPresenter extends BasePresenter {
234237 spanId : run . spanId ,
235238 isCached : ! ! span . originalRun ,
236239 machinePreset : machine ?. name ,
240+ externalTraceId,
237241 } ;
238242 }
239243
@@ -272,6 +276,7 @@ export class SpanPresenter extends BasePresenter {
272276 id : true ,
273277 spanId : true ,
274278 traceId : true ,
279+ traceContext : true ,
275280 //metadata
276281 number : true ,
277282 taskIdentifier : true ,
@@ -574,4 +579,26 @@ export class SpanPresenter extends BasePresenter {
574579 async #getV4TaskRunContext( { run } : { run : FindRunResult } ) : Promise < TaskRunContext > {
575580 return engine . resolveTaskRunContext ( run . id ) ;
576581 }
582+
583+ #getExternalTraceId( traceContext : unknown ) {
584+ if ( ! traceContext ) {
585+ return ;
586+ }
587+
588+ const parsedTraceContext = TriggerTraceContext . safeParse ( traceContext ) ;
589+
590+ if ( ! parsedTraceContext . success ) {
591+ return ;
592+ }
593+
594+ const externalTraceparent = parsedTraceContext . data . external ?. traceparent ;
595+
596+ if ( ! externalTraceparent ) {
597+ return ;
598+ }
599+
600+ const parsedTraceparent = parseTraceparent ( externalTraceparent ) ;
601+
602+ return parsedTraceparent ?. traceId ;
603+ }
577604}
0 commit comments