Documentation ¶
Index ¶
- Constants
- Variables
- func AddConfigSchema(c interface{ ... }) error
- func End(span trace.Span, err *error)
- func SetupJaeger(t *Tracer, tracerName string, c *Config) (trace.Tracer, error)
- func SetupOTLP(t *Tracer, tracerName string, c *Config) (trace.Tracer, error)
- func SetupStdout(t *Tracer, tracerName string, c *Config) (trace.Tracer, error)
- func StringAttrs(attrs map[string]string) []attribute.KeyValue
- func WithSpan(ctx context.Context, name string, f func(context.Context) error, ...) (err error)
- type Config
- type JaegerConfig
- type JaegerSampling
- type OTLPConfig
- type OTLPSampling
- type ProvidersConfig
- type StdoutConfig
- type Tracer
Constants ¶
const ConfigSchemaID = "clinia://tracing-config"
Variables ¶
var ConfigSchema string
Functions ¶
func AddConfigSchema ¶
AddConfigSchema adds the tracing schema to the compiler. The interface is specified instead of `jsonschema.Compiler` to allow the use of any jsonschema library fork or version.
func End ¶
End finishes span, and automatically sets the error state if *err is not nil or during panicking.
Usage:
func Divide(ctx context.Context, numerator, denominator int) (ratio int, err error) { ctx, span := tracer.Start(ctx, "my-operation") defer otelx.End(span, &err) if denominator == 0 { return 0, errors.New("cannot divide by zero") } return numerator / denominator, nil }
func SetupJaeger ¶
Optionally, Config.Providers.Jaeger.LocalAgentAddress can be set. NOTE: If Config.Providers.Jaeger.Sampling.ServerURL is not specfied, AlwaysSample is used.
func SetupStdout ¶ added in v0.0.4
func WithSpan ¶
func WithSpan(ctx context.Context, name string, f func(context.Context) error, opts ...trace.SpanStartOption) (err error)
WithSpan wraps execution of f in a span identified by name.
If f returns an error or panics, the span status will be set to the error state. The error (or panic) will be propagated unmodified.
f will be wrapped in a child span by default. To make a new root span instead, pass the trace.WithNewRoot() option.
Types ¶
type Config ¶
type Config struct { ServiceName string `json:"service_name"` Provider string `json:"provider"` Providers ProvidersConfig `json:"providers"` ResourceAttributes []attribute.KeyValue `json:"resource_attributes"` }
type JaegerConfig ¶
type JaegerConfig struct { LocalAgentAddress string `json:"local_agent_address"` Sampling JaegerSampling `json:"sampling"` }
type JaegerSampling ¶
type OTLPConfig ¶
type OTLPConfig struct { Protocol string `json:"protocol"` ServerURL string `json:"server_url"` Insecure bool `json:"insecure"` Sampling OTLPSampling `json:"sampling"` }
type OTLPSampling ¶
type OTLPSampling struct {
SamplingRatio float64 `json:"sampling_ratio"`
}
type ProvidersConfig ¶
type ProvidersConfig struct { Jaeger JaegerConfig `json:"jaeger"` OTLP OTLPConfig `json:"otlp"` Stdout StdoutConfig `json:"stdout"` }
type StdoutConfig ¶ added in v0.0.4
type StdoutConfig struct {
Pretty bool `json:"pretty"`
}
type Tracer ¶
type Tracer struct {
// contains filtered or unexported fields
}
func New ¶
Creates a new tracer. If name is empty, a default tracer name is used instead. See: https://godocs.io/go.opentelemetry.io/otel/sdk/trace#TracerProvider.Tracer
func (*Tracer) Provider ¶
func (t *Tracer) Provider() trace.TracerProvider
Provider returns a TracerProvider which in turn yieds this tracer unmodified.