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()