mirror of
https://github.com/golang/go
synced 2024-11-05 23:26:18 -07:00
f207553f3c
There is no reason for it to be public now, it is no longer possible to build an event without using the helpers. This also allows us to delay setting the time until after the nil exporter check, for a significant time saving in the no exporter case. name old time/op new time/op delta /Baseline-8 588ns ± 4% 575ns ± 4% -2.24% (p=0.000 n=18+18) /StdLog-8 9.61µs ± 3% 9.58µs ± 3% ~ (p=0.384 n=18+18) /LogNoExporter-8 3.94µs ± 2% 2.26µs ± 2% -42.50% (p=0.000 n=17+18) /TraceNoExporter-8 2.77µs ± 4% 1.11µs ± 2% -59.82% (p=0.000 n=18+18) /StatsNoExporter-8 3.83µs ± 5% 2.15µs ± 3% -43.70% (p=0.000 n=18+17) /Log-8 23.3µs ± 6% 23.0µs ± 1% ~ (p=0.245 n=18+17) /Trace-8 26.4µs ± 3% 26.5µs ± 4% ~ (p=0.269 n=18+17) /Stats-8 5.36µs ± 2% 5.45µs ± 3% +1.68% (p=0.000 n=17+18) Change-Id: Ibde0e20eaf99d03f786cd1436f05eab7b2a17b20 Reviewed-on: https://go-review.googlesource.com/c/tools/+/224657 Run-TryBot: Ian Cottrell <iancottrell@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
29 lines
694 B
Go
29 lines
694 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 event
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
func StartSpan(ctx context.Context, name string, tags ...Tag) (context.Context, func()) {
|
|
ctx = dispatch(ctx, Event{
|
|
Type: StartSpanType,
|
|
Message: name,
|
|
tags: tags,
|
|
})
|
|
return ctx, func() {
|
|
dispatch(ctx, Event{
|
|
Type: EndSpanType,
|
|
})
|
|
}
|
|
}
|
|
|
|
// Detach returns a context without an associated span.
|
|
// This allows the creation of spans that are not children of the current span.
|
|
func Detach(ctx context.Context) context.Context {
|
|
return dispatch(ctx, Event{Type: DetachType})
|
|
}
|