Skip to content

Commit

Permalink
[CONTP-359] Updating OriginInfo struct field names (#29277)
Browse files Browse the repository at this point in the history
  • Loading branch information
gabedos committed Sep 20, 2024
1 parent 42c6d41 commit 4673873
Show file tree
Hide file tree
Showing 7 changed files with 175 additions and 175 deletions.
34 changes: 17 additions & 17 deletions comp/core/tagger/taggerimpl/tagger.go
Original file line number Diff line number Diff line change
Expand Up @@ -425,30 +425,30 @@ func (t *TaggerClient) EnrichTags(tb tagset.TagsAccumulator, originInfo taggerty
// | empty | not empty || container prefix + originFromMsg |
// | none | not empty || container prefix + originFromMsg |
if t.datadogConfig.dogstatsdOptOutEnabled && originInfo.Cardinality == "none" {
originInfo.FromUDS = packets.NoOrigin
originInfo.FromTag = ""
originInfo.FromMsg = ""
originInfo.ContainerIDFromSocket = packets.NoOrigin
originInfo.PodUID = ""
originInfo.ContainerID = ""
return
}

// We use the UDS socket origin if no origin ID was specify in the tags
// or 'dogstatsd_entity_id_precedence' is set to False (default false).
if originInfo.FromUDS != packets.NoOrigin &&
(originInfo.FromTag == "" || !t.datadogConfig.dogstatsdEntityIDPrecedenceEnabled) {
if err := t.AccumulateTagsFor(originInfo.FromUDS, cardinality, tb); err != nil {
if originInfo.ContainerIDFromSocket != packets.NoOrigin &&
(originInfo.PodUID == "" || !t.datadogConfig.dogstatsdEntityIDPrecedenceEnabled) {
if err := t.AccumulateTagsFor(originInfo.ContainerIDFromSocket, cardinality, tb); err != nil {
t.log.Errorf("%s", err.Error())
}
}

// originFromClient can either be originInfo.FromTag or originInfo.FromMsg
originFromClient := ""
if originInfo.FromTag != "" && originInfo.FromTag != "none" {
if originInfo.PodUID != "" && originInfo.PodUID != "none" {
// Check if the value is not "none" in order to avoid calling the tagger for entity that doesn't exist.
// Currently only supported for pods
originFromClient = types.NewEntityID(types.KubernetesPodUID, originInfo.FromTag).String()
} else if originInfo.FromTag == "" && len(originInfo.FromMsg) > 0 {
originFromClient = types.NewEntityID(types.KubernetesPodUID, originInfo.PodUID).String()
} else if originInfo.PodUID == "" && len(originInfo.ContainerID) > 0 {
// originInfo.FromMsg is the container ID sent by the newer clients.
originFromClient = types.NewEntityID(types.ContainerID, originInfo.FromMsg).String()
originFromClient = types.NewEntityID(types.ContainerID, originInfo.ContainerID).String()
}

if originFromClient != "" {
Expand All @@ -459,18 +459,18 @@ func (t *TaggerClient) EnrichTags(tb tagset.TagsAccumulator, originInfo taggerty
}
default:
// Tag using Local Data
if originInfo.FromUDS != packets.NoOrigin {
if err := t.AccumulateTagsFor(originInfo.FromUDS, cardinality, tb); err != nil {
if originInfo.ContainerIDFromSocket != packets.NoOrigin {
if err := t.AccumulateTagsFor(originInfo.ContainerIDFromSocket, cardinality, tb); err != nil {
t.log.Errorf("%s", err.Error())
}
}

if err := t.AccumulateTagsFor(types.ContainerID.ToUID(originInfo.FromMsg), cardinality, tb); err != nil {
t.log.Tracef("Cannot get tags for entity %s: %s", originInfo.FromMsg, err)
if err := t.AccumulateTagsFor(types.ContainerID.ToUID(originInfo.ContainerID), cardinality, tb); err != nil {
t.log.Tracef("Cannot get tags for entity %s: %s", originInfo.ContainerID, err)
}

if err := t.AccumulateTagsFor(types.KubernetesPodUID.ToUID(originInfo.FromTag), cardinality, tb); err != nil {
t.log.Tracef("Cannot get tags for entity %s: %s", originInfo.FromTag, err)
if err := t.AccumulateTagsFor(types.KubernetesPodUID.ToUID(originInfo.PodUID), cardinality, tb); err != nil {
t.log.Tracef("Cannot get tags for entity %s: %s", originInfo.PodUID, err)
}

// Tag using External Data.
Expand Down Expand Up @@ -503,7 +503,7 @@ func (t *TaggerClient) EnrichTags(tb tagset.TagsAccumulator, originInfo taggerty
// Accumulate tags for pod UID
if parsedExternalData.podUID != "" {
if err := t.AccumulateTagsFor(types.KubernetesPodUID.ToUID(parsedExternalData.podUID), cardinality, tb); err != nil {
t.log.Tracef("Cannot get tags for entity %s: %s", originInfo.FromMsg, err)
t.log.Tracef("Cannot get tags for entity %s: %s", originInfo.ContainerID, err)
}
}

Expand Down
14 changes: 7 additions & 7 deletions comp/core/tagger/taggerimpl/tagger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,25 +58,25 @@ func TestEnrichTags(t *testing.T) {
},
{
name: "with local data (containerID) and low cardinality",
originInfo: taggertypes.OriginInfo{FromMsg: "container", Cardinality: "low"},
originInfo: taggertypes.OriginInfo{ContainerID: "container", Cardinality: "low"},
expectedTags: []string{"container-low"},
cidProvider: &fakeCIDProvider{},
},
{
name: "with local data (containerID) and high cardinality",
originInfo: taggertypes.OriginInfo{FromMsg: "container", Cardinality: "high"},
originInfo: taggertypes.OriginInfo{ContainerID: "container", Cardinality: "high"},
expectedTags: []string{"container-low", "container-orch", "container-high"},
cidProvider: &fakeCIDProvider{},
},
{
name: "with local data (podUID) and low cardinality",
originInfo: taggertypes.OriginInfo{FromTag: "pod", Cardinality: "low"},
originInfo: taggertypes.OriginInfo{PodUID: "pod", Cardinality: "low"},
expectedTags: []string{"pod-low"},
cidProvider: &fakeCIDProvider{},
},
{
name: "with local data (podUID) and high cardinality",
originInfo: taggertypes.OriginInfo{FromTag: "pod", Cardinality: "high"},
originInfo: taggertypes.OriginInfo{PodUID: "pod", Cardinality: "high"},
expectedTags: []string{"pod-low", "pod-orch", "pod-high"},
cidProvider: &fakeCIDProvider{},
},
Expand All @@ -94,7 +94,7 @@ func TestEnrichTagsOrchestrator(t *testing.T) {
defer fakeTagger.ResetTagger()
fakeTagger.SetTags("foo://bar", "fooSource", []string{"lowTag"}, []string{"orchTag"}, nil, nil)
tb := tagset.NewHashingTagsAccumulator()
fakeTagger.EnrichTags(tb, taggertypes.OriginInfo{FromUDS: "foo://bar", Cardinality: "orchestrator"})
fakeTagger.EnrichTags(tb, taggertypes.OriginInfo{ContainerIDFromSocket: "foo://bar", Cardinality: "orchestrator"})
assert.Equal(t, []string{"lowTag", "orchTag"}, tb.Get())
}

Expand All @@ -105,9 +105,9 @@ func TestEnrichTagsOptOut(t *testing.T) {
cfg.SetWithoutSource("dogstatsd_origin_optout_enabled", true)
fakeTagger.SetTags("foo://bar", "fooSource", []string{"lowTag"}, []string{"orchTag"}, nil, nil)
tb := tagset.NewHashingTagsAccumulator()
fakeTagger.EnrichTags(tb, taggertypes.OriginInfo{FromUDS: "foo://originID", FromTag: "pod-uid", FromMsg: "container-id", Cardinality: "none", ProductOrigin: taggertypes.ProductOriginDogStatsD})
fakeTagger.EnrichTags(tb, taggertypes.OriginInfo{ContainerIDFromSocket: "foo://originID", PodUID: "pod-uid", ContainerID: "container-id", Cardinality: "none", ProductOrigin: taggertypes.ProductOriginDogStatsD})
assert.Equal(t, []string{}, tb.Get())
fakeTagger.EnrichTags(tb, taggertypes.OriginInfo{FromUDS: "foo://originID", FromMsg: "container-id", Cardinality: "none", ProductOrigin: taggertypes.ProductOriginDogStatsD})
fakeTagger.EnrichTags(tb, taggertypes.OriginInfo{ContainerIDFromSocket: "foo://originID", ContainerID: "container-id", Cardinality: "none", ProductOrigin: taggertypes.ProductOriginDogStatsD})
assert.Equal(t, []string{}, tb.Get())
}

Expand Down
8 changes: 4 additions & 4 deletions comp/dogstatsd/server/batch.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,15 +94,15 @@ func (s *shardKeyGeneratorPerOrigin) Generate(sample metrics.MetricSample, shard
// We fall back on the generic sharding if:
// - the sample has a custom cardinality
// - we don't have the origin
if sample.OriginInfo.Cardinality != "" || (sample.OriginInfo.FromUDS == "" && sample.OriginInfo.FromTag == "" && sample.OriginInfo.FromMsg == "") {
if sample.OriginInfo.Cardinality != "" || (sample.OriginInfo.ContainerIDFromSocket == "" && sample.OriginInfo.PodUID == "" && sample.OriginInfo.ContainerID == "") {
return s.shardKeyGeneratorBase.Generate(sample, shards)
}

// Otherwise, we isolate the samples based on the origin.
i, j := uint64(0), uint64(0)
i, j = murmur3.SeedStringSum128(i, j, sample.OriginInfo.FromTag)
i, j = murmur3.SeedStringSum128(i, j, sample.OriginInfo.FromMsg)
i, _ = murmur3.SeedStringSum128(i, j, sample.OriginInfo.FromUDS)
i, j = murmur3.SeedStringSum128(i, j, sample.OriginInfo.PodUID)
i, j = murmur3.SeedStringSum128(i, j, sample.OriginInfo.ContainerID)
i, _ = murmur3.SeedStringSum128(i, j, sample.OriginInfo.ContainerIDFromSocket)

return fastrange(ckey.ContextKey(i), shards)
}
Expand Down
10 changes: 5 additions & 5 deletions comp/dogstatsd/server/enrich.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ func extractTagsMetadata(tags []string, originFromUDS string, originFromMsg []by
host := conf.defaultHostname
metricSource := metrics.MetricSourceDogstatsd
origin := taggertypes.OriginInfo{
FromUDS: originFromUDS,
FromMsg: string(originFromMsg),
ExternalData: externalData,
ProductOrigin: taggertypes.ProductOriginDogStatsD,
ContainerIDFromSocket: originFromUDS,
ContainerID: string(originFromMsg),
ExternalData: externalData,
ProductOrigin: taggertypes.ProductOriginDogStatsD,
}

n := 0
Expand All @@ -52,7 +52,7 @@ func extractTagsMetadata(tags []string, originFromUDS string, originFromMsg []by
host = tag[len(hostTagPrefix):]
continue
} else if strings.HasPrefix(tag, entityIDTagPrefix) {
origin.FromTag = tag[len(entityIDTagPrefix):]
origin.PodUID = tag[len(entityIDTagPrefix):]
continue
} else if strings.HasPrefix(tag, CardinalityTagPrefix) {
origin.Cardinality = tag[len(CardinalityTagPrefix):]
Expand Down
Loading

0 comments on commit 4673873

Please sign in to comment.