mirror of
https://github.com/golang/go
synced 2024-11-18 19:44:46 -07:00
32f14692fc
This means that tags also become cheap if there is no exporter and cleans up the mess with how spans, tags and logs were related. Also fixes the currently broken metrics that relied on the span tags. Change-Id: I8e56b6218a60fd31a1f6c8d329dbb2cab1b9254d Reviewed-on: https://go-review.googlesource.com/c/tools/+/222065 Run-TryBot: Ian Cottrell <iancottrell@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Findley <rfindley@google.com>
45 lines
780 B
Go
45 lines
780 B
Go
// 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 EventType uint8
|
|
|
|
const (
|
|
EventLog = EventType(iota)
|
|
EventStartSpan
|
|
EventEndSpan
|
|
EventTag
|
|
)
|
|
|
|
type Event struct {
|
|
Type EventType
|
|
At time.Time
|
|
Message string
|
|
Error error
|
|
Tags TagList
|
|
}
|
|
|
|
func (e Event) Format(f fmt.State, r rune) {
|
|
if !e.At.IsZero() {
|
|
fmt.Fprint(f, e.At.Format("2006/01/02 15:04:05 "))
|
|
}
|
|
fmt.Fprint(f, e.Message)
|
|
if e.Error != nil {
|
|
if f.Flag('+') {
|
|
fmt.Fprintf(f, ": %+v", e.Error)
|
|
} else {
|
|
fmt.Fprintf(f, ": %v", e.Error)
|
|
}
|
|
}
|
|
for _, tag := range e.Tags {
|
|
fmt.Fprintf(f, "\n\t%v = %v", tag.Key, tag.Value)
|
|
}
|
|
}
|