@mastra/server 0.0.0-break-rename-vnext-legacy-20251002212351 → 0.0.0-bundle-recursion-20251030002519
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +341 -4
- package/dist/{chunk-SZUAJANR.js → chunk-2P4VRXBT.js} +90 -108
- package/dist/chunk-2P4VRXBT.js.map +1 -0
- package/dist/{chunk-PPYGWINI.cjs → chunk-2PLXW4ZX.cjs} +74 -74
- package/dist/{chunk-PPYGWINI.cjs.map → chunk-2PLXW4ZX.cjs.map} +1 -1
- package/dist/{chunk-52UP7DFT.cjs → chunk-2S4IMB6E.cjs} +4 -4
- package/dist/{chunk-52UP7DFT.cjs.map → chunk-2S4IMB6E.cjs.map} +1 -1
- package/dist/{chunk-HRG5HN4U.js → chunk-3PXWQX3J.js} +189 -130
- package/dist/chunk-3PXWQX3J.js.map +1 -0
- package/dist/{chunk-NLWACBE7.cjs → chunk-3SNGNFUJ.cjs} +4 -4
- package/dist/{chunk-NLWACBE7.cjs.map → chunk-3SNGNFUJ.cjs.map} +1 -1
- package/dist/{chunk-AX5SCBJL.js → chunk-4AKQUEI2.js} +86 -48
- package/dist/chunk-4AKQUEI2.js.map +1 -0
- package/dist/{chunk-FYZHFAFB.cjs → chunk-4APSL4XM.cjs} +191 -130
- package/dist/chunk-4APSL4XM.cjs.map +1 -0
- package/dist/{chunk-A3AL7EWJ.js → chunk-ABRFV4XP.js} +3 -3
- package/dist/{chunk-A3AL7EWJ.js.map → chunk-ABRFV4XP.js.map} +1 -1
- package/dist/{chunk-YWOK4F5A.js → chunk-AQCEVRZV.js} +3 -4
- package/dist/chunk-AQCEVRZV.js.map +1 -0
- package/dist/{chunk-XJOYGRTN.js → chunk-AW5BU3RQ.js} +7 -4
- package/dist/chunk-AW5BU3RQ.js.map +1 -0
- package/dist/{chunk-WUJLVNLU.js → chunk-BATEJLED.js} +3 -3
- package/dist/{chunk-WUJLVNLU.js.map → chunk-BATEJLED.js.map} +1 -1
- package/dist/{chunk-T3TIA3O6.cjs → chunk-EP3JQDPD.cjs} +4 -4
- package/dist/{chunk-T3TIA3O6.cjs.map → chunk-EP3JQDPD.cjs.map} +1 -1
- package/dist/{chunk-TTHEEIZ3.js → chunk-EVI5NLZG.js} +4 -4
- package/dist/{chunk-TTHEEIZ3.js.map → chunk-EVI5NLZG.js.map} +1 -1
- package/dist/{chunk-QDPOVUS4.js → chunk-FTBY7JHX.js} +2948 -1475
- package/dist/chunk-FTBY7JHX.js.map +1 -0
- package/dist/{chunk-LHGBI76Y.cjs → chunk-GDUKGVFI.cjs} +91 -109
- package/dist/chunk-GDUKGVFI.cjs.map +1 -0
- package/dist/{chunk-LF2ZLOFP.js → chunk-GQRJOUV7.js} +64 -34
- package/dist/chunk-GQRJOUV7.js.map +1 -0
- package/dist/{chunk-JOXMWFM6.cjs → chunk-HQYKLJHG.cjs} +2837 -1359
- package/dist/chunk-HQYKLJHG.cjs.map +1 -0
- package/dist/{chunk-VY4ENABS.cjs → chunk-KIHM7IDM.cjs} +13 -14
- package/dist/chunk-KIHM7IDM.cjs.map +1 -0
- package/dist/{chunk-SIGXR3JT.cjs → chunk-LPM6BBAX.cjs} +5 -5
- package/dist/{chunk-SIGXR3JT.cjs.map → chunk-LPM6BBAX.cjs.map} +1 -1
- package/dist/{chunk-GU4EWMZB.cjs → chunk-LZKJT7QP.cjs} +64 -34
- package/dist/chunk-LZKJT7QP.cjs.map +1 -0
- package/dist/{chunk-WHN4VX55.js → chunk-MYR4PVGN.js} +3 -3
- package/dist/{chunk-WHN4VX55.js.map → chunk-MYR4PVGN.js.map} +1 -1
- package/dist/{chunk-EMMSS5I5.cjs → chunk-O7I5CWRX.cjs} +10 -3
- package/dist/{chunk-EMMSS5I5.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
- package/dist/{chunk-G3PMV62Z.js → chunk-PR4QN5HX.js} +10 -4
- package/dist/{chunk-G3PMV62Z.js.map → chunk-PR4QN5HX.js.map} +1 -1
- package/dist/{chunk-JRDEOHAJ.js → chunk-QQXMIP6C.js} +3 -3
- package/dist/{chunk-JRDEOHAJ.js.map → chunk-QQXMIP6C.js.map} +1 -1
- package/dist/chunk-QU6N55W6.cjs +256 -0
- package/dist/chunk-QU6N55W6.cjs.map +1 -0
- package/dist/{chunk-KM7EJKXV.js → chunk-RC5UZM7H.js} +4 -4
- package/dist/{chunk-KM7EJKXV.js.map → chunk-RC5UZM7H.js.map} +1 -1
- package/dist/{chunk-NG5IVLEZ.js → chunk-RQK4FQUD.js} +3 -3
- package/dist/{chunk-NG5IVLEZ.js.map → chunk-RQK4FQUD.js.map} +1 -1
- package/dist/chunk-SHWNNZBL.js +254 -0
- package/dist/chunk-SHWNNZBL.js.map +1 -0
- package/dist/{chunk-BKCWZLEL.cjs → chunk-SPRRK3P7.cjs} +8 -5
- package/dist/chunk-SPRRK3P7.cjs.map +1 -0
- package/dist/{chunk-6IJWRJZE.js → chunk-THWIEXQQ.js} +4 -4
- package/dist/{chunk-6IJWRJZE.js.map → chunk-THWIEXQQ.js.map} +1 -1
- package/dist/chunk-TOCYBDP2.js +46 -0
- package/dist/chunk-TOCYBDP2.js.map +1 -0
- package/dist/{chunk-OPI3FZYH.cjs → chunk-X3G3KC47.cjs} +6 -6
- package/dist/{chunk-OPI3FZYH.cjs.map → chunk-X3G3KC47.cjs.map} +1 -1
- package/dist/chunk-X6C7BUWN.cjs +48 -0
- package/dist/chunk-X6C7BUWN.cjs.map +1 -0
- package/dist/{chunk-SPLSYTYW.cjs → chunk-XN74I6VW.cjs} +4 -4
- package/dist/{chunk-SPLSYTYW.cjs.map → chunk-XN74I6VW.cjs.map} +1 -1
- package/dist/{chunk-4HS3I2TI.cjs → chunk-XUOE3PBE.cjs} +91 -51
- package/dist/chunk-XUOE3PBE.cjs.map +1 -0
- package/dist/{chunk-KNGXRN26.cjs → chunk-YAYIYIMS.cjs} +11 -11
- package/dist/{chunk-KNGXRN26.cjs.map → chunk-YAYIYIMS.cjs.map} +1 -1
- package/dist/{chunk-LJFAAEU7.cjs → chunk-YYXITBYY.cjs} +11 -11
- package/dist/{chunk-LJFAAEU7.cjs.map → chunk-YYXITBYY.cjs.map} +1 -1
- package/dist/{chunk-6GMFZ5LK.js → chunk-ZULZ2752.js} +3 -3
- package/dist/{chunk-6GMFZ5LK.js.map → chunk-ZULZ2752.js.map} +1 -1
- package/dist/{dist-R3L5J3LL.cjs → dist-4MVGNSRL.cjs} +20 -20
- package/dist/{dist-R3L5J3LL.cjs.map → dist-4MVGNSRL.cjs.map} +1 -1
- package/dist/{dist-OC4J73ML.cjs → dist-FZYCV3VB.cjs} +26 -26
- package/dist/{dist-OC4J73ML.cjs.map → dist-FZYCV3VB.cjs.map} +1 -1
- package/dist/{dist-N6P7NYGX.cjs → dist-G2BYZJOC.cjs} +28 -28
- package/dist/{dist-N6P7NYGX.cjs.map → dist-G2BYZJOC.cjs.map} +1 -1
- package/dist/dist-P4MXBQ3U.cjs +16 -0
- package/dist/{dist-EZZMMMNT.cjs.map → dist-P4MXBQ3U.cjs.map} +1 -1
- package/dist/{dist-LKU3RRT2.js → dist-PQZUVLPC.js} +3 -3
- package/dist/{dist-LKU3RRT2.js.map → dist-PQZUVLPC.js.map} +1 -1
- package/dist/{dist-ZHCN47XA.js → dist-R7WYX6LC.js} +3 -3
- package/dist/{dist-ZHCN47XA.js.map → dist-R7WYX6LC.js.map} +1 -1
- package/dist/{dist-QI7RYOYQ.cjs → dist-RFMYFILX.cjs} +30 -30
- package/dist/{dist-QI7RYOYQ.cjs.map → dist-RFMYFILX.cjs.map} +1 -1
- package/dist/{dist-JNIWWFE5.js → dist-X7XR3M3Z.js} +3 -3
- package/dist/{dist-JNIWWFE5.js.map → dist-X7XR3M3Z.js.map} +1 -1
- package/dist/{dist-COC6WFAX.js → dist-XVBSOGFK.js} +3 -3
- package/dist/{dist-COC6WFAX.js.map → dist-XVBSOGFK.js.map} +1 -1
- package/dist/dist-YREX2TJT.js +3 -0
- package/dist/{dist-26HWEQY6.js.map → dist-YREX2TJT.js.map} +1 -1
- package/dist/server/handlers/a2a.cjs +7 -7
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +36 -16
- package/dist/server/handlers/agent-builder.d.ts +20 -4
- package/dist/server/handlers/agent-builder.d.ts.map +1 -1
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agents.cjs +26 -18
- package/dist/server/handlers/agents.d.ts +57 -47
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/legacyWorkflows.cjs +11 -11
- package/dist/server/handlers/legacyWorkflows.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/memory.cjs +16 -16
- package/dist/server/handlers/memory.d.ts +3 -2
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +5 -5
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.d.ts +9 -108
- package/dist/server/handlers/scores.d.ts.map +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/vector.cjs +7 -7
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +5 -5
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +27 -19
- package/dist/server/handlers/workflows.d.ts +13 -7
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +27 -32
- package/dist/server/handlers.d.ts +0 -1
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +12 -13
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/token-375W3LEI.cjs +64 -0
- package/dist/token-375W3LEI.cjs.map +1 -0
- package/dist/token-C3IMNCC4.js +62 -0
- package/dist/token-C3IMNCC4.js.map +1 -0
- package/dist/token-util-CV3RRG6K.cjs +9 -0
- package/dist/token-util-CV3RRG6K.cjs.map +1 -0
- package/dist/token-util-E5QO2RCL.js +7 -0
- package/dist/token-util-E5QO2RCL.js.map +1 -0
- package/package.json +9 -9
- package/dist/chunk-4HS3I2TI.cjs.map +0 -1
- package/dist/chunk-4RRMWXQ2.js +0 -3522
- package/dist/chunk-4RRMWXQ2.js.map +0 -1
- package/dist/chunk-AX5SCBJL.js.map +0 -1
- package/dist/chunk-BKCWZLEL.cjs.map +0 -1
- package/dist/chunk-FALVL2VV.cjs +0 -3525
- package/dist/chunk-FALVL2VV.cjs.map +0 -1
- package/dist/chunk-FYZHFAFB.cjs.map +0 -1
- package/dist/chunk-GU4EWMZB.cjs.map +0 -1
- package/dist/chunk-HRG5HN4U.js.map +0 -1
- package/dist/chunk-HVBBFCDH.cjs +0 -2321
- package/dist/chunk-HVBBFCDH.cjs.map +0 -1
- package/dist/chunk-JOXMWFM6.cjs.map +0 -1
- package/dist/chunk-KV6VHX4V.js +0 -160
- package/dist/chunk-KV6VHX4V.js.map +0 -1
- package/dist/chunk-LF2ZLOFP.js.map +0 -1
- package/dist/chunk-LHGBI76Y.cjs.map +0 -1
- package/dist/chunk-N7F33WAD.js +0 -2290
- package/dist/chunk-N7F33WAD.js.map +0 -1
- package/dist/chunk-PWTXZZTR.cjs +0 -165
- package/dist/chunk-PWTXZZTR.cjs.map +0 -1
- package/dist/chunk-QDPOVUS4.js.map +0 -1
- package/dist/chunk-SZUAJANR.js.map +0 -1
- package/dist/chunk-VY4ENABS.cjs.map +0 -1
- package/dist/chunk-XJOYGRTN.js.map +0 -1
- package/dist/chunk-YWOK4F5A.js.map +0 -1
- package/dist/dist-26HWEQY6.js +0 -3
- package/dist/dist-3DRD6USP.cjs +0 -1411
- package/dist/dist-3DRD6USP.cjs.map +0 -1
- package/dist/dist-7GVM5ZCS.js +0 -845
- package/dist/dist-7GVM5ZCS.js.map +0 -1
- package/dist/dist-CCDXEZDR.js +0 -1408
- package/dist/dist-CCDXEZDR.js.map +0 -1
- package/dist/dist-EZZMMMNT.cjs +0 -16
- package/dist/dist-H64VX6DE.js +0 -3
- package/dist/dist-H64VX6DE.js.map +0 -1
- package/dist/dist-H7RR3EXL.js +0 -2006
- package/dist/dist-H7RR3EXL.js.map +0 -1
- package/dist/dist-L76NFIWM.cjs +0 -934
- package/dist/dist-L76NFIWM.cjs.map +0 -1
- package/dist/dist-MQUZENT7.js +0 -931
- package/dist/dist-MQUZENT7.js.map +0 -1
- package/dist/dist-S3ILRJUH.cjs +0 -2013
- package/dist/dist-S3ILRJUH.cjs.map +0 -1
- package/dist/dist-WKYB3LTJ.cjs +0 -16
- package/dist/dist-WKYB3LTJ.cjs.map +0 -1
- package/dist/dist-WY4WSW7C.cjs +0 -849
- package/dist/dist-WY4WSW7C.cjs.map +0 -1
- package/dist/server/handlers/telemetry.cjs +0 -20
- package/dist/server/handlers/telemetry.cjs.map +0 -1
- package/dist/server/handlers/telemetry.d.ts +0 -33
- package/dist/server/handlers/telemetry.d.ts.map +0 -1
- package/dist/server/handlers/telemetry.js +0 -3
- package/dist/server/handlers/telemetry.js.map +0 -1
package/dist/chunk-PWTXZZTR.cjs
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkRE4RPXT2_cjs = require('./chunk-RE4RPXT2.cjs');
|
|
4
|
-
var chunk7NADHFD2_cjs = require('./chunk-7NADHFD2.cjs');
|
|
5
|
-
var chunkEMMSS5I5_cjs = require('./chunk-EMMSS5I5.cjs');
|
|
6
|
-
|
|
7
|
-
// src/server/handlers/telemetry.ts
|
|
8
|
-
var telemetry_exports = {};
|
|
9
|
-
chunkEMMSS5I5_cjs.__export(telemetry_exports, {
|
|
10
|
-
collectParentSpanIds: () => collectParentSpanIds,
|
|
11
|
-
getTelemetryHandler: () => getTelemetryHandler,
|
|
12
|
-
storeTelemetryHandler: () => storeTelemetryHandler
|
|
13
|
-
});
|
|
14
|
-
async function getTelemetryHandler({ mastra, body }) {
|
|
15
|
-
try {
|
|
16
|
-
const telemetry = mastra.getTelemetry();
|
|
17
|
-
const storage = mastra.getStorage();
|
|
18
|
-
if (!telemetry) {
|
|
19
|
-
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Telemetry is not initialized" });
|
|
20
|
-
}
|
|
21
|
-
if (!storage) {
|
|
22
|
-
return [];
|
|
23
|
-
}
|
|
24
|
-
if (!body) {
|
|
25
|
-
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Body is required" });
|
|
26
|
-
}
|
|
27
|
-
const { name, scope, page, perPage, attribute, fromDate, toDate } = body;
|
|
28
|
-
const attributes = attribute ? Object.fromEntries(
|
|
29
|
-
(Array.isArray(attribute) ? attribute : [attribute]).map((attr) => {
|
|
30
|
-
const [key, value] = attr.split(":");
|
|
31
|
-
return [key, value];
|
|
32
|
-
})
|
|
33
|
-
) : void 0;
|
|
34
|
-
const traces = await storage.getTraces({
|
|
35
|
-
name,
|
|
36
|
-
scope,
|
|
37
|
-
page: Number(page ?? 0),
|
|
38
|
-
perPage: Number(perPage ?? 100),
|
|
39
|
-
attributes,
|
|
40
|
-
fromDate: fromDate ? new Date(fromDate) : void 0,
|
|
41
|
-
toDate: toDate ? new Date(toDate) : void 0
|
|
42
|
-
});
|
|
43
|
-
return traces;
|
|
44
|
-
} catch (error2) {
|
|
45
|
-
return chunkRE4RPXT2_cjs.handleError(error2, "Error getting telemetry");
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
async function storeTelemetryHandler({ mastra, body }) {
|
|
49
|
-
try {
|
|
50
|
-
const storage = mastra.getStorage();
|
|
51
|
-
const logger = mastra.getLogger();
|
|
52
|
-
if (!storage) {
|
|
53
|
-
return {
|
|
54
|
-
status: "error",
|
|
55
|
-
message: "Storage is not initialized"
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
const now = /* @__PURE__ */ new Date();
|
|
59
|
-
const items = body?.resourceSpans?.[0]?.scopeSpans;
|
|
60
|
-
logger.debug("[Telemetry Handler] Received spans:", {
|
|
61
|
-
totalSpans: items?.reduce((acc, scope) => acc + scope.spans.length, 0) || 0,
|
|
62
|
-
timestamp: now.toISOString()
|
|
63
|
-
});
|
|
64
|
-
if (!items?.length) {
|
|
65
|
-
return {
|
|
66
|
-
status: "success",
|
|
67
|
-
message: "No spans to process",
|
|
68
|
-
traceCount: 0
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
const parentSpanIds = collectParentSpanIds(items);
|
|
72
|
-
const allSpans = items.reduce((acc, scopedSpans) => {
|
|
73
|
-
const { scope, spans } = scopedSpans;
|
|
74
|
-
if (scope.name === "@opentelemetry/instrumentation-http") {
|
|
75
|
-
return acc;
|
|
76
|
-
}
|
|
77
|
-
for (const span of spans) {
|
|
78
|
-
const {
|
|
79
|
-
spanId,
|
|
80
|
-
parentSpanId,
|
|
81
|
-
traceId,
|
|
82
|
-
name,
|
|
83
|
-
kind,
|
|
84
|
-
attributes,
|
|
85
|
-
status,
|
|
86
|
-
events,
|
|
87
|
-
links,
|
|
88
|
-
startTimeUnixNano,
|
|
89
|
-
endTimeUnixNano,
|
|
90
|
-
...rest
|
|
91
|
-
} = span;
|
|
92
|
-
const startTime = Number(BigInt(startTimeUnixNano) / 1000n);
|
|
93
|
-
const endTime = Number(BigInt(endTimeUnixNano) / 1000n);
|
|
94
|
-
acc.push({
|
|
95
|
-
id: spanId,
|
|
96
|
-
parentSpanId: parentSpanIds.has(parentSpanId) ? null : parentSpanId,
|
|
97
|
-
traceId,
|
|
98
|
-
name,
|
|
99
|
-
scope: scope.name,
|
|
100
|
-
kind,
|
|
101
|
-
status: JSON.stringify(status),
|
|
102
|
-
events: JSON.stringify(events),
|
|
103
|
-
links: JSON.stringify(links),
|
|
104
|
-
attributes: JSON.stringify(
|
|
105
|
-
attributes.reduce((acc2, attr) => {
|
|
106
|
-
const valueKey = Object.keys(attr.value)[0];
|
|
107
|
-
if (valueKey) {
|
|
108
|
-
acc2[attr.key] = attr.value[valueKey];
|
|
109
|
-
}
|
|
110
|
-
return acc2;
|
|
111
|
-
}, {})
|
|
112
|
-
),
|
|
113
|
-
startTime,
|
|
114
|
-
endTime,
|
|
115
|
-
other: JSON.stringify(rest),
|
|
116
|
-
createdAt: now
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
return acc;
|
|
120
|
-
}, []);
|
|
121
|
-
return storage.batchTraceInsert({
|
|
122
|
-
records: allSpans
|
|
123
|
-
}).then(() => {
|
|
124
|
-
return {
|
|
125
|
-
status: "success",
|
|
126
|
-
message: "Traces received and processed successfully",
|
|
127
|
-
traceCount: body.resourceSpans?.length || 0
|
|
128
|
-
};
|
|
129
|
-
}).catch(() => {
|
|
130
|
-
return {
|
|
131
|
-
status: "error",
|
|
132
|
-
message: "Failed to process traces",
|
|
133
|
-
// @ts-ignore
|
|
134
|
-
error: error.message
|
|
135
|
-
};
|
|
136
|
-
});
|
|
137
|
-
} catch (error2) {
|
|
138
|
-
console.error("Error processing traces:", error2);
|
|
139
|
-
return {
|
|
140
|
-
status: "error",
|
|
141
|
-
message: "Failed to process traces",
|
|
142
|
-
// @ts-ignore
|
|
143
|
-
error: error2.message
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
var collectParentSpanIds = (items) => {
|
|
148
|
-
const result = /* @__PURE__ */ new Set();
|
|
149
|
-
for (const { scope, spans } of items) {
|
|
150
|
-
if (scope.name !== "@opentelemetry/instrumentation-http") {
|
|
151
|
-
continue;
|
|
152
|
-
}
|
|
153
|
-
for (const span of spans) {
|
|
154
|
-
result.add(span.spanId);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return result;
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
exports.collectParentSpanIds = collectParentSpanIds;
|
|
161
|
-
exports.getTelemetryHandler = getTelemetryHandler;
|
|
162
|
-
exports.storeTelemetryHandler = storeTelemetryHandler;
|
|
163
|
-
exports.telemetry_exports = telemetry_exports;
|
|
164
|
-
//# sourceMappingURL=chunk-PWTXZZTR.cjs.map
|
|
165
|
-
//# sourceMappingURL=chunk-PWTXZZTR.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/telemetry.ts"],"names":["__export","HTTPException","error","handleError","acc"],"mappings":"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","file":"chunk-PWTXZZTR.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\n\ninterface TelemetryContext extends Context {\n body?: {\n name?: string;\n scope?: string;\n page?: number;\n perPage?: number;\n attribute?: string | string[];\n fromDate?: Date;\n toDate?: Date;\n };\n}\n\nexport async function getTelemetryHandler({ mastra, body }: TelemetryContext) {\n try {\n const telemetry = mastra.getTelemetry();\n const storage = mastra.getStorage();\n\n if (!telemetry) {\n throw new HTTPException(400, { message: 'Telemetry is not initialized' });\n }\n\n if (!storage) {\n return [];\n }\n\n if (!body) {\n throw new HTTPException(400, { message: 'Body is required' });\n }\n\n const { name, scope, page, perPage, attribute, fromDate, toDate } = body;\n\n // Parse attribute query parameter if present\n const attributes = attribute\n ? Object.fromEntries(\n (Array.isArray(attribute) ? attribute : [attribute]).map(attr => {\n const [key, value] = attr.split(':');\n return [key, value];\n }),\n )\n : undefined;\n\n const traces = await storage.getTraces({\n name,\n scope,\n page: Number(page ?? 0),\n perPage: Number(perPage ?? 100),\n attributes,\n fromDate: fromDate ? new Date(fromDate) : undefined,\n toDate: toDate ? new Date(toDate) : undefined,\n });\n\n return traces;\n } catch (error) {\n return handleError(error, 'Error getting telemetry');\n }\n}\n\nexport async function storeTelemetryHandler({ mastra, body }: Context & { body: { resourceSpans: any[] } }) {\n try {\n const storage = mastra.getStorage();\n const logger = mastra.getLogger();\n\n if (!storage) {\n return {\n status: 'error',\n message: 'Storage is not initialized',\n };\n }\n\n const now = new Date();\n\n const items = body?.resourceSpans?.[0]?.scopeSpans;\n logger.debug('[Telemetry Handler] Received spans:', {\n totalSpans: items?.reduce((acc: number, scope: { spans: any[] }) => acc + scope.spans.length, 0) || 0,\n timestamp: now.toISOString(),\n });\n if (!items?.length) {\n return {\n status: 'success',\n message: 'No spans to process',\n traceCount: 0,\n };\n }\n\n const parentSpanIds = collectParentSpanIds(items);\n const allSpans: any[] = items.reduce((acc: any, scopedSpans: any) => {\n const { scope, spans } = scopedSpans;\n\n // HTTP instrumentation spans are root spans but are not useful.\n // Remove them entirely and promote their direct children to root spans.\n if (scope.name === '@opentelemetry/instrumentation-http') {\n return acc;\n }\n\n for (const span of spans) {\n const {\n spanId,\n parentSpanId,\n traceId,\n name,\n kind,\n attributes,\n status,\n events,\n links,\n startTimeUnixNano,\n endTimeUnixNano,\n ...rest\n } = span;\n\n const startTime = Number(BigInt(startTimeUnixNano) / 1000n);\n const endTime = Number(BigInt(endTimeUnixNano) / 1000n);\n\n acc.push({\n id: spanId,\n parentSpanId: parentSpanIds.has(parentSpanId) ? null : parentSpanId,\n traceId,\n name,\n scope: scope.name,\n kind,\n status: JSON.stringify(status),\n events: JSON.stringify(events),\n links: JSON.stringify(links),\n attributes: JSON.stringify(\n attributes.reduce((acc: Record<string, any>, attr: any) => {\n const valueKey = Object.keys(attr.value)[0];\n if (valueKey) {\n acc[attr.key] = attr.value[valueKey];\n }\n return acc;\n }, {}),\n ),\n startTime,\n endTime,\n other: JSON.stringify(rest),\n createdAt: now,\n });\n }\n return acc;\n }, []);\n\n return storage\n .batchTraceInsert({\n records: allSpans,\n })\n .then(() => {\n return {\n status: 'success',\n message: 'Traces received and processed successfully',\n traceCount: body.resourceSpans?.length || 0,\n };\n })\n .catch(() => {\n return {\n status: 'error',\n message: 'Failed to process traces',\n // @ts-ignore\n error: error.message,\n };\n });\n\n // Return a simple response\n } catch (error) {\n console.error('Error processing traces:', error);\n return {\n status: 'error',\n message: 'Failed to process traces',\n // @ts-ignore\n error: error.message,\n };\n }\n}\n\nexport const collectParentSpanIds = (items: any[]) => {\n const result = new Set<string>();\n for (const { scope, spans } of items) {\n if (scope.name !== '@opentelemetry/instrumentation-http') {\n continue;\n }\n\n for (const span of spans) {\n result.add(span.spanId);\n }\n }\n\n return result;\n};\n"]}
|