Closed
Description
public protocol TracerProtocol: LegacyTracerProtocol {
/// The concrete type of span this tracer will be producing/
associatedtype Span: Tracing.Span
/// Start a new ``Span`` with the given `Baggage`.
///
/// The current task-local `Baggage` is picked up and provided to the underlying tracer.
/// It is also possible to pass a specific `baggage` explicitly, in which case attempting
/// to pick up the task-local baggage is prevented. This can be useful when we know that
/// we're about to start a top-level span, or if a span should be started from a different,
/// stored away previously,
///
/// - Note: Prefer ``withSpan(_:baggage:ofKind:at:function:file:line:operation:)`` to start
/// a span as it automatically takes care of ending the span, and recording errors when thrown.
/// Use `startSpan` iff you need to pass the span manually to a different
/// location in your source code to end it.
///
/// - Warning: You must `end()` the span when it the measured operation has completed explicitly,
/// otherwise the span object will potentially never be released nor reported.
///
/// - Parameters:
/// - operationName: The name of the operation being traced. This may be a handler function, database call, ...
/// - baggage: The `Baggage` providing information on where to start the new ``Span``.
/// - kind: The ``SpanKind`` of the new ``Span``.
/// - clock: The clock to use as time source for the start time of the ``Span``
/// - function: The function name in which the span was started
/// - fileID: The `fileID` where the span was started.
/// - line: The file line where the span was started.
func startSpan(
_ operationName: String,
baggage: @autoclosure () -> Baggage,
ofKind kind: SpanKind,
clock: some TracerInstantProtocol,
function: String,
file fileID: String,
line: UInt
) -> TracerSpan
func startSpan(
_ operationName: String,
baggage: @autoclosure () -> Baggage,
ofKind kind: SpanKind,
function: String,
file fileID: String,
line: UInt
) -> TracerSpan
}
extension TracerProtocol {
func startSpan(
_ operationName: String,
baggage: @autoclosure () -> Baggage,
ofKind kind: SpanKind,
function: String,
file fileID: String,
line: UInt
) -> TracerSpan {
}
}
Metadata
Metadata
Assignees
Labels
No labels