@@ -16,6 +16,7 @@ import (
1616 metricsevent "github.com/DataDog/datadog-agent/pkg/metrics/event"
1717 "github.com/DataDog/datadog-agent/pkg/metrics/servicecheck"
1818 taggertypes "github.com/DataDog/datadog-agent/pkg/tagger/types"
19+ "github.com/DataDog/datadog-agent/pkg/tagset"
1920 "github.com/DataDog/datadog-agent/pkg/util/infratags"
2021 utilstrings "github.com/DataDog/datadog-agent/pkg/util/strings"
2122)
@@ -47,7 +48,7 @@ type enrichConfig struct {
4748// (origins, cardinality), and the JMX check name extracted from dd.internal.jmx_check_name (empty
4849// string if absent). The JMX check name is returned so callers can pass it directly to
4950// AppendJMXDogstatsdInfraTags without re-scanning the tag slice.
50- func extractTagsMetadata (tags []string , originFromUDS string , processID uint32 , localData origindetection.LocalData , externalData origindetection.ExternalData , cardinality string , conf enrichConfig ) ([]string , string , taggertypes.OriginInfo , metrics.MetricSource , string ) {
51+ func extractTagsMetadata (tags []tagset. InternedTag , originFromUDS string , processID uint32 , localData origindetection.LocalData , externalData origindetection.ExternalData , cardinality string , conf enrichConfig ) ([]tagset. InternedTag , string , taggertypes.OriginInfo , metrics.MetricSource , string ) {
5152 host := conf .defaultHostname
5253 metricSource := GetDefaultMetricSource ()
5354 jmxCheckName := ""
@@ -63,7 +64,8 @@ func extractTagsMetadata(tags []string, originFromUDS string, processID uint32,
6364 origin .LocalData .ProcessID = processID
6465
6566 n := 0
66- for _ , tag := range tags {
67+ for _ , itag := range tags {
68+ tag := itag .Value ()
6769 if strings .HasPrefix (tag , hostTagPrefix ) {
6870 host = tag [len (hostTagPrefix ):]
6971 continue
@@ -78,7 +80,7 @@ func extractTagsMetadata(tags []string, originFromUDS string, processID uint32,
7880 metricSource = metrics .JMXCheckNameToMetricSource (jmxCheckName )
7981 continue
8082 }
81- tags [n ] = tag
83+ tags [n ] = itag
8284 n ++
8385 }
8486
@@ -148,10 +150,10 @@ func tsToFloatForSamples(ts time.Time) float64 {
148150}
149151
150152func enrichMetricSample (dest []metrics.MetricSample , ddSample dogstatsdMetricSample , origin string , processID uint32 , listenerID string , conf enrichConfig , filterList * utilstrings.Matcher ) []metrics.MetricSample {
151- metricName := ddSample .name
153+ metricName := ddSample .name . Value ()
152154 tags , hostnameFromTags , extractedOrigin , metricSource , jmxCheckName := extractTagsMetadata (ddSample .tags , origin , processID , ddSample .localData , ddSample .externalData , ddSample .cardinality , conf )
153155 if conf .infraTagger .IsCheckEligible (jmxCheckName ) {
154- tags = conf .infraTagger .AppendTags (tags )
156+ tags = conf .infraTagger .AppendInternedTags (tags )
155157 }
156158
157159 if ! isExcluded (metricName , conf .metricPrefix , conf .metricPrefixBlacklist ) {
@@ -180,7 +182,7 @@ func enrichMetricSample(dest []metrics.MetricSample, ddSample dogstatsdMetricSam
180182 metrics.MetricSample {
181183 Host : hostnameFromTags ,
182184 Name : metricName ,
183- Tags : tags ,
185+ ITags : tags ,
184186 Mtype : mtype ,
185187 Value : ddSample .values [idx ],
186188 SampleRate : ddSample .sampleRate ,
@@ -199,7 +201,7 @@ func enrichMetricSample(dest []metrics.MetricSample, ddSample dogstatsdMetricSam
199201 return append (dest , metrics.MetricSample {
200202 Host : hostnameFromTags ,
201203 Name : metricName ,
202- Tags : tags ,
204+ ITags : tags ,
203205 Mtype : mtype ,
204206 Value : ddSample .value ,
205207 SampleRate : ddSample .sampleRate ,
@@ -237,7 +239,8 @@ func enrichEventAlertType(dogstatsdAlertType alertType) metricsevent.AlertType {
237239}
238240
239241func enrichEvent (event dogstatsdEvent , origin string , processID uint32 , conf enrichConfig ) * metricsevent.Event {
240- tags , hostnameFromTags , extractedOrigin , _ , _ := extractTagsMetadata (event .tags , origin , processID , event .localData , event .externalData , event .cardinality , conf )
242+ itags , hostnameFromTags , extractedOrigin , _ , _ := extractTagsMetadata (event .tags , origin , processID , event .localData , event .externalData , event .cardinality , conf )
243+ tags := tagset .Values (itags )
241244
242245 enrichedEvent := & metricsevent.Event {
243246 Title : event .title ,
@@ -274,7 +277,8 @@ func enrichServiceCheckStatus(status serviceCheckStatus) servicecheck.ServiceChe
274277}
275278
276279func enrichServiceCheck (serviceCheck dogstatsdServiceCheck , origin string , processID uint32 , conf enrichConfig ) * servicecheck.ServiceCheck {
277- tags , hostnameFromTags , extractedOrigin , _ , _ := extractTagsMetadata (serviceCheck .tags , origin , processID , serviceCheck .localData , serviceCheck .externalData , serviceCheck .cardinality , conf )
280+ itags , hostnameFromTags , extractedOrigin , _ , _ := extractTagsMetadata (serviceCheck .tags , origin , processID , serviceCheck .localData , serviceCheck .externalData , serviceCheck .cardinality , conf )
281+ tags := tagset .Values (itags )
278282
279283 enrichedServiceCheck := & servicecheck.ServiceCheck {
280284 CheckName : serviceCheck .name ,
0 commit comments