42 lines
950 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(
component.MustNewType("memory"),
createDefaultConfig,
receiver.WithLogs(createLogsReceiver, component.StabilityLevelBeta))
}