// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package telemetry import ( "fmt" "time" ) type SpanContext struct { TraceID TraceID SpanID SpanID } type Span struct { Name string ID SpanContext ParentID SpanID Start time.Time Finish time.Time Tags TagList Events []Event } func (s *SpanContext) Format(f fmt.State, r rune) { fmt.Fprintf(f, "%v:%v", s.TraceID, s.SpanID) } func (s *Span) Format(f fmt.State, r rune) { fmt.Fprintf(f, "%v %v", s.Name, s.ID) if s.ParentID.IsValid() { fmt.Fprintf(f, "[%v]", s.ParentID) } fmt.Fprintf(f, " %v->%v", s.Start, s.Finish) }