WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 5b473cd

Browse files
committed
update config file format and clean up code
1 parent d6c4429 commit 5b473cd

File tree

8 files changed

+123
-153
lines changed

8 files changed

+123
-153
lines changed

packages/datadog-instrumentations/src/helpers/instrument.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ exports.getHooks = function getHooks (names) {
2727
names = [names].flat()
2828

2929
return rewriterInstrumentations
30-
.filter(inst => names.includes(inst.moduleName))
31-
.map(inst => ({ name: inst.moduleName, versions: [inst.versionRange], file: inst.filePath }))
30+
.map(inst => inst.module)
31+
.filter(({ name }) => names.includes(name))
32+
.map(({ name, versionRange, filePath }) => ({ name, versions: [versionRange], file: filePath }))
3233
}
3334

3435
/**

packages/datadog-instrumentations/src/helpers/rewriter/index.js

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ function rewrite (content, filename, format) {
3535
filename = filename.replace('file://', '')
3636

3737
for (const inst of instrumentations) {
38-
const { astQuery, moduleName, versionRange, filePath, operator, functionQuery } = inst
38+
const { astQuery, functionQuery = {}, module: { name, versionRange, filePath } } = inst
39+
const { kind } = functionQuery
40+
const operator = kind === 'Async' ? 'tracePromise' : 'traceSync' // TODO: traceCallback
3941
const transform = transforms[operator]
4042

41-
if (disabled.has(moduleName)) continue
42-
if (!filename.endsWith(`${moduleName}/${filePath}`)) continue
43+
if (disabled.has(name)) continue
44+
if (!filename.endsWith(`${name}/${filePath}`)) continue
4345
if (!transform) continue
4446
if (!satisfies(filename, filePath, versionRange)) continue
4547

@@ -51,15 +53,15 @@ function rewrite (content, filename, format) {
5153

5254
const query = astQuery || fromFunctionQuery(functionQuery)
5355
const selector = esquery.parse(query)
54-
const state = { ...inst, format }
56+
const state = { ...inst, format, operator }
5557

5658
esquery.traverse(ast, selector, (...args) => transform(state, ...args))
5759
}
5860

5961
if (ast) {
6062
if (!enableSourceMaps || SourceMapGenerator) return generate(ast)
6163

62-
// TODO: Can we use the same version of `source-maps` that DI uses?
64+
// TODO: Can we use the same version of `source-map` that DI uses?
6365
SourceMapGenerator ??= require('@datadog/source-map').SourceMapGenerator
6466

6567
const sourceMap = new SourceMapGenerator({ file: filename })
@@ -100,9 +102,7 @@ function satisfies (filename, filePath, versions) {
100102
// TODO: Support index
101103
function fromFunctionQuery (functionQuery) {
102104
const { methodName, functionName, expressionName, className } = functionQuery
103-
const kind = functionQuery.kind?.toLowerCase()
104-
105-
let queries = []
105+
const queries = []
106106

107107
if (className) {
108108
queries.push(
@@ -126,10 +126,6 @@ function fromFunctionQuery (functionQuery) {
126126
)
127127
}
128128

129-
if (kind) {
130-
queries = queries.map(q => q.replaceAll('[async]', `[async="${kind === 'async' ? 'true' : 'false'}"]`))
131-
}
132-
133129
return queries.join(', ')
134130
}
135131

Lines changed: 109 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,212 +1,235 @@
11
[
22
{
3-
"moduleName": "@langchain/core",
4-
"versionRange": ">=0.1",
5-
"filePath": "dist/runnables/base.cjs",
3+
"module": {
4+
"name": "@langchain/core",
5+
"versionRange": ">=0.1",
6+
"filePath": "dist/runnables/base.cjs"
7+
},
68
"functionQuery": {
79
"methodName": "invoke",
8-
"kind": "async",
10+
"kind": "Async",
911
"className": "RunnableSequence"
1012
},
11-
"operator": "tracePromise",
1213
"channelName": "RunnableSequence_invoke"
1314
},
1415
{
15-
"moduleName": "@langchain/core",
16-
"versionRange": ">=0.1",
17-
"filePath": "dist/runnables/base.cjs",
16+
"module": {
17+
"name": "@langchain/core",
18+
"versionRange": ">=0.1",
19+
"filePath": "dist/runnables/base.cjs"
20+
},
1821
"functionQuery": {
1922
"methodName": "batch",
20-
"kind": "async",
23+
"kind": "Async",
2124
"className": "RunnableSequence"
2225
},
23-
"operator": "tracePromise",
2426
"channelName": "RunnableSequence_batch"
2527
},
2628
{
27-
"moduleName": "@langchain/core",
28-
"versionRange": ">=0.1",
29-
"filePath": "dist/language_models/chat_models.cjs",
29+
"module": {
30+
"name": "@langchain/core",
31+
"versionRange": ">=0.1",
32+
"filePath": "dist/language_models/chat_models.cjs"
33+
},
3034
"functionQuery": {
3135
"methodName": "generate",
32-
"kind": "async",
36+
"kind": "Async",
3337
"className": "BaseChatModel"
3438
},
35-
"operator": "tracePromise",
3639
"channelName": "BaseChatModel_generate"
3740
},
3841
{
39-
"moduleName": "@langchain/core",
40-
"versionRange": ">=0.1",
41-
"filePath": "dist/language_models/llms.cjs",
42+
"module": {
43+
"name": "@langchain/core",
44+
"versionRange": ">=0.1",
45+
"filePath": "dist/language_models/llms.cjs"
46+
},
4247
"functionQuery": {
4348
"methodName": "generate",
44-
"kind": "async"
49+
"kind": "Async"
4550
},
46-
"operator": "tracePromise",
4751
"channelName": "BaseLLM_generate"
4852
},
4953
{
50-
"moduleName": "@langchain/core",
51-
"versionRange": ">=0.1",
52-
"filePath": "dist/embeddings.cjs",
54+
"module": {
55+
"name": "@langchain/core",
56+
"versionRange": ">=0.1",
57+
"filePath": "dist/embeddings.cjs"
58+
},
5359
"functionQuery": {
5460
"methodName": "embedQuery",
61+
"kind": "Async",
5562
"className": "Embeddings"
5663
},
57-
"operator": "tracePromise",
5864
"channelName": "Embeddings_embedQuery"
5965
},
6066
{
61-
"moduleName": "@langchain/core",
62-
"versionRange": ">=0.1",
63-
"filePath": "dist/embeddings.cjs",
67+
"module": {
68+
"name": "@langchain/core",
69+
"versionRange": ">=0.1",
70+
"filePath": "dist/embeddings.cjs"
71+
},
6472
"functionQuery": {
6573
"methodName": "embedDocuments",
74+
"kind": "Async",
6675
"className": "Embeddings"
6776
},
68-
"operator": "tracePromise",
6977
"channelName": "Embeddings_embedDocuments"
7078
},
7179
{
72-
"moduleName": "@langchain/core",
73-
"versionRange": ">=0.1",
74-
"filePath": "dist/tools/index.cjs",
80+
"module": {
81+
"name": "@langchain/core",
82+
"versionRange": ">=0.1",
83+
"filePath": "dist/tools/index.cjs"
84+
},
7585
"functionQuery": {
7686
"methodName": "invoke",
77-
"kind": "async",
87+
"kind": "Async",
7888
"className": "StructuredTool"
7989
},
80-
"operator": "tracePromise",
8190
"channelName": "Tool_invoke"
8291
},
8392
{
84-
"moduleName": "@langchain/core",
85-
"versionRange": ">=0.1",
86-
"filePath": "dist/vectorstores.cjs",
93+
"module": {
94+
"name": "@langchain/core",
95+
"versionRange": ">=0.1",
96+
"filePath": "dist/vectorstores.cjs"
97+
},
8798
"functionQuery": {
8899
"methodName": "similaritySearch",
89-
"kind": "async",
100+
"kind": "Async",
90101
"className": "VectorStore"
91102
},
92-
"operator": "tracePromise",
93103
"channelName": "VectorStore_similaritySearch"
94104
},
95105
{
96-
"moduleName": "@langchain/core",
97-
"versionRange": ">=0.1",
98-
"filePath": "dist/vectorstores.cjs",
106+
"module": {
107+
"name": "@langchain/core",
108+
"versionRange": ">=0.1",
109+
"filePath": "dist/vectorstores.cjs"
110+
},
99111
"functionQuery": {
100112
"methodName": "similaritySearchWithScore",
101-
"kind": "async",
113+
"kind": "Async",
102114
"className": "VectorStore"
103115
},
104-
"operator": "tracePromise",
105116
"channelName": "VectorStore_similaritySearchWithScore"
106117
},
107118
{
108-
"moduleName": "@langchain/core",
109-
"versionRange": ">=0.1",
110-
"filePath": "dist/runnables/base.js",
119+
"module": {
120+
"name": "@langchain/core",
121+
"versionRange": ">=0.1",
122+
"filePath": "dist/runnables/base.js"
123+
},
111124
"functionQuery": {
112125
"methodName": "invoke",
113-
"kind": "async",
126+
"kind": "Async",
114127
"className": "RunnableSequence"
115128
},
116-
"operator": "tracePromise",
117129
"channelName": "RunnableSequence_invoke"
118130
},
119131
{
120-
"moduleName": "@langchain/core",
121-
"versionRange": ">=0.1",
122-
"filePath": "dist/runnables/base.js",
132+
"module": {
133+
"name": "@langchain/core",
134+
"versionRange": ">=0.1",
135+
"filePath": "dist/runnables/base.js"
136+
},
123137
"functionQuery": {
124138
"methodName": "batch",
125-
"kind": "async",
139+
"kind": "Async",
126140
"className": "RunnableSequence"
127141
},
128-
"operator": "tracePromise",
129142
"channelName": "RunnableSequence_batch"
130143
},
131144
{
132-
"moduleName": "@langchain/core",
133-
"versionRange": ">=0.1",
134-
"filePath": "dist/language_models/chat_models.js",
145+
"module": {
146+
"name": "@langchain/core",
147+
"versionRange": ">=0.1",
148+
"filePath": "dist/language_models/chat_models.js"
149+
},
135150
"functionQuery": {
136151
"methodName": "generate",
137-
"kind": "async",
152+
"kind": "Async",
138153
"className": "BaseChatModel"
139154
},
140-
"operator": "tracePromise",
141155
"channelName": "BaseChatModel_generate"
142156
},
143157
{
144-
"moduleName": "@langchain/core",
145-
"versionRange": ">=0.1",
146-
"filePath": "dist/language_models/llms.js",
158+
"module": {
159+
"name": "@langchain/core",
160+
"versionRange": ">=0.1",
161+
"filePath": "dist/language_models/llms.js"
162+
},
147163
"functionQuery": {
148164
"methodName": "generate",
149-
"kind": "async"
165+
"kind": "Async"
150166
},
151-
"operator": "tracePromise",
152167
"channelName": "BaseLLM_generate"
153168
},
154169
{
155-
"moduleName": "@langchain/core",
156-
"versionRange": ">=0.1",
157-
"filePath": "dist/embeddings.js",
170+
"module": {
171+
"name": "@langchain/core",
172+
"versionRange": ">=0.1",
173+
"filePath": "dist/embeddings.js"
174+
},
158175
"functionQuery": {
159176
"methodName": "embedQuery",
177+
"kind": "Async",
160178
"className": "Embeddings"
161179
},
162-
"operator": "tracePromise",
163180
"channelName": "Embeddings_embedQuery"
164181
},
165182
{
166-
"moduleName": "@langchain/core",
167-
"versionRange": ">=0.1",
168-
"filePath": "dist/embeddings.js",
183+
"module": {
184+
"name": "@langchain/core",
185+
"versionRange": ">=0.1",
186+
"filePath": "dist/embeddings.js"
187+
},
169188
"functionQuery": {
170189
"methodName": "embedDocuments",
190+
"kind": "Async",
171191
"className": "Embeddings"
172192
},
173-
"operator": "tracePromise",
174193
"channelName": "Embeddings_embedDocuments"
175194
},
176195
{
177-
"moduleName": "@langchain/core",
178-
"versionRange": ">=0.1",
179-
"filePath": "dist/tools/index.js",
196+
"module": {
197+
"name": "@langchain/core",
198+
"versionRange": ">=0.1",
199+
"filePath": "dist/tools/index.js"
200+
},
180201
"functionQuery": {
181202
"methodName": "invoke",
182-
"kind": "async",
203+
"kind": "Async",
183204
"className": "StructuredTool"
184205
},
185-
"operator": "tracePromise",
186206
"channelName": "Tool_invoke"
187207
},
188208
{
189-
"moduleName": "@langchain/core",
190-
"versionRange": ">=0.1",
191-
"filePath": "dist/vectorstores.js",
209+
"module": {
210+
"name": "@langchain/core",
211+
"versionRange": ">=0.1",
212+
"filePath": "dist/vectorstores.js"
213+
},
192214
"functionQuery": {
193215
"methodName": "similaritySearch",
194-
"kind": "async",
216+
"kind": "Async",
195217
"className": "VectorStore"
196218
},
197-
"operator": "tracePromise",
198219
"channelName": "VectorStore_similaritySearch"
199220
},
200221
{
201-
"moduleName": "@langchain/core",
202-
"versionRange": ">=0.1",
203-
"filePath": "dist/vectorstores.js",
222+
223+
"module": {
224+
"name": "@langchain/core",
225+
"versionRange": ">=0.1",
226+
"filePath": "dist/vectorstores.js"
227+
},
204228
"functionQuery": {
205229
"methodName": "similaritySearchWithScore",
206-
"kind": "async",
230+
"kind": "Async",
207231
"className": "VectorStore"
208232
},
209-
"operator": "tracePromise",
210233
"channelName": "VectorStore_similaritySearchWithScore"
211234
}
212235
]

0 commit comments

Comments
 (0)