Documentation ¶
Overview ¶
Example ¶
package main import ( "context" "log" "time" "github.com/Bofry/trace" ) func main() { tp, err := trace.JaegerProvider("http://localhost:14268/api/traces", trace.ServiceName("trace-demo"), trace.Environment("go-test"), trace.Pid(), ) if err != nil { log.Fatal(err) } // Register our TracerProvider as the global so any imported // instrumentation in the future will default to using it. trace.SetTracerProvider(tp) ctx, cancel := context.WithCancel(context.Background()) defer cancel() // Cleanly shutdown and flush telemetry when the application exits. defer func(ctx context.Context) { // Do not make the application hang when it is shutdown. ctx, cancel = context.WithTimeout(ctx, time.Second*5) defer cancel() if err := tp.Shutdown(ctx); err != nil { log.Fatal(err) } }(ctx) tr := tp.Tracer("example-main") sp := tr.Open(ctx, "example()") defer sp.End() sp.Info("example starting") }
Output:
Index ¶
- Constants
- func ContextWithSpan(parent context.Context, span *SeveritySpan) context.Context
- func GetTextMapPropagator() propagation.TextMapPropagator
- func IsNoopSeveritySpan(span *SeveritySpan) bool
- func IsOtelNoopSpan(span trace.Span) bool
- func OtelSpanFromSeveritySpan(span *SeveritySpan) trace.Span
- func OtelTracerFromTracer(tr *SeverityTracer) trace.Tracer
- func SetSpanExtractor(extractor SpanExtractor)
- func SetSpanInjector(injector SpanInjector)
- func SetTextMapPropagator(propagator propagation.TextMapPropagator)
- func SetTracerProvider(tp *SeverityTracerProvider)
- func SpanToContext(ctx context.Context, span *SeveritySpan) context.Context
- func WithInstrumentationVersion(version string) trace.TracerOption
- func WithLinks(links ...Link) trace.SpanStartOption
- func WithNewRoot() trace.SpanStartOption
- func WithSchemaURL(schemaURL string) trace.TracerOption
- func WithSpanKind(kind SpanKind) trace.SpanStartOption
- func WithStackTrace(b bool) trace.SpanEndEventOption
- type CompositeSpanExtractor
- type Key
- type KeyValue
- func BrokerIP(v string) KeyValue
- func ConsumerGroup(v string) KeyValue
- func Environment(v string) KeyValue
- func Facility(v string) KeyValue
- func HttpMethod(v string) KeyValue
- func HttpRequest(v string) KeyValue
- func HttpRequestPath(v string) KeyValue
- func HttpResponse(v string) KeyValue
- func HttpStatusCode(v int) KeyValue
- func HttpUserAgent(v string) KeyValue
- func Infer(name string, s interface{}) KeyValue
- func MessageID(v string) KeyValue
- func OS() KeyValue
- func Pid() KeyValue
- func ServiceName(v string) KeyValue
- func Signature(v string) KeyValue
- func Stream(v string) KeyValue
- func Stringer(name string, o interface{}) KeyValue
- func Topic(v string) KeyValue
- func Version(v string) KeyValue
- type Link
- type NoopSpanInjector
- type NopEvent
- type ReplyCode
- type Severity
- type SeverityEvent
- type SeveritySpan
- func (s *SeveritySpan) Alert(reason string, v ...interface{}) SpanEvent
- func (s *SeveritySpan) Argv(v interface{})
- func (s *SeveritySpan) Context() context.Context
- func (s *SeveritySpan) Crit(reason string, v ...interface{}) SpanEvent
- func (s *SeveritySpan) Debug(message string, v ...interface{}) SpanEvent
- func (s *SeveritySpan) Disable(disabled bool)
- func (s *SeveritySpan) Emerg(reason string, v ...interface{}) SpanEvent
- func (s *SeveritySpan) End(opts ...trace.SpanEndOption)
- func (s *SeveritySpan) Err(err error)
- func (s *SeveritySpan) HasSpanID() bool
- func (s *SeveritySpan) HasTraceID() bool
- func (s *SeveritySpan) Info(message string, v ...interface{}) SpanEvent
- func (s *SeveritySpan) Inject(p propagation.TextMapPropagator, c propagation.TextMapCarrier)
- func (s *SeveritySpan) IsDisabled() bool
- func (s *SeveritySpan) Link() Link
- func (s *SeveritySpan) Notice(message string, v ...interface{}) SpanEvent
- func (s *SeveritySpan) Reply(code ReplyCode, v interface{})
- func (s *SeveritySpan) SpanID() trace.SpanID
- func (s *SeveritySpan) Tags(tags ...KeyValue)
- func (s *SeveritySpan) TraceFlags() trace.TraceFlags
- func (s *SeveritySpan) TraceID() trace.TraceID
- func (s *SeveritySpan) TraceState() trace.TraceState
- func (s *SeveritySpan) Warning(reason string, v ...interface{}) SpanEvent
- type SeverityTracer
- func (s *SeverityTracer) Extract(ctx context.Context, carrier propagation.TextMapCarrier, spanName string, ...) *SeveritySpan
- func (s *SeverityTracer) ExtractWithPropagator(ctx context.Context, propagator propagation.TextMapPropagator, ...) *SeveritySpan
- func (s *SeverityTracer) Inject(ctx context.Context, carrier propagation.TextMapCarrier)
- func (s *SeverityTracer) InjectWithPropagator(ctx context.Context, propagator propagation.TextMapPropagator, ...)
- func (s *SeverityTracer) Link(ctx context.Context, link Link, spanName string, opts ...trace.SpanStartOption) *SeveritySpan
- func (s *SeverityTracer) Open(ctx context.Context, spanName string, opts ...trace.SpanStartOption) *SeveritySpan
- func (s *SeverityTracer) Start(ctx context.Context, spanName string, opts ...trace.SpanStartOption) *SeveritySpan
- type SeverityTracerProvider
- type SpanEvent
- type SpanExtractor
- type SpanID
- type SpanInjector
- type SpanKind
- type TraceFlags
- type TraceID
- type TracerTagBuilder
- func (builder *TracerTagBuilder) Bool(name string, v bool)
- func (builder *TracerTagBuilder) BoolSlice(name string, v []bool)
- func (builder *TracerTagBuilder) Float64(name string, v float64)
- func (builder *TracerTagBuilder) Float64Slice(name string, v []float64)
- func (builder *TracerTagBuilder) Int(name string, v int)
- func (builder *TracerTagBuilder) Int64(name string, v int64)
- func (builder *TracerTagBuilder) Int64Slice(name string, v []int64)
- func (builder *TracerTagBuilder) IntSlice(name string, v []int)
- func (builder *TracerTagBuilder) Result() []KeyValue
- func (builder *TracerTagBuilder) String(name string, v string)
- func (builder *TracerTagBuilder) StringSlice(name string, v []string)
- func (builder *TracerTagBuilder) Value(name string, v interface{})
- type TracerTagMarshaler
- type ValueContext
- type VarsBuilder
Examples ¶
Constants ¶
View Source
const ( // SpanKindUnspecified is an unspecified SpanKind and is not a valid // SpanKind. SpanKindUnspecified should be replaced with SpanKindInternal // if it is received. SpanKindUnspecified = trace.SpanKindUnspecified // SpanKindInternal is a SpanKind for a Span that represents an internal // operation within an application. SpanKindInternal = trace.SpanKindInternal // SpanKindServer is a SpanKind for a Span that represents the operation // of handling a request from a client. SpanKindServer = trace.SpanKindServer // SpanKindClient is a SpanKind for a Span that represents the operation // of client making a request to a server. SpanKindClient = trace.SpanKindClient // SpanKindProducer is a SpanKind for a Span that represents the operation // of a producer sending a message to a message broker. Unlike // SpanKindClient and SpanKindServer, there is often no direct // relationship between this kind of Span and a SpanKindConsumer kind. A // SpanKindProducer Span will end once the message is accepted by the // message broker which might not overlap with the processing of that // message. SpanKindProducer = trace.SpanKindProducer // SpanKindConsumer is a SpanKind for a Span that represents the operation // of a consumer receiving a message from a message broker. Like // SpanKindProducer Spans, there is often no direct relationship between // this Span and the Span that produced the message. SpanKindConsumer = trace.SpanKindConsumer )
View Source
const ( // FlagsSampled is a bitmask with the sampled bit set. A SpanContext // with the sampling bit set means the span is sampled. FlagsSampled = trace.FlagsSampled )
Variables ¶
This section is empty.
Functions ¶
func ContextWithSpan ¶
func ContextWithSpan(parent context.Context, span *SeveritySpan) context.Context
func GetTextMapPropagator ¶
func GetTextMapPropagator() propagation.TextMapPropagator
func IsNoopSeveritySpan ¶
func IsNoopSeveritySpan(span *SeveritySpan) bool
func IsOtelNoopSpan ¶
func OtelSpanFromSeveritySpan ¶
func OtelSpanFromSeveritySpan(span *SeveritySpan) trace.Span
func OtelTracerFromTracer ¶
func OtelTracerFromTracer(tr *SeverityTracer) trace.Tracer
func SetSpanExtractor ¶
func SetSpanExtractor(extractor SpanExtractor)
func SetSpanInjector ¶
func SetSpanInjector(injector SpanInjector)
func SetTextMapPropagator ¶
func SetTextMapPropagator(propagator propagation.TextMapPropagator)
func SetTracerProvider ¶
func SetTracerProvider(tp *SeverityTracerProvider)
func SpanToContext ¶
func SpanToContext(ctx context.Context, span *SeveritySpan) context.Context
func WithInstrumentationVersion ¶
func WithInstrumentationVersion(version string) trace.TracerOption
func WithLinks ¶
func WithLinks(links ...Link) trace.SpanStartOption
func WithNewRoot ¶
func WithNewRoot() trace.SpanStartOption
func WithSchemaURL ¶
func WithSchemaURL(schemaURL string) trace.TracerOption
func WithSpanKind ¶
func WithSpanKind(kind SpanKind) trace.SpanStartOption
func WithStackTrace ¶
func WithStackTrace(b bool) trace.SpanEndEventOption
Types ¶
type CompositeSpanExtractor ¶
type CompositeSpanExtractor []SpanExtractor
func NewCompositeSpanExtractor ¶
func NewCompositeSpanExtractor(extractors ...SpanExtractor) CompositeSpanExtractor
func (CompositeSpanExtractor) Extract ¶
func (ext CompositeSpanExtractor) Extract(ctx context.Context) *SeveritySpan
Extract implements SpanExtractor
type KeyValue ¶
func ConsumerGroup ¶
func Environment ¶
func HttpMethod ¶
func HttpRequest ¶
func HttpRequestPath ¶
func HttpResponse ¶
func HttpStatusCode ¶
func HttpUserAgent ¶
func ServiceName ¶
type NoopSpanInjector ¶
type NoopSpanInjector int
func (NoopSpanInjector) Inject ¶
func (NoopSpanInjector) Inject(ctx context.Context, span *SeveritySpan) context.Context
Inject implements SpanInjector.
type SeverityEvent ¶
type SeverityEvent struct {
// contains filtered or unexported fields
}
func (*SeverityEvent) IsRecording ¶
func (s *SeverityEvent) IsRecording() bool
IsRecording implements SpanEvent
func (*SeverityEvent) Tags ¶
func (s *SeverityEvent) Tags(tags ...KeyValue)
Tags implements SpanEvent
type SeveritySpan ¶
type SeveritySpan struct {
// contains filtered or unexported fields
}
func CreateSeveritySpan ¶
func CreateSeveritySpan(ctx context.Context) *SeveritySpan
func SpanFromContext ¶
func SpanFromContext(ctx context.Context, extractors ...SpanExtractor) *SeveritySpan
func (*SeveritySpan) Alert ¶
func (s *SeveritySpan) Alert(reason string, v ...interface{}) SpanEvent
func (*SeveritySpan) Argv ¶
func (s *SeveritySpan) Argv(v interface{})
func (*SeveritySpan) Context ¶
func (s *SeveritySpan) Context() context.Context
func (*SeveritySpan) Crit ¶
func (s *SeveritySpan) Crit(reason string, v ...interface{}) SpanEvent
func (*SeveritySpan) Debug ¶
func (s *SeveritySpan) Debug(message string, v ...interface{}) SpanEvent
func (*SeveritySpan) Disable ¶
func (s *SeveritySpan) Disable(disabled bool)
func (*SeveritySpan) Emerg ¶
func (s *SeveritySpan) Emerg(reason string, v ...interface{}) SpanEvent
func (*SeveritySpan) End ¶
func (s *SeveritySpan) End(opts ...trace.SpanEndOption)
func (*SeveritySpan) Err ¶
func (s *SeveritySpan) Err(err error)
func (*SeveritySpan) HasSpanID ¶
func (s *SeveritySpan) HasSpanID() bool
func (*SeveritySpan) HasTraceID ¶
func (s *SeveritySpan) HasTraceID() bool
func (*SeveritySpan) Info ¶
func (s *SeveritySpan) Info(message string, v ...interface{}) SpanEvent
func (*SeveritySpan) Inject ¶
func (s *SeveritySpan) Inject(p propagation.TextMapPropagator, c propagation.TextMapCarrier)
func (*SeveritySpan) IsDisabled ¶
func (s *SeveritySpan) IsDisabled() bool
func (*SeveritySpan) Link ¶
func (s *SeveritySpan) Link() Link
func (*SeveritySpan) Notice ¶
func (s *SeveritySpan) Notice(message string, v ...interface{}) SpanEvent
func (*SeveritySpan) Reply ¶
func (s *SeveritySpan) Reply(code ReplyCode, v interface{})
func (*SeveritySpan) SpanID ¶
func (s *SeveritySpan) SpanID() trace.SpanID
func (*SeveritySpan) Tags ¶
func (s *SeveritySpan) Tags(tags ...KeyValue)
func (*SeveritySpan) TraceFlags ¶
func (s *SeveritySpan) TraceFlags() trace.TraceFlags
func (*SeveritySpan) TraceID ¶
func (s *SeveritySpan) TraceID() trace.TraceID
func (*SeveritySpan) TraceState ¶
func (s *SeveritySpan) TraceState() trace.TraceState
func (*SeveritySpan) Warning ¶
func (s *SeveritySpan) Warning(reason string, v ...interface{}) SpanEvent
type SeverityTracer ¶
type SeverityTracer struct {
// contains filtered or unexported fields
}
func CreateSeverityTracer ¶
func CreateSeverityTracer(tr trace.Tracer) *SeverityTracer
func Tracer ¶
func Tracer(name string, opts ...trace.TracerOption) *SeverityTracer
func (*SeverityTracer) Extract ¶
func (s *SeverityTracer) Extract( ctx context.Context, carrier propagation.TextMapCarrier, spanName string, opts ...trace.SpanStartOption) *SeveritySpan
func (*SeverityTracer) ExtractWithPropagator ¶
func (s *SeverityTracer) ExtractWithPropagator( ctx context.Context, propagator propagation.TextMapPropagator, carrier propagation.TextMapCarrier, spanName string, opts ...trace.SpanStartOption) *SeveritySpan
Example ¶
package main import ( "context" "log" "time" "github.com/Bofry/trace" "go.opentelemetry.io/otel/propagation" ) func main() { tp, err := trace.JaegerProvider("http://localhost:14268/api/traces", trace.ServiceName("trace-demo"), trace.Environment("go-test"), trace.Pid(), ) if err != nil { log.Fatal(err) } // Register our TracerProvider as the global so any imported // instrumentation in the future will default to using it. trace.SetTracerProvider(tp) trace.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator( propagation.TraceContext{}, propagation.Baggage{}, )) ctx, cancel := context.WithCancel(context.Background()) defer cancel() // Cleanly shutdown and flush telemetry when the application exits. defer func(ctx context.Context) { // Do not make the application hang when it is shutdown. ctx, cancel = context.WithTimeout(ctx, time.Second*10) defer cancel() if err := tp.Shutdown(ctx); err != nil { log.Fatal(err) } }(ctx) tr := tp.Tracer("example-main") sp := tr.Open(ctx, "example()") defer sp.End() sp.Info("example starting") // subroutine var bar = func(carrier propagation.TextMapCarrier, arg string) { bartp, err := trace.JaegerProvider("http://localhost:14268/api/traces", trace.ServiceName("trace-demo-outside-boundary"), trace.Environment("go-test"), trace.Pid(), ) if err != nil { log.Fatal(err) } bartpctx, cancel := context.WithCancel(context.Background()) defer cancel() // Cleanly shutdown and flush telemetry when the application exits. defer func(ctx context.Context) { // Do not make the application hang when it is shutdown. ctx, cancel = context.WithTimeout(ctx, time.Second*5) defer cancel() if err := bartp.Shutdown(ctx); err != nil { log.Fatal(err) } }(bartpctx) propagator := trace.GetTextMapPropagator() bartr := bartp.Tracer("example-bar") barctx := context.Background() // can use nil instead of context.Background() barsp := bartr.ExtractWithPropagator(barctx, propagator, carrier, "bar()") defer barsp.End() barsp.Argv(arg) barsp.Reply(trace.PASS, "OK") } /* NOTE: the following statements also can be written as * * way 1: * carrier := make(propagation.MapCarrier) * propagator := trace.GetTextMapPropagator() * propagator.Inject(sp.Context(), carrier) * * way 2: * carrier := make(propagation.MapCarrier) * propagator := trace.GetTextMapPropagator() * tr.InjectWithPropagator(sp.Context(), propagator, carrier) * * way 3: * carrier := make(propagation.MapCarrier) * tr.Inject(sp.Context(), carrier) */ carrier := make(propagation.MapCarrier) propagator := trace.GetTextMapPropagator() sp.Inject(propagator, carrier) // call subroutine bar(carrier, "foo") }
Output:
func (*SeverityTracer) Inject ¶
func (s *SeverityTracer) Inject( ctx context.Context, carrier propagation.TextMapCarrier)
func (*SeverityTracer) InjectWithPropagator ¶
func (s *SeverityTracer) InjectWithPropagator( ctx context.Context, propagator propagation.TextMapPropagator, carrier propagation.TextMapCarrier)
func (*SeverityTracer) Link ¶
func (s *SeverityTracer) Link( ctx context.Context, link Link, spanName string, opts ...trace.SpanStartOption) *SeveritySpan
Example ¶
package main import ( "context" "fmt" "log" "time" "github.com/Bofry/trace" ) func main() { tp, err := trace.JaegerProvider("http://localhost:14268/api/traces", trace.ServiceName("trace-demo"), trace.Environment("go-test"), trace.Pid(), ) if err != nil { log.Fatal(err) } // Register our TracerProvider as the global so any imported // instrumentation in the future will default to using it. trace.SetTracerProvider(tp) ctx, cancel := context.WithCancel(context.Background()) defer cancel() // Cleanly shutdown and flush telemetry when the application exits. defer func(ctx context.Context) { // Do not make the application hang when it is shutdown. ctx, cancel = context.WithTimeout(ctx, time.Second*5) defer cancel() if err := tp.Shutdown(ctx); err != nil { log.Fatal(err) } }(ctx) tr := tp.Tracer("example-main") sp := tr.Open(ctx, "example()") defer sp.End() sp.Info("example starting") // subroutine var bar = func(link trace.Link, arg string) { barctx := context.Background() // can use nil instead of context.Background() barsp := tr.Link(barctx, link, "bar()") defer barsp.End() barsp.Argv(arg) barsp.Err(fmt.Errorf("an error occurred")) } // call subroutine bar(sp.Link(), "foo") }
Output:
func (*SeverityTracer) Open ¶
func (s *SeverityTracer) Open( ctx context.Context, spanName string, opts ...trace.SpanStartOption) *SeveritySpan
func (*SeverityTracer) Start ¶
func (s *SeverityTracer) Start( ctx context.Context, spanName string, opts ...trace.SpanStartOption) *SeveritySpan
Example ¶
package main import ( "context" "fmt" "log" "time" "github.com/Bofry/trace" ) func main() { tp, err := trace.JaegerProvider("http://localhost:14268/api/traces", trace.ServiceName("trace-demo"), trace.Environment("go-test"), trace.Pid(), ) if err != nil { log.Fatal(err) } // Register our TracerProvider as the global so any imported // instrumentation in the future will default to using it. trace.SetTracerProvider(tp) ctx, cancel := context.WithCancel(context.Background()) defer cancel() // Cleanly shutdown and flush telemetry when the application exits. defer func(ctx context.Context) { // Do not make the application hang when it is shutdown. ctx, cancel = context.WithTimeout(ctx, time.Second*5) defer cancel() if err := tp.Shutdown(ctx); err != nil { log.Fatal(err) } }(ctx) tr := tp.Tracer("example-main") sp := tr.Open(ctx, "example()") defer sp.End() sp.Info("example starting") // subroutine var bar = func(ctx context.Context, arg string) { barsp := tr.Start(ctx, "bar()") defer barsp.End() barsp.Argv(arg) barsp.Reply(trace.PASS, "OK") } ok := trace.IsNoopSeveritySpan(sp) sp.Debug("check IsNoopSeveritySpan()").Tags( trace.Key("IsNoopSeveritySpan").Bool(ok), ) sp.Debug("log an error").Error(fmt.Errorf("some error")) // call subroutine bar(sp.Context(), "foo") }
Output:
type SeverityTracerProvider ¶
type SeverityTracerProvider struct {
// contains filtered or unexported fields
}
func CreateSeverityTracerProvider ¶
func CreateSeverityTracerProvider(provider trace.TracerProvider) *SeverityTracerProvider
func GetTracerProvider ¶
func GetTracerProvider() *SeverityTracerProvider
func JaegerProvider ¶
func JaegerProvider(url string, attrs ...KeyValue) (*SeverityTracerProvider, error)
func NoopProvider ¶
func NoopProvider() (*SeverityTracerProvider, error)
func (*SeverityTracerProvider) Shutdown ¶
func (p *SeverityTracerProvider) Shutdown(ctx context.Context) error
func (*SeverityTracerProvider) Tracer ¶
func (p *SeverityTracerProvider) Tracer(name string, opts ...trace.TracerOption) *SeverityTracer
func (*SeverityTracerProvider) TracerProvider ¶
func (p *SeverityTracerProvider) TracerProvider() trace.TracerProvider
type SpanExtractor ¶
type SpanExtractor interface {
Extract(ctx context.Context) *SeveritySpan
}
func GetSpanExtractor ¶
func GetSpanExtractor() SpanExtractor
type SpanInjector ¶
type SpanInjector interface {
Inject(ctx context.Context, span *SeveritySpan) context.Context
}
func GetSpanInjector ¶
func GetSpanInjector() SpanInjector
type TraceFlags ¶
type TraceFlags = trace.TraceFlags
type TracerTagBuilder ¶
type TracerTagBuilder struct {
// contains filtered or unexported fields
}
func (*TracerTagBuilder) Bool ¶
func (builder *TracerTagBuilder) Bool(name string, v bool)
func (*TracerTagBuilder) BoolSlice ¶
func (builder *TracerTagBuilder) BoolSlice(name string, v []bool)
func (*TracerTagBuilder) Float64 ¶
func (builder *TracerTagBuilder) Float64(name string, v float64)
func (*TracerTagBuilder) Float64Slice ¶
func (builder *TracerTagBuilder) Float64Slice(name string, v []float64)
func (*TracerTagBuilder) Int ¶
func (builder *TracerTagBuilder) Int(name string, v int)
func (*TracerTagBuilder) Int64 ¶
func (builder *TracerTagBuilder) Int64(name string, v int64)
func (*TracerTagBuilder) Int64Slice ¶
func (builder *TracerTagBuilder) Int64Slice(name string, v []int64)
func (*TracerTagBuilder) IntSlice ¶
func (builder *TracerTagBuilder) IntSlice(name string, v []int)
func (*TracerTagBuilder) Result ¶
func (builder *TracerTagBuilder) Result() []KeyValue
func (*TracerTagBuilder) String ¶
func (builder *TracerTagBuilder) String(name string, v string)
func (*TracerTagBuilder) StringSlice ¶
func (builder *TracerTagBuilder) StringSlice(name string, v []string)
func (*TracerTagBuilder) Value ¶
func (builder *TracerTagBuilder) Value(name string, v interface{})
type TracerTagMarshaler ¶
type TracerTagMarshaler interface {
MarshalTracerTag(builder *TracerTagBuilder) error
}
type ValueContext ¶
type VarsBuilder ¶
type VarsBuilder map[string]interface{}
func Argv ¶
func Argv() VarsBuilder
func Vars ¶
func Vars() VarsBuilder
func (VarsBuilder) Delete ¶
func (b VarsBuilder) Delete(key string) VarsBuilder
func (VarsBuilder) MarshalTracerTag ¶
func (b VarsBuilder) MarshalTracerTag(builder *TracerTagBuilder) error
func (VarsBuilder) Put ¶
func (b VarsBuilder) Put(key string, value interface{}) VarsBuilder
func (VarsBuilder) Set ¶
func (b VarsBuilder) Set(key string, value interface{}) VarsBuilder
Click to show internal directories.
Click to hide internal directories.