Skip to content

Commit

Permalink
[mdatagen] Expose ability to see if enabled option is overridden in u…
Browse files Browse the repository at this point in the history
…ser settings (open-telemetry#15344)

[mdatagen] Expose ability to see if enabled field is set in settings

This allows receiver developers to see if the default value is overridden in user settings.
  • Loading branch information
dmitryax authored and shalper2 committed Dec 6, 2022
1 parent c67e386 commit 09c870a
Show file tree
Hide file tree
Showing 58 changed files with 828 additions and 6 deletions.
4 changes: 4 additions & 0 deletions .chloggen/mdatagen-optional-enabled.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
change_type: enhancement
component: cmd/mdatagen
note: Add ability to see if `enabled` option is overridden in user settings.
issues: [15344]
20 changes: 20 additions & 0 deletions cmd/mdatagen/metrics.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"time"

"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/confmap"
"go.opentelemetry.io/collector/pdata/pcommon"
"go.opentelemetry.io/collector/pdata/pmetric"
{{- if .SemConvVersion }}
Expand All @@ -20,6 +21,25 @@ import (
// MetricSettings provides common settings for a particular metric.
type MetricSettings struct {
Enabled bool `mapstructure:"enabled"`

enabledProvidedByUser bool
}

// IsEnabledProvidedByUser returns true if `enabled` option is explicitly set in user settings to any value.
func (ms *MetricSettings) IsEnabledProvidedByUser() bool {
return ms.enabledProvidedByUser
}

func (ms *MetricSettings) Unmarshal(parser *confmap.Conf) error {
if parser == nil {
return nil
}
err := parser.Unmarshal(ms, confmap.WithErrorUnused())
if err != nil {
return err
}
ms.enabledProvidedByUser = parser.IsSet("enabled")
return nil
}

// MetricsSettings provides settings for {{ .Name }} metrics.
Expand Down
6 changes: 5 additions & 1 deletion receiver/activedirectorydsreceiver/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import (
"testing"
"time"

"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/config"
Expand Down Expand Up @@ -66,7 +68,9 @@ func TestLoadConfig(t *testing.T) {
require.NoError(t, config.UnmarshalReceiver(sub, cfg))

assert.NoError(t, cfg.Validate())
assert.Equal(t, tt.expected, cfg)
if diff := cmp.Diff(tt.expected, cfg, cmpopts.IgnoreUnexported(config.ReceiverSettings{}, metadata.MetricSettings{})); diff != "" {
t.Errorf("Config mismatch (-expected +actual):\n%s", diff)
}
})
}
}
1 change: 1 addition & 0 deletions receiver/activedirectorydsreceiver/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ module github.com/open-telemetry/opentelemetry-collector-contrib/receiver/active
go 1.18

require (
github.com/google/go-cmp v0.5.9
github.com/open-telemetry/opentelemetry-collector-contrib/internal/scrapertest v0.62.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/winperfcounters v0.62.0
github.com/stretchr/testify v1.8.0
Expand Down
1 change: 1 addition & 0 deletions receiver/activedirectorydsreceiver/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions receiver/aerospikereceiver/internal/metadata/generated_metrics.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions receiver/apachereceiver/internal/metadata/generated_metrics.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions receiver/bigipreceiver/internal/metadata/generated_metrics.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions receiver/chronyreceiver/internal/metadata/generated_metrics.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions receiver/couchdbreceiver/internal/metadata/generated_metrics.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion receiver/dockerstatsreceiver/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import (
"testing"
"time"

"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/config"
Expand Down Expand Up @@ -93,7 +95,9 @@ func TestLoadConfig(t *testing.T) {
require.NoError(t, config.UnmarshalReceiver(sub, cfg))

assert.NoError(t, cfg.Validate())
assert.Equal(t, tt.expected, cfg)
if diff := cmp.Diff(tt.expected, cfg, cmpopts.IgnoreUnexported(config.ReceiverSettings{}, metadata.MetricSettings{})); diff != "" {
t.Errorf("Config mismatch (-expected +actual):\n%s", diff)
}
})
}
}
Expand Down
1 change: 1 addition & 0 deletions receiver/dockerstatsreceiver/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ go 1.18

require (
github.com/docker/docker v20.10.20+incompatible
github.com/google/go-cmp v0.5.9
github.com/open-telemetry/opentelemetry-collector-contrib/internal/containertest v0.62.0
github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.62.0
github.com/open-telemetry/opentelemetry-collector-contrib/internal/scrapertest v0.62.0
Expand Down
1 change: 1 addition & 0 deletions receiver/dockerstatsreceiver/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion receiver/elasticsearchreceiver/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import (
"testing"
"time"

"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/config"
Expand Down Expand Up @@ -194,7 +196,9 @@ func TestLoadConfig(t *testing.T) {
require.NoError(t, config.UnmarshalReceiver(sub, cfg))

assert.NoError(t, cfg.Validate())
assert.Equal(t, tt.expected, cfg)
if diff := cmp.Diff(tt.expected, cfg, cmpopts.IgnoreUnexported(config.ReceiverSettings{}, metadata.MetricSettings{})); diff != "" {
t.Errorf("Config mismatch (-expected +actual):\n%s", diff)
}
})
}
}
1 change: 1 addition & 0 deletions receiver/elasticsearchreceiver/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ require (
)

require (
github.com/google/go-cmp v0.5.9
github.com/hashicorp/go-version v1.6.0
github.com/testcontainers/testcontainers-go v0.14.0
)
Expand Down
1 change: 1 addition & 0 deletions receiver/elasticsearchreceiver/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 09c870a

Please sign in to comment.