mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-01-05 22:54:18 +02:00
99f830ba01
This moves the `Span` (along with the `SpanKind` and `Link`), `Tracer`, and `TracerProvider` out of the single trace.go file and into their own files. This change is intended to help developers find these types when looking at the directory and to break up the long trace.go file.
38 lines
1.6 KiB
Go
38 lines
1.6 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package trace // import "go.opentelemetry.io/otel/trace"
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go.opentelemetry.io/otel/trace/embedded"
|
|
)
|
|
|
|
// Tracer is the creator of Spans.
|
|
//
|
|
// Warning: Methods may be added to this interface in minor releases. See
|
|
// package documentation on API implementation for information on how to set
|
|
// default behavior for unimplemented methods.
|
|
type Tracer interface {
|
|
// Users of the interface can ignore this. This embedded type is only used
|
|
// by implementations of this interface. See the "API Implementations"
|
|
// section of the package documentation for more information.
|
|
embedded.Tracer
|
|
|
|
// Start creates a span and a context.Context containing the newly-created span.
|
|
//
|
|
// If the context.Context provided in `ctx` contains a Span then the newly-created
|
|
// Span will be a child of that span, otherwise it will be a root span. This behavior
|
|
// can be overridden by providing `WithNewRoot()` as a SpanOption, causing the
|
|
// newly-created Span to be a root span even if `ctx` contains a Span.
|
|
//
|
|
// When creating a Span it is recommended to provide all known span attributes using
|
|
// the `WithAttributes()` SpanOption as samplers will only have access to the
|
|
// attributes provided when a Span is created.
|
|
//
|
|
// Any Span that is created MUST also be ended. This is the responsibility of the user.
|
|
// Implementations of this API may leak memory or other resources if Spans are not ended.
|
|
Start(ctx context.Context, spanName string, opts ...SpanStartOption) (context.Context, Span)
|
|
}
|