Files
475c5c013f feat: added signoz tail sampler (#111)
* feat: added signoz tail sampler

* chore: fixed test cases for signoz sampler

* chore: fixed test cases from upstream tail sampler

* chore: added test coverate for default eval in tailsampler

* Update processor/signoztailsampler/internal/sampling/always_unsample.go

Co-authored-by: Srikanth Chekuri <[email protected]>

* Update processor/signoztailsampler/README.md

Co-authored-by: Srikanth Chekuri <[email protected]>

* fix: fixed issue with root polity in tail sampler

* chore: added documentation for tail based sampler

* chore: removed self-ref in tail policy structure

* chore: added config test for tail sampler

* feat: added priority based evaluation

* fix: added validations for config

* Update processor/signoztailsampler/factory.go

Co-authored-by: Srikanth Chekuri <[email protected]>

* Update processor/signoztailsampler/evaluator.go

Co-authored-by: Srikanth Chekuri <[email protected]>

* Update processor/signoztailsampler/evaluator.go

Co-authored-by: Srikanth Chekuri <[email protected]>

* Update processor/signoztailsampler/config.go

Co-authored-by: Srikanth Chekuri <[email protected]>

* chore: addreessed some review comments

* chore: added stats view again

* Update processor/signoztailsampler/evaluator.go

Co-authored-by: Srikanth Chekuri <[email protected]>

* fix: go version, tests & API usage

* chore: fix lint

* chore: actually fix lint

* chore: hopefully last fix

---------

Co-authored-by: mindhash <[email protected]>
Co-authored-by: Srikanth Chekuri <[email protected]>
2023-06-03 06:25:54 +00:00

65 lines
1.6 KiB
Go

package signoztailsampler
import (
"path/filepath"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/confmap/confmaptest"
)
func TestLoadConfig(t *testing.T) {
t.Parallel()
cm, err := confmaptest.LoadConf(filepath.Join("testdata", "tail_sampling_config.yaml"))
require.NoError(t, err)
factory := NewFactory()
cfg := factory.CreateDefaultConfig()
sub, err := cm.Sub(component.NewIDWithName(typeStr, "").String())
require.NoError(t, err)
require.NoError(t, component.UnmarshalConfig(sub, cfg))
assert.Equal(t,
cfg,
&Config{
// ProcessorSettings: config.NewProcessorSettings(component.NewID(typeStr)),
DecisionWait: 10 * time.Second,
NumTraces: 100,
ExpectedNewTracesPerSec: 10,
PolicyCfgs: []PolicyGroupCfg{
{
BasePolicy: BasePolicy{
Name: "test-policy-1",
Type: PolicyGroup,
Priority: 1,
ProbabilisticCfg: ProbabilisticCfg{
SamplingPercentage: 100,
},
PolicyFilterCfg: PolicyFilterCfg{
StringAttributeCfgs: []StringAttributeCfg{
{Key: "source", Values: []string{"security"}},
},
},
},
SubPolicies: []BasePolicy{
{
Name: "condition-1",
Type: PolicyGroup,
Priority: 1,
PolicyFilterCfg: PolicyFilterCfg{
StringAttributeCfgs: []StringAttributeCfg{
{Key: "source", Values: []string{"security"}},
},
},
},
},
},
},
})
}