Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Configuration ¶
type Configuration struct { Disabled bool `yaml:"disabled"` Sampler *SamplerConfig `yaml:"sampler"` Reporter *ReporterConfig `yaml:"reporter"` RPCMetrics bool `yaml:"rpc_metrics"` }
Configuration configures and creates Jaeger Tracer
func (Configuration) InitGlobalTracer ¶
func (c Configuration) InitGlobalTracer( serviceName string, options ...Option, ) (io.Closer, error)
InitGlobalTracer creates a new Jaeger Tracer, and sets it as global OpenTracing Tracer. It returns a closer func that can be used to flush buffers before shutdown.
type Option ¶
type Option func(c *Options)
Option is a function that sets some option on the client.
func Logger ¶
func Logger(logger jaeger.Logger) Option
Logger can be provided to log Reporter errors, as well as to log spans if Reporter.LogSpans is set to true.
func Metrics ¶
Metrics creates an Option that initializes Metrics in the tracer, which is used to emit statistics about spans.
func Observer ¶
func Observer(observer jaeger.Observer) Option
Observer can be registered with the Tracer to receive notifications about new Spans.
func Reporter ¶
func Reporter(reporter jaeger.Reporter) Option
Reporter can be provided explicitly to override the configuration. Useful for testing, e.g. by passing InMemoryReporter.
func ZipkinSharedRPCSpan ¶
ZipkinSharedRPCSpan creates an option that enables sharing span ID between client and server spans a la zipkin. If false, client and server spans will be assigned different IDs.
type Options ¶
type Options struct {
// contains filtered or unexported fields
}
Options control behavior of the client.
type ReporterConfig ¶
type ReporterConfig struct { // QueueSize controls how many spans the reporter can keep in memory before it starts dropping // new spans. The queue is continuously drained by a background go-routine, as fast as spans // can be sent out of process. QueueSize int `yaml:"queueSize"` // BufferFlushInterval controls how often the buffer is force-flushed, even if it's not full. // It is generally not useful, as it only matters for very low traffic services. BufferFlushInterval time.Duration // LogSpans, when true, enables LoggingReporter that runs in parallel with the main reporter // and logs all submitted spans. Main Configuration.Logger must be initialized in the code // for this option to have any effect. LogSpans bool `yaml:"logSpans"` // LocalAgentHostPort instructs reporter to send spans to jaeger-agent at this address LocalAgentHostPort string `yaml:"localAgentHostPort"` }
ReporterConfig configures the reporter. All fields are optional.
func (*ReporterConfig) NewReporter ¶
func (rc *ReporterConfig) NewReporter( serviceName string, metrics *jaeger.Metrics, logger jaeger.Logger, ) (jaeger.Reporter, error)
NewReporter instantiates a new reporter that submits spans to tcollector
type SamplerConfig ¶
type SamplerConfig struct { // Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote Type string `yaml:"type"` // Param is a value passed to the sampler. // Valid values for Param field are: // - for "const" sampler, 0 or 1 for always false/true respectively // - for "probabilistic" sampler, a probability between 0 and 1 // - for "rateLimiting" sampler, the number of spans per second // - for "remote" sampler, param is the same as for "probabilistic" // and indicates the initial sampling rate before the actual one // is received from the mothership Param float64 `yaml:"param"` // SamplingServerURL is the address of jaeger-agent's HTTP sampling server SamplingServerURL string `yaml:"samplingServerURL"` // MaxOperations is the maximum number of operations that the sampler // will keep track of. If an operation is not tracked, a default probabilistic // sampler will be used rather than the per operation specific sampler. MaxOperations int `yaml:"maxOperations"` // SamplingRefreshInterval controls how often the remotely controlled sampler will poll // jaeger-agent for the appropriate sampling strategy. SamplingRefreshInterval time.Duration `yaml:"samplingRefreshInterval"` }
SamplerConfig allows initializing a non-default sampler. All fields are optional.
func (*SamplerConfig) NewSampler ¶
func (sc *SamplerConfig) NewSampler( serviceName string, metrics *jaeger.Metrics, ) (jaeger.Sampler, error)
NewSampler creates a new sampler based on the configuration