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

44 lines
1.5 KiB
Go

package signoztailsampler
import (
"context"
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/confmap/confmaptest"
"go.opentelemetry.io/collector/consumer/consumertest"
"go.opentelemetry.io/collector/processor/processortest"
)
func TestCreateDefaultConfig(t *testing.T) {
cfg := createDefaultConfig()
assert.NotNil(t, cfg, "failed to create default config")
assert.NoError(t, componenttest.CheckConfigStruct(cfg))
}
func TestCreateProcessor(t *testing.T) {
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))
params := processortest.NewNopCreateSettings()
tp, err := factory.CreateTracesProcessor(context.Background(), params, cfg, consumertest.NewNop())
assert.NotNil(t, tp)
assert.NoError(t, err, "cannot create trace processor")
// this will cause the processor to properly initialize, so that we can later shutdown and
// have all the go routines cleanly shut down
assert.NoError(t, tp.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, tp.Shutdown(context.Background()))
}