Skip to content

Commit c17708e

Browse files
authored
Merge branch 'master' into conti/remove-async-storage-graphql
2 parents 51a2c6d + 2244cf0 commit c17708e

File tree

28 files changed

+715
-134
lines changed

28 files changed

+715
-134
lines changed

.github/dependabot.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ updates:
3737
- dependency-name: "lru-cache"
3838
# 11.0.0 onwards only supports Node.js 20 and above
3939
update-types: ["version-update:semver-major"]
40+
- dependency-name: "limiter"
41+
# 2.0.0 onwards breaks our tests. 3.0.0 works but it requires Node.js v16.
42+
# That breaks cypress in our v5 release line. Update when v5 is EOL.
43+
# Reverting this commit should suffice.
44+
update-types: ["version-update:semver-major"]
4045
groups:
4146
dev-minor-and-patch-dependencies:
4247
dependency-type: "development"

.github/workflows/apm-integrations.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,7 @@ jobs:
754754
version:
755755
- 18
756756
- latest
757-
range: ['>=10.2.0 <11', '>=11.0.0 <13', '11.1.4', '>=13.0.0 <14', '13.2.0', '>=14.0.0 <=14.2.6', '>=14.2.7 <15', '>=15.0.0']
757+
range: ['>=10.2.0 <11', '>=11.0.0 <13', '11.1.4', '>=13.0.0 <14', '13.2.0', '>=14.0.0 <=14.2.6', '>=14.2.7 <15', '>=15.0.0 <15.4.1']
758758
include:
759759
- range: '>=10.2.0 <11'
760760
range_clean: gte.10.2.0.and.lt.11
@@ -770,7 +770,7 @@ jobs:
770770
range_clean: gte.14.0.0.and.lte.14.2.6
771771
- range: '>=14.2.7 <15'
772772
range_clean: gte.14.2.7.and.lt.15
773-
- range: '>=15.0.0'
773+
- range: '>=15.0.0 <15.4.1'
774774
range_clean: gte.15.0.0
775775
runs-on: ubuntu-latest
776776
env:

.github/workflows/appsec.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ jobs:
216216
version:
217217
- oldest
218218
- latest
219-
range: ['>=10.2.0 <11', '>=11.0.0 <13', '11.1.4', '>=13.0.0 <14', '13.2.0', '>=14.0.0 <=14.2.6', '>=14.2.7 <15', '>=15.0.0']
219+
range: ['>=10.2.0 <11', '>=11.0.0 <13', '11.1.4', '>=13.0.0 <14', '13.2.0', '>=14.0.0 <=14.2.6', '>=14.2.7 <15', '>=15.0.0 <15.4.1']
220220
include:
221221
- range: '>=10.2.0 <11'
222222
range_clean: gte.10.2.0.and.lt.11
@@ -232,7 +232,7 @@ jobs:
232232
range_clean: gte.14.0.0.and.lte.14.2.6
233233
- range: '>=14.2.7 <15'
234234
range_clean: gte.14.2.7.and.lt.15
235-
- range: '>=15.0.0'
235+
- range: '>=15.0.0 <15.4.1'
236236
range_clean: gte.15.0.0
237237
runs-on: ubuntu-latest
238238
env:

.gitlab/benchmarks.yml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@ variables:
2323
paths:
2424
- platform/artifacts/
2525
expire_in: 3 months
26-
variables:
27-
# Gitlab and BP specific env vars. Do not modify.
28-
KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: dd-trace-js
29-
FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: "true"
3026

3127
benchmarks-pr-comment:
3228
stage: benchmarks-pr-comment
@@ -38,9 +34,6 @@ benchmarks-pr-comment:
3834
- cd platform && (git init && git remote add origin https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform && git pull origin dd-trace-js)
3935
- bp-runner bp-runner.pr-comment.yml --debug
4036
allow_failure: true
41-
variables:
42-
# Gitlab and BP specific env vars. Do not modify.
43-
KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: dd-trace-js
4437

4538
check-big-regressions:
4639
stage: benchmarks-pr-comment
@@ -51,9 +44,6 @@ check-big-regressions:
5144
script:
5245
- cd platform && (git init && git remote add origin https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform && git pull origin dd-trace-js)
5346
- bp-runner bp-runner.fail-on-regression.yml --debug
54-
variables:
55-
# Gitlab and BP specific env vars. Do not modify.
56-
KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: dd-trace-js
5747

5848
benchmark:
5949
extends: .benchmarks

.gitlab/macrobenchmarks.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
- platform/artifacts/
2020
expire_in: 3 months
2121
variables:
22-
FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: "true"
23-
2422
K6_OPTIONS_WARMUP_RATE: 500
2523
K6_OPTIONS_WARMUP_DURATION: 1m
2624
K6_OPTIONS_WARMUP_GRACEFUL_STOP: 10s

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
"jest-docblock": "^29.7.0",
132132
"jsonpath-plus": "^10.3.0",
133133
"koalas": "^1.0.2",
134-
"limiter": "^3.0.0",
134+
"limiter": "^1.1.5",
135135
"lodash.sortby": "^4.7.0",
136136
"lru-cache": "^10.4.3",
137137
"module-details-from-path": "^1.0.4",

packages/datadog-instrumentations/src/langchain.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,27 @@ for (const extension of extensions) {
5353
return exports
5454
})
5555

56+
addHook({ name: '@langchain/core', file: `dist/tools/index.${extension}`, versions: ['>=0.1'] }, exports => {
57+
if (extension === 'cjs') {
58+
wrap(exports.StructuredTool.prototype, 'invoke', 'orchestrion:@langchain/core:Tool_invoke')
59+
}
60+
return exports
61+
})
62+
63+
addHook({ name: '@langchain/core', file: `dist/vectorstores.${extension}`, versions: ['>=0.1'] }, exports => {
64+
if (extension === 'cjs') {
65+
wrap(
66+
exports.VectorStore.prototype, 'similaritySearch', 'orchestrion:@langchain/core:VectorStore_similaritySearch'
67+
)
68+
wrap(
69+
exports.VectorStore.prototype, 'similaritySearchWithScore',
70+
'orchestrion:@langchain/core:VectorStore_similaritySearchWithScore'
71+
)
72+
}
73+
74+
return exports
75+
})
76+
5677
addHook({ name: '@langchain/core', file: `dist/embeddings.${extension}`, versions: ['>=0.1'] }, exports => {
5778
if (extension === 'cjs') {
5879
shimmer.wrap(exports, 'Embeddings', Embeddings => {

packages/datadog-instrumentations/src/next.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ function finish (ctx, result, err) {
197197
// however, it is not provided as a class function or exported property
198198
addHook({
199199
name: 'next',
200-
versions: ['>=13.3.0'],
200+
versions: ['>=13.3.0 <15.4.1'],
201201
file: 'dist/server/web/spec-extension/adapters/next-request.js'
202202
}, NextRequestAdapter => {
203203
shimmer.wrap(NextRequestAdapter.NextRequestAdapter, 'fromNodeNextRequest', fromNodeNextRequest => {
@@ -212,7 +212,7 @@ addHook({
212212

213213
addHook({
214214
name: 'next',
215-
versions: ['>=11.1'],
215+
versions: ['>=11.1 <15.4.1'],
216216
file: 'dist/server/serve-static.js'
217217
}, serveStatic => shimmer.wrap(serveStatic, 'serveStatic', wrapServeStatic, { replaceGetter: true }))
218218

@@ -222,7 +222,7 @@ addHook({
222222
file: 'dist/next-server/server/serve-static.js'
223223
}, serveStatic => shimmer.wrap(serveStatic, 'serveStatic', wrapServeStatic, { replaceGetter: true }))
224224

225-
addHook({ name: 'next', versions: ['>=11.1'], file: 'dist/server/next-server.js' }, nextServer => {
225+
addHook({ name: 'next', versions: ['>=11.1 <15.4.1'], file: 'dist/server/next-server.js' }, nextServer => {
226226
const Server = nextServer.default
227227

228228
shimmer.wrap(Server.prototype, 'handleRequest', wrapHandleRequest)
@@ -239,7 +239,7 @@ addHook({ name: 'next', versions: ['>=11.1'], file: 'dist/server/next-server.js'
239239
})
240240

241241
// `handleApiRequest` changes parameters/implementation at 13.2.0
242-
addHook({ name: 'next', versions: ['>=13.2'], file: 'dist/server/next-server.js' }, nextServer => {
242+
addHook({ name: 'next', versions: ['>=13.2 <15.4.1'], file: 'dist/server/next-server.js' }, nextServer => {
243243
const Server = nextServer.default
244244
shimmer.wrap(Server.prototype, 'handleApiRequest', wrapHandleApiRequestWithMatch)
245245
return nextServer
@@ -277,7 +277,7 @@ addHook({
277277

278278
addHook({
279279
name: 'next',
280-
versions: ['>=13'],
280+
versions: ['>=13 <15.4.1'],
281281
file: 'dist/server/web/spec-extension/request.js'
282282
}, request => {
283283
shimmer.wrap(request.NextRequest.prototype, 'nextUrl', function (originalGet) {

packages/datadog-instrumentations/src/orchestrion-config/index.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,34 @@ instrumentations:
5353
class: Embeddings
5454
operator: traceSync
5555
channel_name: "Embeddings_constructor"
56+
- module_name: "@langchain/core"
57+
version_range: ">=0.1.0"
58+
file_path: dist/tools/index.js
59+
function_query:
60+
name: invoke
61+
type: method
62+
kind: async
63+
class: StructuredTool
64+
operator: tracePromise
65+
channel_name: "Tool_invoke"
66+
- module_name: "@langchain/core"
67+
version_range: ">=0.1.0"
68+
file_path: dist/vectorstores.js
69+
function_query:
70+
name: similaritySearch
71+
type: method
72+
kind: async
73+
class: VectorStore
74+
operator: tracePromise
75+
channel_name: "VectorStore_similaritySearch"
76+
- module_name: "@langchain/core"
77+
version_range: ">=0.1.0"
78+
file_path: dist/vectorstores.js
79+
function_query:
80+
name: similaritySearchWithScore
81+
type: method
82+
kind: async
83+
class: VectorStore
84+
operator: tracePromise
85+
channel_name: "VectorStore_similaritySearchWithScore"
5686
`

packages/datadog-plugin-aws-sdk/test/sqs.spec.js

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,22 @@ describe('Plugin', () => {
176176
})
177177
})
178178

179-
it('should propagate the tracing context from the producer to the consumer in batch operations', (done) => {
179+
it('should propagate the tracing context from the producer to the consumer in batch operations', async () => {
180180
let parentId
181181
let traceId
182182

183-
agent.assertSomeTraces(traces => {
183+
const sendPromise = new Promise((resolve, reject) => {
184+
sqs.sendMessageBatch({
185+
Entries: [
186+
{ Id: '1', MessageBody: 'test batch propagation 1' },
187+
{ Id: '2', MessageBody: 'test batch propagation 2' },
188+
{ Id: '3', MessageBody: 'test batch propagation 3' }
189+
],
190+
QueueUrl
191+
}, (err) => err ? reject(err) : resolve())
192+
})
193+
194+
const parentPromise = agent.assertSomeTraces(traces => {
184195
const span = traces[0][0]
185196

186197
expect(span.resource.startsWith('sendMessageBatch')).to.equal(true)
@@ -192,56 +203,45 @@ describe('Plugin', () => {
192203
traceId = span.trace_id.toString()
193204
})
194205

195-
let batchChildSpans = 0
196-
agent.assertSomeTraces(traces => {
197-
const span = traces[0][0]
206+
await Promise.all([sendPromise, parentPromise])
198207

199-
expect(parentId).to.be.a('string')
200-
expect(span.parent_id.toString()).to.equal(parentId)
201-
expect(span.trace_id.toString()).to.equal(traceId)
202-
batchChildSpans += 1
203-
expect(batchChildSpans).to.equal(3)
204-
}, { timeoutMs: 2000 }).then(done, done)
208+
async function receiveAndAssertMessage () {
209+
const childPromise = agent.assertSomeTraces(traces => {
210+
const span = traces[0][0]
205211

206-
sqs.sendMessageBatch(
207-
{
208-
Entries: [
209-
{
210-
Id: '1',
211-
MessageBody: 'test batch propagation 1'
212-
},
213-
{
214-
Id: '2',
215-
MessageBody: 'test batch propagation 2'
216-
},
217-
{
218-
Id: '3',
219-
MessageBody: 'test batch propagation 3'
220-
}
221-
],
222-
QueueUrl
223-
}, (err) => {
224-
if (err) return done(err)
212+
expect(parentId).to.be.a('string')
213+
expect(span.parent_id.toString()).to.equal(parentId)
214+
expect(span.trace_id.toString()).to.equal(traceId)
215+
})
225216

226-
function receiveMessage () {
227-
sqs.receiveMessage({
228-
QueueUrl,
229-
MaxNumberOfMessages: 1
230-
}, (err, data) => {
231-
if (err) return done(err)
217+
const receiveMessage = new Promise((resolve, reject) => {
218+
sqs.receiveMessage({
219+
QueueUrl,
220+
MaxNumberOfMessages: 1
221+
}, (err, data) => {
222+
if (err) return reject(err)
232223

224+
try {
233225
for (const message in data.Messages) {
234226
const recordData = data.Messages[message].MessageAttributes
235227
expect(recordData).to.have.property('_datadog')
236228
const traceContext = JSON.parse(recordData._datadog.StringValue)
237229
expect(traceContext).to.have.property('x-datadog-trace-id')
238230
}
239-
})
240-
}
241-
receiveMessage()
242-
receiveMessage()
243-
receiveMessage()
231+
232+
resolve()
233+
} catch (e) {
234+
reject(e)
235+
}
236+
})
244237
})
238+
239+
await Promise.all([childPromise, receiveMessage])
240+
}
241+
242+
await receiveAndAssertMessage()
243+
await receiveAndAssertMessage()
244+
await receiveAndAssertMessage()
245245
})
246246

247247
it('should run the consumer in the context of its span', (done) => {

0 commit comments

Comments
 (0)