make samplerconfig.param configurable

This commit is contained in:
bergquist 2017-09-15 09:27:47 +02:00
parent ec29b469e4
commit f37a595f68
3 changed files with 27 additions and 9 deletions

View File

@ -457,7 +457,15 @@ url = https://grafana.com
# jaeger destination (ex localhost:6831) # jaeger destination (ex localhost:6831)
address = address =
# tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2) # tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2)
always_included_tag = always_included_tag =
# jaeger samplerconfig param
# 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
sampler_param = 1
#################################### External Image Storage ############## #################################### External Image Storage ##############
[external_image_storage] [external_image_storage]

View File

@ -397,6 +397,14 @@
;address = localhost:6831 ;address = localhost:6831
# Tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2) # Tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2)
;always_included_tag = tag1:value1 ;always_included_tag = tag1:value1
# jaeger samplerconfig param
# 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
;sampler_param = 1
#################################### Grafana.com integration ########################## #################################### Grafana.com integration ##########################
# Url used to to import dashboards directly from Grafana.com # Url used to to import dashboards directly from Grafana.com

View File

@ -16,13 +16,14 @@ import (
) )
var ( var (
logger log.Logger = log.New("tracing") logger log.Logger = log.New("tracing")
customTags map[string]string = map[string]string{}
) )
type TracingSettings struct { type TracingSettings struct {
Enabled bool Enabled bool
Address string Address string
CustomTags map[string]string
SamplerParam float64
} }
func Init(file *ini.File) (io.Closer, error) { func Init(file *ini.File) (io.Closer, error) {
@ -43,7 +44,8 @@ func parseSettings(file *ini.File) *TracingSettings {
settings.Enabled = true settings.Enabled = true
} }
customTags = splitTagSettings(section.Key("always_included_tag").MustString("")) settings.CustomTags = splitTagSettings(section.Key("always_included_tag").MustString(""))
settings.SamplerParam = section.Key("sampler_param").MustFloat64(1)
return settings return settings
} }
@ -55,9 +57,9 @@ func internalInit(settings *TracingSettings) (io.Closer, error) {
cfg := jaegercfg.Configuration{ cfg := jaegercfg.Configuration{
Disabled: !settings.Enabled, Disabled: !settings.Enabled,
Sampler: &jaegercfg.SamplerConfig{ Sampler: &jaegercfg.SamplerConfig{ //we currently only support SamplerConfig. Open an issue if you need another.
Type: jaeger.SamplerTypeConst, Type: jaeger.SamplerTypeConst,
Param: 1, Param: settings.SamplerParam,
}, },
Reporter: &jaegercfg.ReporterConfig{ Reporter: &jaegercfg.ReporterConfig{
LogSpans: false, LogSpans: false,
@ -70,7 +72,7 @@ func internalInit(settings *TracingSettings) (io.Closer, error) {
options := []jaegercfg.Option{} options := []jaegercfg.Option{}
options = append(options, jaegercfg.Logger(jLogger)) options = append(options, jaegercfg.Logger(jLogger))
for tag, value := range customTags { for tag, value := range settings.CustomTags {
options = append(options, jaegercfg.Tag(tag, value)) options = append(options, jaegercfg.Tag(tag, value))
} }