mirror of
https://github.com/hanzoai/otel-collector.git
synced 2026-10-30 18:26:25 +00:00
Modules declare go 1.27.1 and the build images follow. go fix applied the modernizers; omitzero is not applied, since it changes what the JSON says. Co-authored-by: Hanzo Dev <[email protected]>
70 lines
2.2 KiB
Go
70 lines
2.2 KiB
Go
// Brought in as is from logstransform processor in opentelemetry-collector-contrib
|
|
package o11ylogspipelineprocessor
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
o11ylogspipelinestanzaoperator "github.com/hanzoai/otel-collector/processor/o11ylogspipelineprocessor/stanza/operator"
|
|
"github.com/stretchr/testify/assert"
|
|
"go.opentelemetry.io/collector/component/componenttest"
|
|
"go.opentelemetry.io/collector/consumer/consumertest"
|
|
"go.opentelemetry.io/collector/processor/processortest"
|
|
|
|
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/entry"
|
|
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper"
|
|
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/parser/regex"
|
|
|
|
"github.com/hanzoai/otel-collector/processor/o11ylogspipelineprocessor/internal/metadata"
|
|
)
|
|
|
|
func TestCreateDefaultConfig(t *testing.T) {
|
|
factory := NewFactory()
|
|
cfg := factory.CreateDefaultConfig()
|
|
assert.NoError(t, componenttest.CheckConfigStruct(cfg))
|
|
assert.NotNil(t, cfg)
|
|
}
|
|
|
|
func TestCreateProcessor(t *testing.T) {
|
|
factory := NewFactory()
|
|
cfg := &Config{
|
|
Operators: []o11ylogspipelinestanzaoperator.Config{
|
|
{
|
|
Builder: func() *regex.Config {
|
|
cfg := regex.NewConfig()
|
|
cfg.Regex = "^(?P<time>\\d{4}-\\d{2}-\\d{2}) (?P<sev>[A-Z]*) (?P<msg>.*)$"
|
|
sevField := entry.NewAttributeField("sev")
|
|
sevCfg := helper.NewSeverityConfig()
|
|
sevCfg.ParseFrom = &sevField
|
|
cfg.SeverityConfig = &sevCfg
|
|
timeField := entry.NewAttributeField("time")
|
|
timeCfg := helper.NewTimeParser()
|
|
timeCfg.Layout = "%Y-%m-%d"
|
|
timeCfg.ParseFrom = &timeField
|
|
cfg.TimeParser = &timeCfg
|
|
return cfg
|
|
}(),
|
|
},
|
|
},
|
|
}
|
|
|
|
tp, err := factory.CreateLogs(context.Background(), processortest.NewNopSettings(metadata.Type), cfg, consumertest.NewNop())
|
|
assert.NoError(t, err)
|
|
assert.NotNil(t, tp)
|
|
}
|
|
|
|
func TestInvalidOperators(t *testing.T) {
|
|
factory := NewFactory()
|
|
cfg := &Config{
|
|
Operators: []o11ylogspipelinestanzaoperator.Config{
|
|
{
|
|
// invalid due to missing regex
|
|
Builder: regex.NewConfig(),
|
|
},
|
|
},
|
|
}
|
|
|
|
_, err := factory.CreateLogs(context.Background(), processortest.NewNopSettings(metadata.Type), cfg, nil)
|
|
assert.Error(t, err)
|
|
}
|