Skip to content

Commit 9debed3

Browse files
authored
[OTAGENT-566] Full host profiler: Add k8sattributesprocessor (#41731)
### What does this PR do? This PR adds the ability to use k8sattributesprocessor and attributesprocessor when the agent is not available ### Motivation Infra attributes processor doesn't work without the agent. ### Describe how you validated your changes Add an unit tests. ### Additional Notes
1 parent 4428171 commit 9debed3

File tree

3 files changed

+38
-4
lines changed

3 files changed

+38
-4
lines changed

comp/host-profiler/collector/impl/otel_col_factories.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import (
1414
"github.com/DataDog/datadog-agent/comp/host-profiler/collector/impl/converternoagent"
1515
"github.com/DataDog/datadog-agent/comp/host-profiler/collector/impl/receiver"
1616
"github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor"
17+
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor"
18+
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor"
1719

1820
"go.opentelemetry.io/collector/confmap"
1921
"go.opentelemetry.io/collector/exporter/debugexporter"
@@ -67,7 +69,7 @@ func NewExtraFactoriesWithoutAgentCore() ExtraFactories {
6769

6870
// GetProcessors returns the processors for the collector.
6971
func (e extraFactoriesWithoutAgentCore) GetProcessors() []processor.Factory {
70-
return nil
72+
return []processor.Factory{k8sattributesprocessor.NewFactory()}
7173
}
7274

7375
// GetConverters returns the converters for the collector.
@@ -93,7 +95,9 @@ func createFactories(extraFactories ExtraFactories) func() (otelcol.Factories, e
9395
return otelcol.Factories{}, err
9496
}
9597

96-
processors, err := otelcol.MakeFactoryMap(extraFactories.GetProcessors()...)
98+
processorFactories := []processor.Factory{attributesprocessor.NewFactory()}
99+
processorFactories = append(processorFactories, extraFactories.GetProcessors()...)
100+
processors, err := otelcol.MakeFactoryMap(processorFactories...)
97101
if err != nil {
98102
return otelcol.Factories{}, err
99103
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Unless explicitly stated otherwise all files in this repository are licensed
2+
// under the Apache License Version 2.0.
3+
// This product includes software developed at Datadog (https://www.datadoghq.com/).
4+
// Copyright 2025-present Datadog, Inc.
5+
6+
//go:build linux
7+
8+
package collectorimpl
9+
10+
import (
11+
"testing"
12+
13+
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor"
14+
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor"
15+
"github.com/stretchr/testify/require"
16+
)
17+
18+
func TestExtraFactoriesWithoutAgentCore_GetProcessors(t *testing.T) {
19+
extraFactories := NewExtraFactoriesWithoutAgentCore()
20+
factories, err := createFactories(extraFactories)()
21+
require.NoError(t, err)
22+
23+
processors := factories.Processors
24+
_, found := processors[k8sattributesprocessor.NewFactory().Type()]
25+
require.True(t, found)
26+
27+
_, found = processors[attributesprocessor.NewFactory().Type()]
28+
require.True(t, found)
29+
30+
}

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -741,12 +741,12 @@ require (
741741
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.137.0 // indirect
742742
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.137.0 // indirect
743743
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/winperfcounters v0.137.0 // indirect
744-
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.137.0 // indirect
744+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.137.0
745745
github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.137.0 // indirect
746746
github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.137.0 // indirect
747747
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.137.0 // indirect
748748
github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.137.0 // indirect
749-
github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.137.0 // indirect
749+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.137.0
750750
github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.137.0 // indirect
751751
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.137.0 // indirect
752752
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.137.0 // indirect

0 commit comments

Comments
 (0)