OpenTelemetry Trace ID Helper (telemetry/id.go)

opentelemetry-go · trace/internal/telemetry/id.go · go · Apache-2.0
analytics, infra, lang:go, tag:json

Defines a custom TraceID byte array type with hex conversion and JSON serialization methods. Reuse when working with distributed tracing identifiers in Go.

// Source: https://github.com/open-telemetry/opentelemetry-go | License: Apache-2.0 | Copyright You must retain, in the Source form of any Derivative Works
// Provided via justclaw.it.com; keep this notice with the code.
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

package telemetry

import (
	"encoding/hex"
	"errors"
	"fmt"
)

const (
	traceIDSize = 16
	spanIDSize  = 8
)

// TraceID is a custom data type that is used for all trace IDs.
type TraceID [traceIDSize]byte

// String returns the hex string representation form of a TraceID.
func (tid TraceID) String() string {
	return hex.EncodeToString(tid[:])
}

// IsEmpty reports whether the TraceID contains only zero bytes.
func (tid TraceID) IsEmpty() bool {
	return tid == [traceIDSize]byte{}
}

// MarshalJS

... (truncated -- full source via MCP)

See the full source, get the GitHub permalink, and search for more like it.

Get a free API key