Skip to content

Commit

Permalink
Add a resource attribute to internal metrics to track discovery usage
Browse files Browse the repository at this point in the history
  • Loading branch information
dmitryax committed Feb 23, 2024
1 parent 119d697 commit 1828d50
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 0 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## Unreleased

### 💡 Enhancements 💡

- (Splunk) Add a resource attribute to internal metrics to track discovery usage ([#4323](https://github.com/signalfx/splunk-otel-collector/pull/4323))

## v0.93.0

This Splunk OpenTelemetry Collector release includes changes from the [opentelemetry-collector v0.93.0](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.93.0) and the [opentelemetry-collector-contrib v0.93.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.93.0) releases where appropriate.
Expand Down
18 changes: 18 additions & 0 deletions internal/configconverter/discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,28 @@ func (Discovery) Convert(_ context.Context, in *confmap.Conf) error {
metricsPipeline["receivers"] = appendUnique(metricsReceivers, discoReceivers)
}

setAutoDiscoveryResourceAttribute(service)

*in = *confmap.NewFromStringMap(out)
return nil
}

func setAutoDiscoveryResourceAttribute(service map[string]any) {
telemetry := map[string]any{}
if tel, ok := service["telemetry"]; ok {
telemetry = tel.(map[string]any)
}
service["telemetry"] = telemetry

resAttrs := map[string]any{}
if ra, ok := telemetry["resource"]; ok {
resAttrs = ra.(map[string]any)
}
telemetry["resource"] = resAttrs

resAttrs["splunk_autodiscovery"] = "true"
}

func getServiceExtensions(out map[string]any) (map[string]any, []any, error) {
service := map[string]any{}
var serviceExtensions []any
Expand Down
19 changes: 19 additions & 0 deletions internal/configconverter/discovery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ func TestDiscovery(t *testing.T) {
processors: [proc/six, proc/seven, proc/eight]
exporters: [exp/six, exp/seven, exp/eight]
receivers/splunk.discovery: [recv/four, recv/five]
telemetry:
resource:
my-resource: test
`)

expected := confFromYaml(t, `service:
Expand All @@ -50,6 +53,10 @@ func TestDiscovery(t *testing.T) {
receivers: [recv/six, recv/seven, recv/eight]
processors: [proc/six, proc/seven, proc/eight]
exporters: [exp/six, exp/seven, exp/eight]
telemetry:
resource:
my-resource: test
splunk_autodiscovery: "true"
`)

require.NoError(t, Discovery{}.Convert(context.Background(), in))
Expand Down Expand Up @@ -112,6 +119,9 @@ func TestDiscoveryExtensionsOnly(t *testing.T) {
receivers: [recv/six, recv/seven, recv/eight]
processors: [proc/six, proc/seven, proc/eight]
exporters: [exp/six, exp/seven, exp/eight]
telemetry:
resource:
splunk_autodiscovery: "true"
`)

require.NoError(t, Discovery{}.Convert(context.Background(), in))
Expand Down Expand Up @@ -143,6 +153,9 @@ func TestDiscoveryEmptyExtensions(t *testing.T) {
receivers: [recv/six, recv/seven, recv/eight]
processors: [proc/six, proc/seven, proc/eight]
exporters: [exp/six, exp/seven, exp/eight]
telemetry:
resource:
splunk_autodiscovery: "true"
`)

require.NoError(t, Discovery{}.Convert(context.Background(), in))
Expand Down Expand Up @@ -173,6 +186,9 @@ func TestDiscoveryReceiversOnly(t *testing.T) {
receivers: [recv/six, recv/seven, recv/eight]
processors: [proc/six, proc/seven, proc/eight]
exporters: [exp/six, exp/seven, exp/eight]
telemetry:
resource:
splunk_autodiscovery: "true"
`)

require.NoError(t, Discovery{}.Convert(context.Background(), in))
Expand Down Expand Up @@ -201,6 +217,9 @@ func TestDiscoveryEmptyReceivers(t *testing.T) {
receivers: [recv/six, recv/seven, recv/eight]
processors: [proc/six, proc/seven, proc/eight]
exporters: [exp/six, exp/seven, exp/eight]
telemetry:
resource:
splunk_autodiscovery: "true"
`)

require.NoError(t, Discovery{}.Convert(context.Background(), in))
Expand Down
5 changes: 5 additions & 0 deletions tests/general/discoverymode/configd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,9 @@ func TestConfigDInitialAndEffectiveConfig(t *testing.T) {
"logs": map[string]any{
"level": "debug",
},
"resource": map[string]any{
"splunk_autodiscovery": "true",
},
},
},
}
Expand Down Expand Up @@ -231,6 +234,8 @@ service:
telemetry:
logs:
level: debug
resource:
splunk_autodiscovery: "true"
`, stdout)
require.Equal(t, "", stderr)
require.Zero(t, sc)
Expand Down
5 changes: 5 additions & 0 deletions tests/general/discoverymode/docker_observer_discovery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,9 @@ func TestDockerObserver(t *testing.T) {
"address": "",
"level": "none",
},
"resource": map[string]any{
"splunk_autodiscovery": "true",
},
},
},
"extensions": map[string]any{
Expand Down Expand Up @@ -291,6 +294,8 @@ service:
metrics:
address: ""
level: none
resource:
splunk_autodiscovery: "true"
`, stdout)
require.Contains(
t, stderr,
Expand Down
2 changes: 2 additions & 0 deletions tests/general/discoverymode/host_observer_discovery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,8 @@ service:
metrics:
address: ""
level: none
resource:
splunk_autodiscovery: "true"
`, stdout, errorContent)

split := strings.Split(stderr, "\n")
Expand Down
2 changes: 2 additions & 0 deletions tests/general/discoverymode/k8s_observer_discovery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ service:
metrics:
address: ""
level: none
resource:
splunk_autodiscovery: "true"
`, stdout.String())
require.Contains(
t, stderr.String(),
Expand Down

0 comments on commit 1828d50

Please sign in to comment.