From 50772e3330a7b03c95e465f98ad13dd4feb21965 Mon Sep 17 00:00:00 2001 From: Martin Holman Date: Fri, 13 Nov 2020 08:53:56 -0800 Subject: [PATCH] Add a default sampler if none is specified (#193) Provide a default sampler to be used if none is specified --- config/config_test.go | 37 +++++++++++++++++++++++++++++++++++++ config/file_config.go | 4 ++++ 2 files changed, 41 insertions(+) diff --git a/config/config_test.go b/config/config_test.go index f640b60d48..2207dc428b 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -401,3 +401,40 @@ func TestGetSamplerTypes(t *testing.T) { assert.IsType(t, &EMADynamicSamplerConfig{}, d) } } + +func TestDefaultSampler(t *testing.T) { + tmpDir, err := ioutil.TempDir("", "") + assert.NoError(t, err) + defer os.RemoveAll(tmpDir) + + rulesFile, err := ioutil.TempFile(tmpDir, "*.toml") + assert.NoError(t, err) + + configFile, err := ioutil.TempFile(tmpDir, "*.toml") + assert.NoError(t, err) + + dummy := []byte(` + [InMemCollector] + CacheCapacity=1000 + + [HoneycombMetrics] + MetricsHoneycombAPI="http://honeycomb.io" + MetricsAPIKey="1234" + MetricsDataset="testDatasetName" + MetricsReportingInterval=3 + `) + + _, err = configFile.Write(dummy) + assert.NoError(t, err) + configFile.Close() + + c, err := NewConfig(configFile.Name(), rulesFile.Name(), func(err error) {}) + + assert.NoError(t, err) + + s, err := c.GetSamplerConfigForDataset("nonexistent") + + assert.NoError(t, err) + + assert.IsType(t, &DeterministicSamplerConfig{}, s) +} diff --git a/config/file_config.go b/config/file_config.go index 0dc441eada..fc0518c6a0 100644 --- a/config/file_config.go +++ b/config/file_config.go @@ -143,6 +143,10 @@ func NewConfig(config, rules string, errorCallback func(error)) (Config, error) } r := viper.New() + + r.SetDefault("Sampler", "DeterministicSampler") + r.SetDefault("SampleRate", 1) + r.SetConfigFile(rules) err = r.ReadInConfig()