@@ -17,7 +17,6 @@ import (
1717 "github.com/DataDog/datadog-agent/pkg/network/protocols/postgres"
1818 "github.com/DataDog/datadog-agent/pkg/network/tracer"
1919 "github.com/DataDog/datadog-agent/pkg/process/util"
20- "github.com/DataDog/datadog-agent/pkg/util/kernel"
2120 "github.com/DataDog/datadog-agent/pkg/util/kubernetes/kubelet"
2221 "github.com/StackVista/stackstate-process-agent/pkg/pods"
2322 "github.com/StackVista/stackstate-receiver-go-client/pkg/model/telemetry"
@@ -61,6 +60,9 @@ type ConnectionsCheck struct {
6160 cache * NetworkRelationCache
6261
6362 podCorrelation * podCorrelationInfo
63+
64+ // Inode of the root network namespace
65+ rootNSIno uint32
6466}
6567
6668// Name returns the name of the ConnectionsCheck.
@@ -533,32 +535,21 @@ func (c *ConnectionsCheck) formatConnections(
533535 // It is unlikely that we will be able to correlate connections from the root namespace
534536 var unsentNonRootObservations = 0
535537 var unsentNonRootConnectionMetrics = 0
536- rootHandle , err := kernel .GetRootNetNamespace (kernel .ProcFSRoot ())
537- if err == nil {
538- ino , err := kernel .GetInoForNs (rootHandle )
539- if err == nil {
540- for k , v := range uncorrelatedObservations {
541- if k .NetNs != ino {
542- log .Debugf ("Unsent non-root observation: %v:%d<-%v:%d @ %d = %v" , util .FromLowHigh (k .DstIPLow , k .DstIPHigh ), k .DstPort , util .FromLowHigh (k .SrcIPLow , k .SrcIPHigh ), k .SrcPort , k .NetNs , v )
543- unsentNonRootObservations ++
544- continue
545- }
546- log .Debugf ("Unsent connection observation: %v:%d<-%v:%d @ %d = %v" , util .FromLowHigh (k .DstIPLow , k .DstIPHigh ), k .DstPort , util .FromLowHigh (k .SrcIPLow , k .SrcIPHigh ), k .SrcPort , k .NetNs , v )
547- }
548538
549- for k := range uncorrelatedConnectionMetrics {
550- if k .NetNs != ino {
551- unsentNonRootConnectionMetrics ++
552- continue
553- }
554- }
555- } else {
556- unsentNonRootObservations = 0
557- unsentNonRootConnectionMetrics = 0
539+ for k , v := range uncorrelatedObservations {
540+ if k .NetNs != c .rootNSIno {
541+ log .Debugf ("Unsent non-root observation: %v:%d<-%v:%d @ %d = %v" , util .FromLowHigh (k .DstIPLow , k .DstIPHigh ), k .DstPort , util .FromLowHigh (k .SrcIPLow , k .SrcIPHigh ), k .SrcPort , k .NetNs , v )
542+ unsentNonRootObservations ++
543+ continue
544+ }
545+ log .Debugf ("Unsent connection observation: %v:%d<-%v:%d @ %d = %v" , util .FromLowHigh (k .DstIPLow , k .DstIPHigh ), k .DstPort , util .FromLowHigh (k .SrcIPLow , k .SrcIPHigh ), k .SrcPort , k .NetNs , v )
546+ }
547+
548+ for k := range uncorrelatedConnectionMetrics {
549+ if k .NetNs != c .rootNSIno {
550+ unsentNonRootConnectionMetrics ++
551+ continue
558552 }
559- } else {
560- unsentNonRootObservations = 0
561- unsentNonRootConnectionMetrics = 0
562553 }
563554
564555 connectionMetricsProcessedCounter .WithLabelValues ("no_process" ).Add (connectionMetricNoProcess )
0 commit comments