XRay


Span

Namespace: XRay
Attributes:
[<RequireQualifiedAccess>]
[<CompilationRepresentation(4)>]

Operations on spans.

Functions and values

Function or valueDescription
client(...)
Signature: pub:TracePublisher -> tags:(TraceTags -> TraceTags) -> clientOpName:string -> enc:Enc<'i,('a * TraceContext)> -> dec:Dec<'o,('b * TraceContext)> -> f:('i -> Async<'o>) -> span:Span -> a:'a -> Async<'b>
Type parameters: 'i, 'a, 'o, 'b

Creates a client in the contex of an ambient server span, accepting domain-specific inputs of type 'a and returning domain-specific outputs of type 'b. The client span is nested within the ambient span.

complete(pub span)
Signature: pub:TracePublisher -> span:Span -> Span

Completes a span.

completeAck(pub clientSpan dec o)
Signature: pub:TracePublisher -> clientSpan:Span -> dec:Dec<'o,('b * TraceContext)> -> o:'o -> 'b * TraceContext
Type parameters: 'o, 'b

Completes a client span. Decodes a channel output into a domain-specific output. Throws an exception if decoding fails.

completeEcho(pub span enc b)
Signature: pub:TracePublisher -> span:Span -> enc:Enc<'o,('b * TraceContext)> -> b:'b -> 'o
Type parameters: 'o, 'b

Completes a server span. Encodes a domain-specific input and the trace into an output value.

create(tags name trace)
Signature: tags:(TraceTags -> TraceTags) -> name:string -> trace:TraceContext -> Span

Creates a (server) span within the specified trace. Marks the span identified in the trace context, if any, as the parent of the created span.

createClient(tags clientSpanName span)
Signature: tags:(TraceTags -> TraceTags) -> clientSpanName:string -> span:Span -> Span

Creates a client span within the specified (server) span. Sets the specified span as the parent of the created (client) span.

decodeStart(pub tags spanName dec i)
Signature: pub:TracePublisher -> tags:(TraceTags -> TraceTags) -> spanName:string -> dec:Dec<'i,('a * TraceContext)> -> i:'i -> 'a * Span
Type parameters: 'i, 'a

Starts a server span. Decodes a channel input into a domain-specific input. Returns the domain-specific input and the span. Throws an exception if decoding fails.

error(pub error span)
Signature: pub:TracePublisher -> error:string -> span:Span -> Span

Errors (and completes) a span.

ofTelemetryEvent(e)
Signature: e:TelemetryEvent -> Span

Extracts a span from a telemetry event.

server(pub tags spanName dec enc f i)
Signature: pub:TracePublisher -> tags:(TraceTags -> TraceTags) -> spanName:string -> dec:Dec<'i,('a * TraceContext)> -> enc:Enc<'o,('b * TraceContext)> -> f:(Span -> 'a -> Async<'b>) -> i:'i -> Async<'o>
Type parameters: 'i, 'a, 'o, 'b

Creates a server accepting inputs of type 'i and producing output of type 'o based on a function accepting the ambient span of the given name and a domain-specific input of type 'a producing a domain-specific output of type 'b. If the provided function throws, the exception is escalated and the span is completed in error. Telemetry events are emitted to the specified log.

start(pub tags name trace)
Signature: pub:TracePublisher -> tags:(TraceTags -> TraceTags) -> name:string -> trace:TraceContext -> Span

Starts a (server) span within the specified trace. Marks the span identified in the trace context, if any, as the parent of the created span.

startClient(...)
Signature: pub:TracePublisher -> tags:(TraceTags -> TraceTags) -> clientSpanName:string -> span:Span -> Span

Starts a client span within the specified (server) span. Sets the specified span as the parent of the created (client) span.

startPropagate(...)
Signature: pub:TracePublisher -> tags:(TraceTags -> TraceTags) -> span:Span -> clientSpanName:string -> enc:('a * TraceContext -> 'i) -> a:'a -> Span * 'i
Type parameters: 'a, 'i

Starts a client span in the context of a server span. Encodes a domain-specific input into a channel input, propagating the trace. Returns a span representing the client invocation and the input containing the trace context to transmit using the client.

toTelemetryEvent(eventType s)
Signature: eventType:string -> s:Span -> TelemetryEvent

Creates a telemetry event of the specified type for the Span.

toTraceContext(s)
Signature: s:Span -> TraceContext

Creates a trace context (signature) to embed into a message to be propagated, indicating that it is in the scope of the specified span.

tryOfTelemetryEvent(e)
Signature: e:TelemetryEvent -> Span option

Extracts a span from a telemetry event.

Fork me on GitHub