From 7efbdd23cc7bc285243ca96464d73f63f454ac37 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 3 Apr 2024 11:32:30 +1300 Subject: [PATCH] add unique identifier to Tracer.ParentSpan tag (#2459) --- .changeset/many-frogs-impress.md | 5 ++++ packages/effect/src/Channel.ts | 4 ++-- packages/effect/src/Effect.ts | 24 +++++++++---------- packages/effect/src/Layer.ts | 12 +++++----- packages/effect/src/Stream.ts | 4 ++-- packages/effect/src/Tracer.ts | 18 ++++++++++---- packages/effect/src/internal/cause.ts | 4 ++-- packages/effect/src/internal/channel.ts | 4 ++-- packages/effect/src/internal/core-effect.ts | 22 ++++++++--------- packages/effect/src/internal/core.ts | 2 +- packages/effect/src/internal/fiberRuntime.ts | 6 ++--- packages/effect/src/internal/layer.ts | 8 +++---- .../effect/src/internal/layer/circular.ts | 4 ++-- packages/effect/src/internal/stream.ts | 4 ++-- packages/effect/src/internal/tracer.ts | 4 ++-- packages/experimental/src/Machine.ts | 4 ++-- packages/opentelemetry/src/internal/tracer.ts | 10 ++++---- 17 files changed, 76 insertions(+), 63 deletions(-) create mode 100644 .changeset/many-frogs-impress.md diff --git a/.changeset/many-frogs-impress.md b/.changeset/many-frogs-impress.md new file mode 100644 index 0000000000..1cac94adea --- /dev/null +++ b/.changeset/many-frogs-impress.md @@ -0,0 +1,5 @@ +--- +"effect": minor +--- + +add unique identifier to Tracer.ParentSpan tag diff --git a/packages/effect/src/Channel.ts b/packages/effect/src/Channel.ts index 3804c4230f..16091f0b0e 100644 --- a/packages/effect/src/Channel.ts +++ b/packages/effect/src/Channel.ts @@ -2107,7 +2107,7 @@ export const withSpan: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } | undefined @@ -2120,7 +2120,7 @@ export const withSpan: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } | undefined diff --git a/packages/effect/src/Effect.ts b/packages/effect/src/Effect.ts index 85b654b90a..983172e17e 100644 --- a/packages/effect/src/Effect.ts +++ b/packages/effect/src/Effect.ts @@ -5126,7 +5126,7 @@ export const currentSpan: Effect = ef * @since 2.0.0 * @category tracing */ -export const currentParentSpan: Effect = effect.currentParentSpan +export const currentParentSpan: Effect = effect.currentParentSpan /** * @since 2.0.0 @@ -5148,12 +5148,12 @@ export const spanLinks: Effect> = effect.spanLinks */ export const linkSpans: { ( - span: Tracer.ParentSpan, + span: Tracer.AnySpan, attributes?: Record ): (self: Effect) => Effect ( self: Effect, - span: Tracer.ParentSpan, + span: Tracer.AnySpan, attributes?: Record ): Effect } = effect.linkSpans @@ -5169,7 +5169,7 @@ export const makeSpan: ( options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } @@ -5190,7 +5190,7 @@ export const makeSpanScoped: ( options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } @@ -5213,7 +5213,7 @@ export const useSpan: { options: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined }, @@ -5233,7 +5233,7 @@ export const withSpan: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } | undefined @@ -5244,7 +5244,7 @@ export const withSpan: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } | undefined @@ -5265,7 +5265,7 @@ export const withSpanScoped: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } @@ -5276,7 +5276,7 @@ export const withSpanScoped: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } @@ -5290,8 +5290,8 @@ export const withSpanScoped: { * @category tracing */ export const withParentSpan: { - (span: Tracer.ParentSpan): (self: Effect) => Effect> - (self: Effect, span: Tracer.ParentSpan): Effect> + (span: Tracer.AnySpan): (self: Effect) => Effect> + (self: Effect, span: Tracer.AnySpan): Effect> } = effect.withParentSpan // ------------------------------------------------------------------------------------- diff --git a/packages/effect/src/Layer.ts b/packages/effect/src/Layer.ts index 0fc23b7139..b95a8317fe 100644 --- a/packages/effect/src/Layer.ts +++ b/packages/effect/src/Layer.ts @@ -896,7 +896,7 @@ export const setConfigProvider: (configProvider: ConfigProvider) => Layer * @since 2.0.0 * @category tracing */ -export const parentSpan: (span: Tracer.ParentSpan) => Layer = circularLayer.parentSpan +export const parentSpan: (span: Tracer.AnySpan) => Layer = circularLayer.parentSpan /** * @since 2.0.0 @@ -962,7 +962,7 @@ export const span: ( options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined readonly onEnd?: @@ -1018,7 +1018,7 @@ export const withSpan: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined readonly onEnd?: @@ -1032,7 +1032,7 @@ export const withSpan: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined readonly onEnd?: @@ -1047,8 +1047,8 @@ export const withSpan: { * @category tracing */ export const withParentSpan: { - (span: Tracer.ParentSpan): (self: Layer) => Layer> - (self: Layer, span: Tracer.ParentSpan): Layer> + (span: Tracer.AnySpan): (self: Layer) => Layer> + (self: Layer, span: Tracer.AnySpan): Layer> } = internal.withParentSpan // ----------------------------------------------------------------------------- diff --git a/packages/effect/src/Stream.ts b/packages/effect/src/Stream.ts index 80204e3472..5b8e41fc0f 100644 --- a/packages/effect/src/Stream.ts +++ b/packages/effect/src/Stream.ts @@ -4025,7 +4025,7 @@ export const withSpan: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } | undefined @@ -4036,7 +4036,7 @@ export const withSpan: { options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } | undefined diff --git a/packages/effect/src/Tracer.ts b/packages/effect/src/Tracer.ts index 5a890f2d80..44d68b02a4 100644 --- a/packages/effect/src/Tracer.ts +++ b/packages/effect/src/Tracer.ts @@ -26,7 +26,7 @@ export interface Tracer { readonly [TracerTypeId]: TracerTypeId span( name: string, - parent: Option.Option, + parent: Option.Option, context: Context.Context, links: ReadonlyArray, startTime: bigint @@ -52,13 +52,21 @@ export type SpanStatus = { * @since 2.0.0 * @category models */ -export type ParentSpan = Span | ExternalSpan +export type AnySpan = Span | ExternalSpan /** * @since 2.0.0 * @category tags */ -export const ParentSpan: Context.Tag = internal.spanTag +export interface ParentSpan { + readonly _: unique symbol +} + +/** + * @since 2.0.0 + * @category tags + */ +export const ParentSpan: Context.Tag = internal.spanTag /** * @since 2.0.0 @@ -81,7 +89,7 @@ export interface Span { readonly name: string readonly spanId: string readonly traceId: string - readonly parent: Option.Option + readonly parent: Option.Option readonly context: Context.Context readonly status: SpanStatus readonly attributes: ReadonlyMap @@ -98,7 +106,7 @@ export interface Span { */ export interface SpanLink { readonly _tag: "SpanLink" - readonly span: ParentSpan + readonly span: AnySpan readonly attributes: Readonly> } diff --git a/packages/effect/src/internal/cause.ts b/packages/effect/src/internal/cause.ts index e11611e0fd..c2c23c3e23 100644 --- a/packages/effect/src/internal/cause.ts +++ b/packages/effect/src/internal/cause.ts @@ -12,7 +12,7 @@ import { pipeArguments } from "../Pipeable.js" import { hasProperty, isFunction } from "../Predicate.js" import type { Predicate, Refinement } from "../Predicate.js" import * as ReadonlyArray from "../ReadonlyArray.js" -import type { ParentSpan, Span } from "../Tracer.js" +import type { AnySpan, Span } from "../Tracer.js" import * as OpCodes from "./opCodes/cause.js" // ----------------------------------------------------------------------------- @@ -989,7 +989,7 @@ export const pretty = (cause: Cause.Cause): string => { message += `\r\n${filterStack(e.stack)}` } if (e.span) { - let current: Span | ParentSpan | undefined = e.span + let current: Span | AnySpan | undefined = e.span let i = 0 while (current && current._tag === "Span" && i < 10) { message += `\r\n at ${current.name}` diff --git a/packages/effect/src/internal/channel.ts b/packages/effect/src/internal/channel.ts index ab90f17949..33dada6d75 100644 --- a/packages/effect/src/internal/channel.ts +++ b/packages/effect/src/internal/channel.ts @@ -2316,7 +2316,7 @@ export const withSpan = dual< options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } @@ -2329,7 +2329,7 @@ export const withSpan = dual< options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } diff --git a/packages/effect/src/internal/core-effect.ts b/packages/effect/src/internal/core-effect.ts index f065d0fa40..4001617546 100644 --- a/packages/effect/src/internal/core-effect.ts +++ b/packages/effect/src/internal/core-effect.ts @@ -1994,7 +1994,7 @@ export const annotateSpans = dual< ) /** @internal */ -export const currentParentSpan: Effect.Effect = serviceOptional( +export const currentParentSpan: Effect.Effect = serviceOptional( internalTracer.spanTag ) @@ -2002,7 +2002,7 @@ export const currentParentSpan: Effect.Effect = core.flatMap( core.context(), (context) => { - const span = context.unsafeMap.get(internalTracer.spanTag.key) as Tracer.ParentSpan | undefined + const span = context.unsafeMap.get(internalTracer.spanTag.key) as Tracer.AnySpan | undefined return span !== undefined && span._tag === "Span" ? core.succeed(span) : core.fail(new core.NoSuchElementException()) @@ -2019,12 +2019,12 @@ export const currentTimeNanosTracing = core.fiberRefGetWith( /* @internal */ export const linkSpans = dual< ( - span: Tracer.ParentSpan, + span: Tracer.AnySpan, attributes?: Record ) => (self: Effect.Effect) => Effect.Effect, ( self: Effect.Effect, - span: Tracer.ParentSpan, + span: Tracer.AnySpan, attributes?: Record ) => Effect.Effect >( @@ -2049,7 +2049,7 @@ export const makeSpan = ( options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } @@ -2117,7 +2117,7 @@ export const useSpan: { (name: string, options: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined }, evaluate: (span: Tracer.Span) => Effect.Effect): Effect.Effect @@ -2131,7 +2131,7 @@ export const useSpan: { const options: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } | undefined = args.length === 1 ? undefined : args[0] @@ -2153,9 +2153,9 @@ export const useSpan: { /** @internal */ export const withParentSpan = dual< ( - span: Tracer.ParentSpan + span: Tracer.AnySpan ) => (self: Effect.Effect) => Effect.Effect>, - (self: Effect.Effect, span: Tracer.ParentSpan) => Effect.Effect> + (self: Effect.Effect, span: Tracer.AnySpan) => Effect.Effect> >(2, (self, span) => provideService(self, internalTracer.spanTag, span)) /** @internal */ @@ -2163,14 +2163,14 @@ export const withSpan = dual< (name: string, options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined }) => (self: Effect.Effect) => Effect.Effect>, (self: Effect.Effect, name: string, options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined }) => Effect.Effect> diff --git a/packages/effect/src/internal/core.ts b/packages/effect/src/internal/core.ts index 58b041cdc4..a99469f587 100644 --- a/packages/effect/src/internal/core.ts +++ b/packages/effect/src/internal/core.ts @@ -3084,7 +3084,7 @@ export const mapInputContext = dual< /** @internal */ export const currentSpanFromFiber = (fiber: Fiber.RuntimeFiber): Option.Option => { const span = fiber.getFiberRef(currentContext).unsafeMap.get(internalTracer.spanTag.key) as - | Tracer.ParentSpan + | Tracer.AnySpan | undefined return span !== undefined && span._tag === "Span" ? Option.some(span) : Option.none() } diff --git a/packages/effect/src/internal/fiberRuntime.ts b/packages/effect/src/internal/fiberRuntime.ts index 542d198967..187eb4e06e 100644 --- a/packages/effect/src/internal/fiberRuntime.ts +++ b/packages/effect/src/internal/fiberRuntime.ts @@ -3547,7 +3547,7 @@ export const makeSpanScoped = ( options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } @@ -3572,14 +3572,14 @@ export const withSpanScoped = dual< (name: string, options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined }) => (self: Effect.Effect) => Effect.Effect | Scope.Scope>, (self: Effect.Effect, name: string, options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined }) => Effect.Effect | Scope.Scope> diff --git a/packages/effect/src/internal/layer.ts b/packages/effect/src/internal/layer.ts index 5e77688968..048bd10a01 100644 --- a/packages/effect/src/internal/layer.ts +++ b/packages/effect/src/internal/layer.ts @@ -1117,7 +1117,7 @@ export const withSpan = dual< (name: string, options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined readonly onEnd?: @@ -1127,7 +1127,7 @@ export const withSpan = dual< (self: Layer.Layer, name: string, options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined readonly onEnd?: @@ -1150,9 +1150,9 @@ export const withSpan = dual< /** @internal */ export const withParentSpan = dual< ( - span: Tracer.ParentSpan + span: Tracer.AnySpan ) => (self: Layer.Layer) => Layer.Layer>, - (self: Layer.Layer, span: Tracer.ParentSpan) => Layer.Layer> + (self: Layer.Layer, span: Tracer.AnySpan) => Layer.Layer> >(2, (self, span) => provide(self, succeedContext(Context.make(tracer.spanTag, span)))) // circular with Effect diff --git a/packages/effect/src/internal/layer/circular.ts b/packages/effect/src/internal/layer/circular.ts index 4c710b8a82..0592a30309 100644 --- a/packages/effect/src/internal/layer/circular.ts +++ b/packages/effect/src/internal/layer/circular.ts @@ -185,7 +185,7 @@ export const setConfigProvider = (configProvider: ConfigProvider.ConfigProvider) layer.scopedDiscard(fiberRuntime.withConfigProviderScoped(configProvider)) /** @internal */ -export const parentSpan = (span: Tracer.ParentSpan): Layer.Layer => +export const parentSpan = (span: Tracer.AnySpan): Layer.Layer => layer.succeedContext(Context.make(tracer.spanTag, span)) /** @internal */ @@ -194,7 +194,7 @@ export const span = ( options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined readonly onEnd?: diff --git a/packages/effect/src/internal/stream.ts b/packages/effect/src/internal/stream.ts index 788fee67e9..fef02fb41b 100644 --- a/packages/effect/src/internal/stream.ts +++ b/packages/effect/src/internal/stream.ts @@ -6803,7 +6803,7 @@ export const withSpan = dual< options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } @@ -6814,7 +6814,7 @@ export const withSpan = dual< options?: { readonly attributes?: Record | undefined readonly links?: ReadonlyArray | undefined - readonly parent?: Tracer.ParentSpan | undefined + readonly parent?: Tracer.AnySpan | undefined readonly root?: boolean | undefined readonly context?: Context.Context | undefined } diff --git a/packages/effect/src/internal/tracer.ts b/packages/effect/src/internal/tracer.ts index 268e9cee63..45e64ba7ce 100644 --- a/packages/effect/src/internal/tracer.ts +++ b/packages/effect/src/internal/tracer.ts @@ -19,7 +19,7 @@ export const make = (options: Omit): Tracer. export const tracerTag = Context.GenericTag("effect/Tracer") /** @internal */ -export const spanTag = Context.GenericTag("effect/ParentSpan") +export const spanTag = Context.GenericTag("effect/ParentSpan") const randomHexString = (function() { const characters = "abcdef0123456789" @@ -46,7 +46,7 @@ export class NativeSpan implements Tracer.Span { constructor( readonly name: string, - readonly parent: Option.Option, + readonly parent: Option.Option, readonly context: Context.Context, readonly links: ReadonlyArray, readonly startTime: bigint diff --git a/packages/experimental/src/Machine.ts b/packages/experimental/src/Machine.ts index 9f5fd87870..f05705c3be 100644 --- a/packages/experimental/src/Machine.ts +++ b/packages/experimental/src/Machine.ts @@ -492,7 +492,7 @@ export const boot = < readonly [ Procedure.TaggedRequest.Any, Deferred.Deferred, - Tracer.ParentSpan | undefined, + Tracer.AnySpan | undefined, addSpans: boolean ] >()) @@ -520,7 +520,7 @@ export const boot = < const context = FiberRefs.getOrDefault(fiberRefs, FiberRef.currentContext) const deferred = Deferred.unsafeMake, Request.Error>(fiber.id()) - const span: Tracer.ParentSpan | undefined = context.unsafeMap.get(Tracer.ParentSpan.key) + const span: Tracer.AnySpan | undefined = context.unsafeMap.get(Tracer.ParentSpan.key) const addSpans = FiberRefs.getOrDefault(fiberRefs, currentTracingEnabled) return [request, deferred, span, addSpans] as const diff --git a/packages/opentelemetry/src/internal/tracer.ts b/packages/opentelemetry/src/internal/tracer.ts index 6ca75d09ed..a0485ee10d 100644 --- a/packages/opentelemetry/src/internal/tracer.ts +++ b/packages/opentelemetry/src/internal/tracer.ts @@ -27,7 +27,7 @@ export class OtelSpan implements EffectTracer.Span { contextApi: OtelApi.ContextAPI, tracer: OtelApi.Tracer, readonly name: string, - readonly parent: Option.Option, + readonly parent: Option.Option, readonly context: Context.Context, readonly links: ReadonlyArray, startTime: bigint @@ -125,7 +125,7 @@ export const make = Effect.map(Tracer, (tracer) => }, context(execution, fiber) { const currentSpan = fiber.getFiberRef(FiberRef.currentContext).unsafeMap.get(EffectTracer.ParentSpan.key) as - | EffectTracer.ParentSpan + | EffectTracer.AnySpan | undefined if (currentSpan === undefined) { @@ -238,14 +238,14 @@ const createTraceState = Option.liftThrowable(OtelApi.createTraceState) const populateContext = ( otelContext: OtelApi.Context, - span: EffectTracer.ParentSpan, + span: EffectTracer.AnySpan, context?: Context.Context ): OtelApi.Context => span instanceof OtelSpan ? OtelApi.trace.setSpan(otelContext, span.span) : OtelApi.trace.setSpanContext(otelContext, makeSpanContext(span, context)) -const makeSpanContext = (span: EffectTracer.ParentSpan, context?: Context.Context): OtelApi.SpanContext => ({ +const makeSpanContext = (span: EffectTracer.AnySpan, context?: Context.Context): OtelApi.SpanContext => ({ spanId: span.spanId, traceId: span.traceId, isRemote: span._tag === "ExternalSpan", @@ -263,7 +263,7 @@ const makeSpanContext = (span: EffectTracer.ParentSpan, context?: Context.Contex }) const extractTraceTag = ( - parent: EffectTracer.ParentSpan, + parent: EffectTracer.AnySpan, context: Context.Context, tag: Context.Tag ) =>