Source File
id_generator.go
Belonging Package
go.opentelemetry.io/otel/sdk/trace
// Copyright The OpenTelemetry Authors// SPDX-License-Identifier: Apache-2.0package trace // import "go.opentelemetry.io/otel/sdk/trace"import ()// IDGenerator allows custom generators for TraceID and SpanID.type IDGenerator interface {// DO NOT CHANGE: any modification will not be backwards compatible and// must never be done outside of a new major release.// NewIDs returns a new trace and span ID.NewIDs(ctx context.Context) (trace.TraceID, trace.SpanID)// DO NOT CHANGE: any modification will not be backwards compatible and// must never be done outside of a new major release.// NewSpanID returns a ID for a new span in the trace with traceID.NewSpanID(ctx context.Context, traceID trace.TraceID) trace.SpanID// DO NOT CHANGE: any modification will not be backwards compatible and// must never be done outside of a new major release.}type randomIDGenerator struct{}var _ IDGenerator = &randomIDGenerator{}// NewSpanID returns a non-zero span ID from a randomly-chosen sequence.func (*randomIDGenerator) (context.Context, trace.TraceID) trace.SpanID {:= trace.SpanID{}for {binary.NativeEndian.PutUint64([:], rand.Uint64())if .IsValid() {break}}return}// NewIDs returns a non-zero trace ID and a non-zero span ID from a// randomly-chosen sequence.func (*randomIDGenerator) (context.Context) (trace.TraceID, trace.SpanID) {:= trace.TraceID{}:= trace.SpanID{}for {binary.NativeEndian.PutUint64([:8], rand.Uint64())binary.NativeEndian.PutUint64([8:], rand.Uint64())if .IsValid() {break}}for {binary.NativeEndian.PutUint64([:], rand.Uint64())if .IsValid() {break}}return ,}func defaultIDGenerator() IDGenerator {return &randomIDGenerator{}}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |