Raj Kamal Singh 0ad5d67140
QS: Collector simulator (#3656)
* feat: get collectorsimulator started and add inmemoryreceiver

* feat: add collectorsimulator/inmemoryexporter

* feat: add collectorsimulator.SimulateLogsProcessing

* chore: clean up collector simulator code a little

* chore: update go.sum entries for cors

* chore: add collectorsimulator tests to make cmd

* chore: move to latest dependency version for collectorsimulator

* chore: revert to dependency versions matching signoz-otel-col

* chore: cleanup: reorganize collectorsimulator logic

* chore: some more cleanup

* chore: some more cleanup

* chore: some more cleanup

* chore: redo go.mod
2023-10-05 14:27:41 +05:30

42 lines
927 B
Go

package inmemoryreceiver
import (
"context"
"github.com/google/uuid"
"github.com/pkg/errors"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/consumer"
"go.opentelemetry.io/collector/receiver"
)
func createDefaultConfig() component.Config {
return &Config{
Id: uuid.NewString(),
}
}
func createLogsReceiver(
_ context.Context,
_ receiver.CreateSettings,
config component.Config,
consumer consumer.Logs,
) (receiver.Logs, error) {
if err := component.ValidateConfig(config); err != nil {
return nil, errors.Wrap(err, "invalid inmemory receiver config")
}
return &InMemoryReceiver{
id: config.(*Config).Id,
nextConsumer: consumer,
}, nil
}
// NewFactory creates a new OTLP receiver factory.
func NewFactory() receiver.Factory {
return receiver.NewFactory(
"memory",
createDefaultConfig,
receiver.WithLogs(createLogsReceiver, component.StabilityLevelBeta))
}