Skip to content

Commit

Permalink
Update simpleprometheus to use the factory helper (#745)
Browse files Browse the repository at this point in the history
Signed-off-by: Bogdan Drutu <[email protected]>
  • Loading branch information
bogdandrutu committed Aug 18, 2020
1 parent e97464e commit 8c9efcb
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 40 deletions.
2 changes: 1 addition & 1 deletion cmd/otelcontribcol/components.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ func components() (component.Factories, error) {
&wavefrontreceiver.Factory{},
redisreceiver.NewFactory(),
kubeletstatsreceiver.NewFactory(),
&simpleprometheusreceiver.Factory{},
simpleprometheusreceiver.NewFactory(),
&k8sclusterreceiver.Factory{},
prometheusexecreceiver.NewFactory(),
receivercreator.NewFactory(),
Expand Down
2 changes: 1 addition & 1 deletion receiver/simpleprometheusreceiver/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func TestLoadConfig(t *testing.T) {
factories, err := componenttest.ExampleComponents()
assert.Nil(t, err)

factory := &Factory{}
factory := NewFactory()
receiverType := "prometheus_simple"
factories.Receivers[configmodels.Type(receiverType)] = factory
cfg, err := configtest.LoadConfigFile(
Expand Down
37 changes: 14 additions & 23 deletions receiver/simpleprometheusreceiver/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ import (
"time"

"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/config/configerror"
"go.opentelemetry.io/collector/config/configmodels"
"go.opentelemetry.io/collector/config/confignet"
"go.opentelemetry.io/collector/consumer"
"go.opentelemetry.io/collector/receiver/receiverhelper"
)

// This file implements factory for prometheus_simple receiver
Expand All @@ -36,19 +36,15 @@ const (

var defaultCollectionInterval = 10 * time.Second

// Factory is the factory for SignalFx receiver.
type Factory struct {
// NewFactory creates a factory for "Simple" Prometheus receiver.
func NewFactory() component.ReceiverFactory {
return receiverhelper.NewFactory(
typeStr,
createDefaultConfig,
receiverhelper.WithMetrics(createMetricsReceiver))
}

var _ component.ReceiverFactory = (*Factory)(nil)

// Type gets the type of the Receiver Config created by this factory.
func (f *Factory) Type() configmodels.Type {
return typeStr
}

// CreateDefaultConfig creates the default configuration for Jaeger receiver.
func (f *Factory) CreateDefaultConfig() configmodels.Receiver {
func createDefaultConfig() configmodels.Receiver {
return &Config{
ReceiverSettings: configmodels.ReceiverSettings{
TypeVal: typeStr,
Expand All @@ -62,17 +58,12 @@ func (f *Factory) CreateDefaultConfig() configmodels.Receiver {
}
}

// CreateTraceReceiver creates a trace receiver based on provided Config.
func (f Factory) CreateTraceReceiver(
ctx context.Context, params component.ReceiverCreateParams,
cfg configmodels.Receiver, nextConsumer consumer.TraceConsumer) (component.TraceReceiver, error) {
return nil, configerror.ErrDataTypeIsNotSupported
}

// CreateMetricsReceiver creates a metrics receiver based on provided Config.
func (f Factory) CreateMetricsReceiver(
ctx context.Context, params component.ReceiverCreateParams,
cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumer) (component.MetricsReceiver, error) {
func createMetricsReceiver(
_ context.Context,
params component.ReceiverCreateParams,
cfg configmodels.Receiver,
nextConsumer consumer.MetricsConsumer,
) (component.MetricsReceiver, error) {
rCfg := cfg.(*Config)
return new(params, rCfg, nextConsumer), nil
}
15 changes: 1 addition & 14 deletions receiver/simpleprometheusreceiver/factory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,14 @@ import (
"context"
"testing"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/config/configerror"
"go.opentelemetry.io/collector/config/configmodels"
"go.opentelemetry.io/collector/testbed/testbed"
"go.uber.org/zap"
)

func TestFactory(t *testing.T) {
f := &Factory{}
assert.Equal(t, configmodels.Type("prometheus_simple"), f.Type())

f := NewFactory()
cfg := f.CreateDefaultConfig()
require.NotNil(t, cfg)

Expand All @@ -42,12 +37,4 @@ func TestFactory(t *testing.T) {
)
require.NoError(t, err)
require.NotNil(t, r)

_, err = f.CreateTraceReceiver(
context.Background(),
component.ReceiverCreateParams{Logger: zap.NewNop()},
cfg,
&testbed.MockTraceConsumer{},
)
require.Equal(t, configerror.ErrDataTypeIsNotSupported, err)
}
2 changes: 1 addition & 1 deletion receiver/simpleprometheusreceiver/receiver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import (
)

func TestReceiver(t *testing.T) {
f := &Factory{}
f := NewFactory()
tests := []struct {
name string
useServiceAccount bool
Expand Down

0 comments on commit 8c9efcb

Please sign in to comment.