Skip to content

Commit 872bac8

Browse files
authoredFeb 12, 2025
[MLOB-2096] feat(llmobs): metadata and metrics annotations update instead of override (#5243)
* update don't override * remove unecessary changes
1 parent b8130f2 commit 872bac8

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed
 

‎packages/dd-trace/src/llmobs/tagger.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,12 @@ class LLMObsTagger {
100100
}
101101

102102
tagMetadata (span, metadata) {
103-
this._setTag(span, METADATA, metadata)
103+
const existingMetadata = registry.get(span)?.[METADATA]
104+
if (existingMetadata) {
105+
Object.assign(existingMetadata, metadata)
106+
} else {
107+
this._setTag(span, METADATA, metadata)
108+
}
104109
}
105110

106111
tagMetrics (span, metrics) {
@@ -128,7 +133,12 @@ class LLMObsTagger {
128133
}
129134
}
130135

131-
this._setTag(span, METRICS, filterdMetrics)
136+
const existingMetrics = registry.get(span)?.[METRICS]
137+
if (existingMetrics) {
138+
Object.assign(existingMetrics, filterdMetrics)
139+
} else {
140+
this._setTag(span, METRICS, filterdMetrics)
141+
}
132142
}
133143

134144
tagSpanTags (span, tags) {

‎packages/dd-trace/test/llmobs/tagger.spec.js

+16
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,14 @@ describe('tagger', () => {
168168
'_ml_obs.meta.metadata': { a: 'foo', b: 'bar' }
169169
})
170170
})
171+
172+
it('updates instead of overriding', () => {
173+
Tagger.tagMap.set(span, { '_ml_obs.meta.metadata': { a: 'foo' } })
174+
tagger.tagMetadata(span, { b: 'bar' })
175+
expect(Tagger.tagMap.get(span)).to.deep.equal({
176+
'_ml_obs.meta.metadata': { a: 'foo', b: 'bar' }
177+
})
178+
})
171179
})
172180

173181
describe('tagMetrics', () => {
@@ -202,6 +210,14 @@ describe('tagger', () => {
202210
tagger._register(span)
203211
expect(() => tagger.tagMetrics(span, metrics)).to.throw()
204212
})
213+
214+
it('updates instead of overriding', () => {
215+
Tagger.tagMap.set(span, { '_ml_obs.metrics': { a: 1 } })
216+
tagger.tagMetrics(span, { b: 2 })
217+
expect(Tagger.tagMap.get(span)).to.deep.equal({
218+
'_ml_obs.metrics': { a: 1, b: 2 }
219+
})
220+
})
205221
})
206222

207223
describe('tagSpanTags', () => {

0 commit comments

Comments
 (0)