Skip to content

Commit

Permalink
Release v0.35.0 (#749)
Browse files Browse the repository at this point in the history
* Release v0.35.0

* Rename configparser.Parser to configparser.ConfigMap

* Rename pdata.NewAttributeValueNull to pdata.NewAttributeValueEmpty

* Fix issues with Logger removal

* Update tests for 0.35.0

Co-authored-by: emaderer <[email protected]>
Co-authored-by: Ryan Fitzpatrick <[email protected]>
  • Loading branch information
3 people authored Sep 17, 2021
1 parent e14f1b9 commit ab2cba7
Show file tree
Hide file tree
Showing 17 changed files with 310 additions and 273 deletions.
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,24 @@

## Unreleased

## v0.35.0

This Splunk OpenTelemetry Connector release includes changes from the [opentelemetry-collector v0.35.0](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.35.0) and the [opentelemetry-collector-contrib v0.35.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.35.0) releases.

## 🚀 New components 🚀

- [`groupbyattrs` processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/groupbyattrsprocessor)

### 💡 Enhancements 💡

- Update bundled Smart Agent to [v5.13.0](https://github.com/signalfx/signalfx-agent/releases/tag/v5.13.0) (#738)
- Add SUSE support to [Linux installer script](https://github.com/signalfx/splunk-otel-collector/blob/main/docs/getting-started/linux-installer.md) (collector only, log collection with Fluentd not yet supported) (#720)
- Add SUSE support to [puppet module](https://forge.puppet.com/modules/signalfx/splunk_otel_collector) (collector only, log collection with Fluentd not yet supported) (#737)

### 🧰 Bug fixes 🧰

- `smartagent` receiver: Properly parse receiver creator endpoints (#718)

## v0.34.1

### 💡 Enhancements 💡
Expand Down
168 changes: 84 additions & 84 deletions go.mod

Large diffs are not rendered by default.

283 changes: 151 additions & 132 deletions go.sum

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion internal/configprovider/config_source_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func NewConfigSourceParserProvider(pp parserprovider.ParserProvider, logger *zap
// Get returns a config.Parser that wraps the parserprovider.Default() with a parser
// that can load and inject data from config sources. If there are no config sources
// in the configuration the returned parser behaves like the parserprovider.Default().
func (c *configSourceParserProvider) Get() (*configparser.Parser, error) {
func (c *configSourceParserProvider) Get() (*configparser.ConfigMap, error) {
defaultParser, err := c.pp.Get()
if err != nil {
return nil, err
Expand Down
4 changes: 2 additions & 2 deletions internal/configprovider/config_source_provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ type mockParserProvider struct {

var _ (parserprovider.ParserProvider) = (*mockParserProvider)(nil)

func (mpp *mockParserProvider) Get() (*configparser.Parser, error) {
func (mpp *mockParserProvider) Get() (*configparser.ConfigMap, error) {
if mpp.ErrOnGet {
return nil, &errOnParserProviderGet{errors.New("mockParserProvider.Get() forced test error")}
}
Expand All @@ -151,6 +151,6 @@ type fileParserProvider struct {

var _ (parserprovider.ParserProvider) = (*fileParserProvider)(nil)

func (fpp *fileParserProvider) Get() (*configparser.Parser, error) {
func (fpp *fileParserProvider) Get() (*configparser.ConfigMap, error) {
return configparser.NewParserFromFile(fpp.FileName)
}
12 changes: 6 additions & 6 deletions internal/configprovider/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ type Manager struct {
// NewManager creates a new instance of a Manager to be used to inject data from
// ConfigSource objects into a configuration and watch for updates on the injected
// data.
func NewManager(parser *configparser.Parser, logger *zap.Logger, buildInfo component.BuildInfo, factories Factories) (*Manager, error) {
func NewManager(parser *configparser.ConfigMap, logger *zap.Logger, buildInfo component.BuildInfo, factories Factories) (*Manager, error) {
configSourcesSettings, err := Load(context.Background(), parser, factories)
if err != nil {
return nil, err
Expand All @@ -196,10 +196,10 @@ func NewManager(parser *configparser.Parser, logger *zap.Logger, buildInfo compo
return newManager(cfgSources), nil
}

// Resolve inspects the given configparser.Parser and resolves all config sources referenced
// in the configuration, returning a configparser.Parser fully resolved. This must be called only
// Resolve inspects the given configparser.ConfigMap and resolves all config sources referenced
// in the configuration, returning a configparser.ConfigMap fully resolved. This must be called only
// once per lifetime of a Manager object.
func (m *Manager) Resolve(ctx context.Context, parser *configparser.Parser) (*configparser.Parser, error) {
func (m *Manager) Resolve(ctx context.Context, parser *configparser.ConfigMap) (*configparser.ConfigMap, error) {
res := configparser.NewParser()
allKeys := parser.AllKeys()
for _, k := range allKeys {
Expand Down Expand Up @@ -525,7 +525,7 @@ func parseCfgSrc(s string) (cfgSrcName, selector string, params interface{}, err
selector = strings.Trim(parts[0], " ")

if len(parts) > 1 && len(parts[1]) > 0 {
var p *configparser.Parser
var p *configparser.ConfigMap
if p, err = configparser.NewParserFromBuffer(bytes.NewReader([]byte(parts[1]))); err != nil {
return
}
Expand Down Expand Up @@ -586,7 +586,7 @@ func parseParamsAsURLQuery(s string) (interface{}, error) {
}

// expandEnvVars is used to expand environment variables with the same syntax used
// by configparser.Parser.
// by configparser.ConfigMap.
func expandEnvVars(s string) string {
return os.Expand(s, func(str string) string {
// This allows escaping environment variable substitution via $$, e.g.
Expand Down
6 changes: 3 additions & 3 deletions internal/configprovider/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ type (

// Load reads the configuration for ConfigSource objects from the given parser and returns a map
// from the full name of config sources to the respective ConfigSettings.
func Load(ctx context.Context, v *configparser.Parser, factories Factories) (map[string]ConfigSettings, error) {
func Load(ctx context.Context, v *configparser.ConfigMap, factories Factories) (map[string]ConfigSettings, error) {
processedParser, err := processParser(ctx, v)
if err != nil {
return nil, err
Expand All @@ -54,8 +54,8 @@ func Load(ctx context.Context, v *configparser.Parser, factories Factories) (map
return cfgSrcSettings, nil
}

// processParser prepares a configparser.Parser to be used to load config source settings.
func processParser(ctx context.Context, v *configparser.Parser) (*configparser.Parser, error) {
// processParser prepares a configparser.ConfigMap to be used to load config source settings.
func processParser(ctx context.Context, v *configparser.ConfigMap) (*configparser.ConfigMap, error) {
// Use a manager to resolve environment variables with a syntax consistent with
// the config source usage.
manager := newManager(make(map[string]configsource.ConfigSource))
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/smartagentextension/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ type Config struct {
saconfig.Config `mapstructure:"-,squash"`
}

func (cfg *Config) Unmarshal(componentParser *configparser.Parser) error {
func (cfg *Config) Unmarshal(componentParser *configparser.ConfigMap) error {
allSettings := componentParser.ToStringMap()

configDirSet := false
Expand Down
5 changes: 1 addition & 4 deletions internal/extension/smartagentextension/extension_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,13 @@ import (
"github.com/signalfx/signalfx-agent/pkg/core/config"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/component"
"go.uber.org/zap"

"github.com/signalfx/splunk-otel-collector/internal/components/componenttest"
)

func TestExtensionLifecycle(t *testing.T) {
ctx := context.Background()
createParams := component.ExtensionCreateSettings{
Logger: zap.NewNop(),
}
createParams := component.ExtensionCreateSettings{}
cfg := &Config{
Config: config.Config{
BundleDir: "/bundle/",
Expand Down
2 changes: 1 addition & 1 deletion internal/receiver/smartagentreceiver/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func (cfg *Config) validate() error {

// Unmarshal dynamically creates the desired Smart Agent monitor config
// from the provided receiver config content.
func (cfg *Config) Unmarshal(componentParser *configparser.Parser) error {
func (cfg *Config) Unmarshal(componentParser *configparser.ConfigMap) error {
// AllSettings() is the user provided config and intoCfg is the default Config instance we populate to
// form the final desired version. To do so, we manually obtain all Config items, leaving only Smart Agent
// monitor config settings to be unmarshalled to their respective custom monitor config types.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func TestEventToPDataLogs(tt *testing.T) {
expectedLog: newExpectedLog(
"",
map[string]pdata.AttributeValue{
"com.splunk.signalfx.event_category": pdata.NewAttributeValueNull(),
"com.splunk.signalfx.event_category": pdata.NewAttributeValueEmpty(),
}, 0,
),
},
Expand Down
17 changes: 8 additions & 9 deletions internal/receiver/smartagentreceiver/factory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/config/configcheck"
"go.opentelemetry.io/collector/consumer/consumertest"
"go.uber.org/zap"
)

func TestCreateDefaultConfig(t *testing.T) {
Expand All @@ -39,7 +38,7 @@ func TestCreateMetricsReceiver(t *testing.T) {
cfg := factory.CreateDefaultConfig()
cfg.(*Config).monitorConfig = &haproxy.Config{}

params := component.ReceiverCreateSettings{Logger: zap.NewNop()}
params := component.ReceiverCreateSettings{}
receiver, err := factory.CreateMetricsReceiver(context.Background(), params, cfg, consumertest.NewNop())
assert.NoError(t, err)
assert.NotNil(t, receiver)
Expand All @@ -52,7 +51,7 @@ func TestCreateMetricsReceiverWithInvalidConfig(t *testing.T) {
cfg := &Config{}
require.Error(t, cfg.validate())

params := component.ReceiverCreateSettings{Logger: zap.NewNop()}
params := component.ReceiverCreateSettings{}
receiver, err := factory.CreateMetricsReceiver(context.Background(), params, cfg, consumertest.NewNop())
require.Error(t, err)
assert.EqualError(t, err, "you must supply a valid Smart Agent Monitor config")
Expand All @@ -66,7 +65,7 @@ func TestCreateLogsReceiver(t *testing.T) {
cfg := factory.CreateDefaultConfig()
cfg.(*Config).monitorConfig = &haproxy.Config{}

params := component.ReceiverCreateSettings{Logger: zap.NewNop()}
params := component.ReceiverCreateSettings{}
receiver, err := factory.CreateLogsReceiver(context.Background(), params, cfg, consumertest.NewNop())
assert.NoError(t, err)
assert.NotNil(t, receiver)
Expand All @@ -79,7 +78,7 @@ func TestCreateLogsReceiverWithInvalidConfig(t *testing.T) {
cfg := &Config{}
require.Error(t, cfg.validate())

params := component.ReceiverCreateSettings{Logger: zap.NewNop()}
params := component.ReceiverCreateSettings{}
receiver, err := factory.CreateLogsReceiver(context.Background(), params, cfg, consumertest.NewNop())
require.Error(t, err)
assert.EqualError(t, err, "you must supply a valid Smart Agent Monitor config")
Expand All @@ -93,7 +92,7 @@ func TestCreateTracesReceiver(t *testing.T) {
cfg := factory.CreateDefaultConfig()
cfg.(*Config).monitorConfig = &haproxy.Config{}

params := component.ReceiverCreateSettings{Logger: zap.NewNop()}
params := component.ReceiverCreateSettings{}
receiver, err := factory.CreateTracesReceiver(context.Background(), params, cfg, consumertest.NewNop())
assert.NoError(t, err)
assert.NotNil(t, receiver)
Expand All @@ -106,7 +105,7 @@ func TestCreateTracesReceiverWithInvalidConfig(t *testing.T) {
cfg := &Config{}
require.Error(t, cfg.validate())

params := component.ReceiverCreateSettings{Logger: zap.NewNop()}
params := component.ReceiverCreateSettings{}
receiver, err := factory.CreateTracesReceiver(context.Background(), params, cfg, consumertest.NewNop())
require.Error(t, err)
assert.EqualError(t, err, "you must supply a valid Smart Agent Monitor config")
Expand All @@ -120,7 +119,7 @@ func TestCreateMetricsThenLogsAndThenTracesReceiver(t *testing.T) {
cfg := factory.CreateDefaultConfig()
cfg.(*Config).monitorConfig = &haproxy.Config{}

params := component.ReceiverCreateSettings{Logger: zap.NewNop()}
params := component.ReceiverCreateSettings{}
nextMetricsConsumer := consumertest.NewNop()
metricsReceiver, err := factory.CreateMetricsReceiver(context.Background(), params, cfg, nextMetricsConsumer)
assert.NoError(t, err)
Expand Down Expand Up @@ -150,7 +149,7 @@ func TestCreateTracesThenLogsAndThenMetricsReceiver(t *testing.T) {
cfg := factory.CreateDefaultConfig()
cfg.(*Config).monitorConfig = &haproxy.Config{}

params := component.ReceiverCreateSettings{Logger: zap.NewNop()}
params := component.ReceiverCreateSettings{}
nextTracesConsumer := consumertest.NewNop()
tracesReceiver, err := factory.CreateTracesReceiver(context.Background(), params, cfg, nextTracesConsumer)
assert.NoError(t, err)
Expand Down
30 changes: 15 additions & 15 deletions tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ require (
github.com/docker/docker v20.10.8+incompatible
github.com/docker/go-connections v0.4.0
github.com/google/uuid v1.3.0
github.com/shirou/gopsutil v3.21.7+incompatible
github.com/shirou/gopsutil v3.21.8+incompatible
github.com/signalfx/com_signalfx_metrics_protobuf v0.0.2
github.com/signalfx/signalfx-go v1.8.1
github.com/stretchr/testify v1.7.0
github.com/testcontainers/testcontainers-go v0.11.1
go.opentelemetry.io/collector v0.34.0
go.opentelemetry.io/collector/model v0.34.0
go.opentelemetry.io/otel/trace v1.0.0-RC2
go.opentelemetry.io/collector v0.35.0
go.opentelemetry.io/collector/model v0.35.0
go.opentelemetry.io/otel/trace v1.0.0-RC3
go.uber.org/atomic v1.9.0
go.uber.org/zap v1.19.0
gopkg.in/yaml.v2 v2.4.0
Expand All @@ -40,7 +40,7 @@ require (
github.com/golang/protobuf v1.5.2 // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/gorilla/websocket v1.4.2 // indirect
github.com/knadh/koanf v1.2.1 // indirect
github.com/knadh/koanf v1.2.2 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/mapstructure v1.4.1 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
Expand All @@ -66,7 +66,7 @@ require (
go.opentelemetry.io/contrib v0.22.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.22.0 // indirect
go.opentelemetry.io/otel v1.0.0-RC2 // indirect
go.opentelemetry.io/otel v1.0.0-RC3 // indirect
go.opentelemetry.io/otel/internal/metric v0.22.0 // indirect
go.opentelemetry.io/otel/metric v0.22.0 // indirect
go.uber.org/multierr v1.6.0 // indirect
Expand All @@ -83,13 +83,13 @@ require (
)

replace (
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.34.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.34.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.34.0
github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.34.0
github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.34.0
github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.34.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.34.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.34.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver v0.34.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.35.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.35.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.35.0
github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.35.0
github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.35.0
github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.35.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.35.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.35.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver v0.0.0-00010101000000-000000000000 => github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver v0.35.0
)
Loading

0 comments on commit ab2cba7

Please sign in to comment.