promptmetrics-sample 1.0.0
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/.env.example +12 -0
- package/README.md +235 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/tests/logs.test.d.ts +7 -0
- package/dist/tests/logs.test.d.ts.map +1 -0
- package/dist/tests/logs.test.js +163 -0
- package/dist/tests/logs.test.js.map +1 -0
- package/dist/tests/providers.test.d.ts +7 -0
- package/dist/tests/providers.test.d.ts.map +1 -0
- package/dist/tests/providers.test.js +99 -0
- package/dist/tests/providers.test.js.map +1 -0
- package/dist/tests/tags.test.d.ts +7 -0
- package/dist/tests/tags.test.d.ts.map +1 -0
- package/dist/tests/tags.test.js +220 -0
- package/dist/tests/tags.test.js.map +1 -0
- package/dist/tests/template-run-load.test.d.ts +11 -0
- package/dist/tests/template-run-load.test.d.ts.map +1 -0
- package/dist/tests/template-run-load.test.js +245 -0
- package/dist/tests/template-run-load.test.js.map +1 -0
- package/dist/tests/templates.test.d.ts +7 -0
- package/dist/tests/templates.test.d.ts.map +1 -0
- package/dist/tests/templates.test.js +152 -0
- package/dist/tests/templates.test.js.map +1 -0
- package/dist/tests/traceable.test.d.ts +7 -0
- package/dist/tests/traceable.test.d.ts.map +1 -0
- package/dist/tests/traceable.test.js +300 -0
- package/dist/tests/traceable.test.js.map +1 -0
- package/dist/tests/traces.test.d.ts +7 -0
- package/dist/tests/traces.test.d.ts.map +1 -0
- package/dist/tests/traces.test.js +264 -0
- package/dist/tests/traces.test.js.map +1 -0
- package/dist/tests/versions.test.d.ts +7 -0
- package/dist/tests/versions.test.d.ts.map +1 -0
- package/dist/tests/versions.test.js +145 -0
- package/dist/tests/versions.test.js.map +1 -0
- package/dist/utils/logger.d.ts +26 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +79 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +36 -0
- package/sample-project-plan.md +316 -0
- package/src/index.ts +36 -0
- package/src/tests/logs.test.ts +180 -0
- package/src/tests/providers.test.ts +99 -0
- package/src/tests/tags.test.ts +237 -0
- package/src/tests/template-run-load.test.ts +332 -0
- package/src/tests/templates.test.ts +154 -0
- package/src/tests/traceable.test.ts +290 -0
- package/src/tests/traces.test.ts +298 -0
- package/src/tests/versions.test.ts +155 -0
- package/src/utils/logger.ts +91 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.test.js","sourceRoot":"","sources":["../../src/tests/templates.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traceable.test.d.ts","sourceRoot":"","sources":["../../src/tests/traceable.test.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Traceable Decorator Test Suite
|
|
5
|
+
* Tests the @traceable decorator functionality
|
|
6
|
+
*/
|
|
7
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
8
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
10
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
11
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
12
|
+
};
|
|
13
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
14
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
require("dotenv/config");
|
|
18
|
+
const sdk_1 = require("@promptmetrics/sdk");
|
|
19
|
+
const logger_1 = require("../utils/logger");
|
|
20
|
+
const pm = new sdk_1.PromptMetrics({
|
|
21
|
+
apiKey: process.env.PROMPTMETRICS_API_KEY,
|
|
22
|
+
debug: false,
|
|
23
|
+
});
|
|
24
|
+
const TEST_VERSION_ID = process.env.TEST_VERSION_ID;
|
|
25
|
+
/**
|
|
26
|
+
* Test Service with @traceable decorated methods
|
|
27
|
+
*/
|
|
28
|
+
class TestService {
|
|
29
|
+
/**
|
|
30
|
+
* Basic traceable function
|
|
31
|
+
*/
|
|
32
|
+
async basicFunction(input) {
|
|
33
|
+
// Simulate some work
|
|
34
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
35
|
+
return `Processed: ${input}`;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Traceable with metadata
|
|
39
|
+
*/
|
|
40
|
+
async functionWithMetadata(data) {
|
|
41
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
42
|
+
return { ...data, processed: true };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Traceable with tags
|
|
46
|
+
*/
|
|
47
|
+
async functionWithTags(value) {
|
|
48
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
49
|
+
return value * 2;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parent function that calls child
|
|
53
|
+
*/
|
|
54
|
+
async parentFunction(input) {
|
|
55
|
+
const childResult = await this.childFunction(input);
|
|
56
|
+
return `Parent processed: ${childResult}`;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Child function (nested trace)
|
|
60
|
+
*/
|
|
61
|
+
async childFunction(input) {
|
|
62
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
63
|
+
return `Child processed: ${input}`;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Function with LLM call inside
|
|
67
|
+
*/
|
|
68
|
+
async functionWithLLM(topic) {
|
|
69
|
+
if (!TEST_VERSION_ID) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
// This LLM call should be automatically correlated with the trace
|
|
73
|
+
const result = await pm.versions.run(TEST_VERSION_ID, {
|
|
74
|
+
variables: { topic },
|
|
75
|
+
});
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Function that tracks metadata dynamically
|
|
80
|
+
*/
|
|
81
|
+
async functionWithDynamicMetadata(items) {
|
|
82
|
+
const count = items.length;
|
|
83
|
+
// Track metadata dynamically
|
|
84
|
+
await pm.track.metadata({
|
|
85
|
+
items_processed: count,
|
|
86
|
+
processing_time: new Date().toISOString(),
|
|
87
|
+
});
|
|
88
|
+
return count;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Function that tracks scores
|
|
92
|
+
*/
|
|
93
|
+
async functionWithScores(input) {
|
|
94
|
+
const quality = Math.random();
|
|
95
|
+
const relevance = Math.random();
|
|
96
|
+
// Track scores
|
|
97
|
+
await pm.track.score({ criteria: "quality", value: quality });
|
|
98
|
+
await pm.track.score({ criteria: "relevance", value: relevance });
|
|
99
|
+
return { input, quality, relevance };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Function that sets group
|
|
103
|
+
*/
|
|
104
|
+
async functionWithGroup(conversationId, message) {
|
|
105
|
+
// Set group for conversation tracking
|
|
106
|
+
pm.track.group({
|
|
107
|
+
group_id: conversationId,
|
|
108
|
+
group_type: "conversation",
|
|
109
|
+
});
|
|
110
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
111
|
+
return `Response to: ${message}`;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Function that throws an error (for error tracking)
|
|
115
|
+
*/
|
|
116
|
+
async functionWithError() {
|
|
117
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
118
|
+
throw new Error("Intentional test error");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
__decorate([
|
|
122
|
+
pm.traceable({ name: "basic_function" }),
|
|
123
|
+
__metadata("design:type", Function),
|
|
124
|
+
__metadata("design:paramtypes", [String]),
|
|
125
|
+
__metadata("design:returntype", Promise)
|
|
126
|
+
], TestService.prototype, "basicFunction", null);
|
|
127
|
+
__decorate([
|
|
128
|
+
pm.traceable({
|
|
129
|
+
name: "function_with_metadata",
|
|
130
|
+
metadata: {
|
|
131
|
+
service: "test-service",
|
|
132
|
+
version: "1.0.0",
|
|
133
|
+
},
|
|
134
|
+
}),
|
|
135
|
+
__metadata("design:type", Function),
|
|
136
|
+
__metadata("design:paramtypes", [Object]),
|
|
137
|
+
__metadata("design:returntype", Promise)
|
|
138
|
+
], TestService.prototype, "functionWithMetadata", null);
|
|
139
|
+
__decorate([
|
|
140
|
+
pm.traceable({
|
|
141
|
+
name: "function_with_tags",
|
|
142
|
+
tags: ["test", "sample", "automated"],
|
|
143
|
+
}),
|
|
144
|
+
__metadata("design:type", Function),
|
|
145
|
+
__metadata("design:paramtypes", [Number]),
|
|
146
|
+
__metadata("design:returntype", Promise)
|
|
147
|
+
], TestService.prototype, "functionWithTags", null);
|
|
148
|
+
__decorate([
|
|
149
|
+
pm.traceable({ name: "parent_function" }),
|
|
150
|
+
__metadata("design:type", Function),
|
|
151
|
+
__metadata("design:paramtypes", [String]),
|
|
152
|
+
__metadata("design:returntype", Promise)
|
|
153
|
+
], TestService.prototype, "parentFunction", null);
|
|
154
|
+
__decorate([
|
|
155
|
+
pm.traceable({ name: "child_function" }),
|
|
156
|
+
__metadata("design:type", Function),
|
|
157
|
+
__metadata("design:paramtypes", [String]),
|
|
158
|
+
__metadata("design:returntype", Promise)
|
|
159
|
+
], TestService.prototype, "childFunction", null);
|
|
160
|
+
__decorate([
|
|
161
|
+
pm.traceable({ name: "function_with_llm" }),
|
|
162
|
+
__metadata("design:type", Function),
|
|
163
|
+
__metadata("design:paramtypes", [String]),
|
|
164
|
+
__metadata("design:returntype", Promise)
|
|
165
|
+
], TestService.prototype, "functionWithLLM", null);
|
|
166
|
+
__decorate([
|
|
167
|
+
pm.traceable({ name: "function_with_dynamic_metadata" }),
|
|
168
|
+
__metadata("design:type", Function),
|
|
169
|
+
__metadata("design:paramtypes", [Array]),
|
|
170
|
+
__metadata("design:returntype", Promise)
|
|
171
|
+
], TestService.prototype, "functionWithDynamicMetadata", null);
|
|
172
|
+
__decorate([
|
|
173
|
+
pm.traceable({ name: "function_with_scores" }),
|
|
174
|
+
__metadata("design:type", Function),
|
|
175
|
+
__metadata("design:paramtypes", [String]),
|
|
176
|
+
__metadata("design:returntype", Promise)
|
|
177
|
+
], TestService.prototype, "functionWithScores", null);
|
|
178
|
+
__decorate([
|
|
179
|
+
pm.traceable({ name: "function_with_group" }),
|
|
180
|
+
__metadata("design:type", Function),
|
|
181
|
+
__metadata("design:paramtypes", [String, String]),
|
|
182
|
+
__metadata("design:returntype", Promise)
|
|
183
|
+
], TestService.prototype, "functionWithGroup", null);
|
|
184
|
+
__decorate([
|
|
185
|
+
pm.traceable({ name: "function_with_error" }),
|
|
186
|
+
__metadata("design:type", Function),
|
|
187
|
+
__metadata("design:paramtypes", []),
|
|
188
|
+
__metadata("design:returntype", Promise)
|
|
189
|
+
], TestService.prototype, "functionWithError", null);
|
|
190
|
+
const service = new TestService();
|
|
191
|
+
const tests = [
|
|
192
|
+
{
|
|
193
|
+
name: "Basic @traceable decorator",
|
|
194
|
+
fn: async () => {
|
|
195
|
+
const result = await service.basicFunction("test input");
|
|
196
|
+
logger_1.logger.data("Result", result);
|
|
197
|
+
if (!result.includes("Processed")) {
|
|
198
|
+
throw new Error("Unexpected result");
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
name: "@traceable with static metadata",
|
|
204
|
+
fn: async () => {
|
|
205
|
+
const result = await service.functionWithMetadata({ key: "value" });
|
|
206
|
+
logger_1.logger.data("Result", result);
|
|
207
|
+
if (!result.processed) {
|
|
208
|
+
throw new Error("Unexpected result");
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: "@traceable with tags",
|
|
214
|
+
fn: async () => {
|
|
215
|
+
const result = await service.functionWithTags(21);
|
|
216
|
+
logger_1.logger.data("Result", result);
|
|
217
|
+
if (result !== 42) {
|
|
218
|
+
throw new Error("Unexpected result");
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
name: "Nested @traceable (parent-child)",
|
|
224
|
+
fn: async () => {
|
|
225
|
+
const result = await service.parentFunction("nested test");
|
|
226
|
+
logger_1.logger.data("Result", result);
|
|
227
|
+
if (!result.includes("Parent") || !result.includes("Child")) {
|
|
228
|
+
throw new Error("Unexpected result");
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
name: "@traceable with LLM call inside",
|
|
234
|
+
fn: async () => {
|
|
235
|
+
if (!TEST_VERSION_ID) {
|
|
236
|
+
logger_1.logger.info("Skipped - TEST_VERSION_ID not set");
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
const result = await service.functionWithLLM("Traceable Test");
|
|
240
|
+
if (!result) {
|
|
241
|
+
logger_1.logger.info("Skipped - No result returned");
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
logger_1.logger.data("LLM Result Status", result.status);
|
|
245
|
+
logger_1.logger.data("Trace ID", pm.getCurrentTraceId() || "N/A");
|
|
246
|
+
logger_1.logger.data("Span ID", pm.getCurrentSpanId() || "N/A");
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
name: "pm.track.metadata() inside traced function",
|
|
251
|
+
fn: async () => {
|
|
252
|
+
const result = await service.functionWithDynamicMetadata([
|
|
253
|
+
"item1",
|
|
254
|
+
"item2",
|
|
255
|
+
"item3",
|
|
256
|
+
]);
|
|
257
|
+
logger_1.logger.data("Items Processed", result);
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
name: "pm.track.score() inside traced function",
|
|
262
|
+
fn: async () => {
|
|
263
|
+
const result = await service.functionWithScores("score test");
|
|
264
|
+
logger_1.logger.data("Quality Score", result.quality?.toFixed(2));
|
|
265
|
+
logger_1.logger.data("Relevance Score", result.relevance?.toFixed(2));
|
|
266
|
+
},
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
name: "pm.track.group() for conversation grouping",
|
|
270
|
+
fn: async () => {
|
|
271
|
+
const conversationId = `conv_${Date.now()}`;
|
|
272
|
+
// Simulate multiple messages in a conversation
|
|
273
|
+
const response1 = await service.functionWithGroup(conversationId, "Hello");
|
|
274
|
+
const response2 = await service.functionWithGroup(conversationId, "How are you?");
|
|
275
|
+
logger_1.logger.data("Response 1", response1);
|
|
276
|
+
logger_1.logger.data("Response 2", response2);
|
|
277
|
+
logger_1.logger.data("Conversation ID", conversationId);
|
|
278
|
+
},
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
name: "@traceable error handling",
|
|
282
|
+
fn: async () => {
|
|
283
|
+
try {
|
|
284
|
+
await service.functionWithError();
|
|
285
|
+
throw new Error("Should have thrown an error");
|
|
286
|
+
}
|
|
287
|
+
catch (error) {
|
|
288
|
+
const err = error;
|
|
289
|
+
if (err.message === "Intentional test error") {
|
|
290
|
+
logger_1.logger.success("Error was properly thrown and can be caught");
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
throw error;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
];
|
|
299
|
+
(0, logger_1.runTestSuite)("Traceable Decorator Test Suite", tests);
|
|
300
|
+
//# sourceMappingURL=traceable.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traceable.test.js","sourceRoot":"","sources":["../../src/tests/traceable.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traces.test.d.ts","sourceRoot":"","sources":["../../src/tests/traces.test.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Traces Test Suite
|
|
5
|
+
* Tests all trace-related SDK operations
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
require("dotenv/config");
|
|
9
|
+
const sdk_1 = require("@promptmetrics/sdk");
|
|
10
|
+
const logger_1 = require("../utils/logger");
|
|
11
|
+
const pm = new sdk_1.PromptMetrics({
|
|
12
|
+
apiKey: process.env.PROMPTMETRICS_API_KEY,
|
|
13
|
+
});
|
|
14
|
+
// Generate unique IDs for testing
|
|
15
|
+
const generateId = () => `test_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
16
|
+
// Store IDs from tests for subsequent tests
|
|
17
|
+
let createdTraceId = null;
|
|
18
|
+
let createdSpanId = null;
|
|
19
|
+
let createdGroupId = null;
|
|
20
|
+
const tests = [
|
|
21
|
+
{
|
|
22
|
+
name: "Create a manual trace",
|
|
23
|
+
fn: async () => {
|
|
24
|
+
const traceId = generateId();
|
|
25
|
+
const spanId = generateId();
|
|
26
|
+
const trace = await pm.traces.create({
|
|
27
|
+
trace_id: traceId,
|
|
28
|
+
span_id: spanId,
|
|
29
|
+
function_name: "test_manual_trace",
|
|
30
|
+
start_time: new Date(),
|
|
31
|
+
end_time: new Date(Date.now() + 1000),
|
|
32
|
+
duration_ms: 1000,
|
|
33
|
+
status: "SUCCESS",
|
|
34
|
+
metadata: {
|
|
35
|
+
test: true,
|
|
36
|
+
source: "sample-project",
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
if (!trace)
|
|
40
|
+
throw new Error("Failed to create trace");
|
|
41
|
+
createdTraceId = traceId;
|
|
42
|
+
createdSpanId = spanId;
|
|
43
|
+
logger_1.logger.data("Trace ID", trace.trace_id);
|
|
44
|
+
logger_1.logger.data("Span ID", trace.span_id);
|
|
45
|
+
logger_1.logger.data("Function Name", trace.function_name);
|
|
46
|
+
logger_1.logger.data("Status", trace.status);
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "Create trace with group_id",
|
|
51
|
+
fn: async () => {
|
|
52
|
+
const traceId = generateId();
|
|
53
|
+
const spanId = generateId();
|
|
54
|
+
const groupId = `conversation_${generateId()}`;
|
|
55
|
+
const trace = await pm.traces.create({
|
|
56
|
+
trace_id: traceId,
|
|
57
|
+
span_id: spanId,
|
|
58
|
+
function_name: "test_grouped_trace",
|
|
59
|
+
start_time: new Date(),
|
|
60
|
+
end_time: new Date(Date.now() + 500),
|
|
61
|
+
duration_ms: 500,
|
|
62
|
+
status: "SUCCESS",
|
|
63
|
+
group_id: groupId,
|
|
64
|
+
group_type: "conversation",
|
|
65
|
+
metadata: {
|
|
66
|
+
grouped: true,
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
if (!trace)
|
|
70
|
+
throw new Error("Failed to create trace");
|
|
71
|
+
createdGroupId = groupId;
|
|
72
|
+
logger_1.logger.data("Trace ID", trace.trace_id);
|
|
73
|
+
logger_1.logger.data("Group ID", trace.group_id);
|
|
74
|
+
logger_1.logger.data("Group Type", trace.group_type);
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: "Create batch traces",
|
|
79
|
+
fn: async () => {
|
|
80
|
+
const batchTraceId = generateId();
|
|
81
|
+
const traces = [
|
|
82
|
+
{
|
|
83
|
+
trace_id: batchTraceId,
|
|
84
|
+
span_id: generateId(),
|
|
85
|
+
function_name: "batch_step_1",
|
|
86
|
+
start_time: new Date(Date.now() - 3000),
|
|
87
|
+
end_time: new Date(Date.now() - 2000),
|
|
88
|
+
duration_ms: 1000,
|
|
89
|
+
status: "SUCCESS",
|
|
90
|
+
metadata: { step: 1 },
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
trace_id: batchTraceId,
|
|
94
|
+
span_id: generateId(),
|
|
95
|
+
function_name: "batch_step_2",
|
|
96
|
+
start_time: new Date(Date.now() - 2000),
|
|
97
|
+
end_time: new Date(Date.now() - 1000),
|
|
98
|
+
duration_ms: 1000,
|
|
99
|
+
status: "SUCCESS",
|
|
100
|
+
metadata: { step: 2 },
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
trace_id: batchTraceId,
|
|
104
|
+
span_id: generateId(),
|
|
105
|
+
function_name: "batch_step_3",
|
|
106
|
+
start_time: new Date(Date.now() - 1000),
|
|
107
|
+
end_time: new Date(),
|
|
108
|
+
duration_ms: 1000,
|
|
109
|
+
status: "SUCCESS",
|
|
110
|
+
metadata: { step: 3 },
|
|
111
|
+
},
|
|
112
|
+
];
|
|
113
|
+
const result = await pm.traces.createBatch(traces);
|
|
114
|
+
if (!result)
|
|
115
|
+
throw new Error("Failed to create batch traces");
|
|
116
|
+
logger_1.logger.data("Successful", result.summary?.successful || 0);
|
|
117
|
+
logger_1.logger.data("Failed", result.summary?.failed || 0);
|
|
118
|
+
logger_1.logger.data("Total", result.summary?.total || traces.length);
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: "Get trace by span_id",
|
|
123
|
+
fn: async () => {
|
|
124
|
+
if (!createdSpanId) {
|
|
125
|
+
logger_1.logger.info("Skipped - No span ID available from previous test");
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const trace = await pm.traces.getBySpanId(createdSpanId);
|
|
129
|
+
if (!trace)
|
|
130
|
+
throw new Error("Trace not found");
|
|
131
|
+
logger_1.logger.data("Trace ID", trace.trace_id);
|
|
132
|
+
logger_1.logger.data("Span ID", trace.span_id);
|
|
133
|
+
logger_1.logger.data("Function Name", trace.function_name);
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: "Get trace tree by trace_id",
|
|
138
|
+
fn: async () => {
|
|
139
|
+
if (!createdTraceId) {
|
|
140
|
+
logger_1.logger.info("Skipped - No trace ID available from previous test");
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const tree = await pm.traces.getTrace(createdTraceId);
|
|
144
|
+
if (!tree)
|
|
145
|
+
throw new Error("Trace tree not found");
|
|
146
|
+
logger_1.logger.data("Tree Nodes", Array.isArray(tree) ? tree.length : 1);
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: "Get traces by group_id",
|
|
151
|
+
fn: async () => {
|
|
152
|
+
if (!createdGroupId) {
|
|
153
|
+
logger_1.logger.info("Skipped - No group ID available from previous test");
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const traces = await pm.traces.getGroup(createdGroupId);
|
|
157
|
+
if (!traces)
|
|
158
|
+
throw new Error("Group traces not found");
|
|
159
|
+
logger_1.logger.data("Traces in Group", Array.isArray(traces) ? traces.length : 0);
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: "List traces with filters",
|
|
164
|
+
fn: async () => {
|
|
165
|
+
const result = await pm.traces.list({
|
|
166
|
+
page: 1,
|
|
167
|
+
limit: 10,
|
|
168
|
+
});
|
|
169
|
+
if (!result)
|
|
170
|
+
throw new Error("Failed to list traces");
|
|
171
|
+
logger_1.logger.data("Traces Count", result.traces?.length || 0);
|
|
172
|
+
logger_1.logger.data("Total", result.pagination?.total || 0);
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
name: "Add score to trace",
|
|
177
|
+
fn: async () => {
|
|
178
|
+
if (!createdSpanId) {
|
|
179
|
+
logger_1.logger.info("Skipped - No span ID available from previous test");
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const trace = await pm.traces.addScore(createdSpanId, {
|
|
183
|
+
criteria: "quality",
|
|
184
|
+
value: 0.95,
|
|
185
|
+
});
|
|
186
|
+
if (!trace)
|
|
187
|
+
throw new Error("Failed to add score");
|
|
188
|
+
logger_1.logger.data("Span ID", trace.span_id);
|
|
189
|
+
logger_1.logger.data("Scores", trace.scores);
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: "Update trace metadata",
|
|
194
|
+
fn: async () => {
|
|
195
|
+
if (!createdSpanId) {
|
|
196
|
+
logger_1.logger.info("Skipped - No span ID available from previous test");
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
const trace = await pm.traces.updateMetadata(createdSpanId, {
|
|
200
|
+
metadata: {
|
|
201
|
+
updated: true,
|
|
202
|
+
updated_at: new Date().toISOString(),
|
|
203
|
+
test_complete: true,
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
if (!trace)
|
|
207
|
+
throw new Error("Failed to update metadata");
|
|
208
|
+
logger_1.logger.data("Span ID", trace.span_id);
|
|
209
|
+
logger_1.logger.data("Updated Metadata", trace.metadata);
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: "Get trace analytics",
|
|
214
|
+
fn: async () => {
|
|
215
|
+
const endDate = new Date();
|
|
216
|
+
const startDate = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000); // 7 days ago
|
|
217
|
+
try {
|
|
218
|
+
const analytics = await pm.traces.getAnalytics({
|
|
219
|
+
start_date: startDate.toISOString(),
|
|
220
|
+
end_date: endDate.toISOString(),
|
|
221
|
+
});
|
|
222
|
+
if (!analytics)
|
|
223
|
+
throw new Error("Failed to get analytics");
|
|
224
|
+
logger_1.logger.data("Total Traces", analytics.total_traces || 0);
|
|
225
|
+
logger_1.logger.data("Success Rate", analytics.success_rate || "N/A");
|
|
226
|
+
logger_1.logger.data("Avg Duration", analytics.average_duration_ms || "N/A");
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
const err = error;
|
|
230
|
+
if (err.message?.includes("not found") ||
|
|
231
|
+
err.message?.includes("404")) {
|
|
232
|
+
logger_1.logger.info("Analytics endpoint may not be available");
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
throw error;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
name: "Cleanup old traces",
|
|
242
|
+
fn: async () => {
|
|
243
|
+
// Delete traces older than 90 days (for testing, use a very old date)
|
|
244
|
+
const oldDate = new Date();
|
|
245
|
+
oldDate.setFullYear(oldDate.getFullYear() - 1); // 1 year ago
|
|
246
|
+
try {
|
|
247
|
+
const result = await pm.traces.cleanup(oldDate.toISOString());
|
|
248
|
+
logger_1.logger.data("Deleted Count", result.deleted_count);
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
const err = error;
|
|
252
|
+
if (err.message?.includes("not found") ||
|
|
253
|
+
err.message?.includes("404")) {
|
|
254
|
+
logger_1.logger.info("Cleanup endpoint may not be available");
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
throw error;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
];
|
|
263
|
+
(0, logger_1.runTestSuite)("Traces Test Suite", tests);
|
|
264
|
+
//# sourceMappingURL=traces.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traces.test.js","sourceRoot":"","sources":["../../src/tests/traces.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.test.d.ts","sourceRoot":"","sources":["../../src/tests/versions.test.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,eAAe,CAAC"}
|