observability-toolkit 1.8.0 → 1.8.4
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/README.md +81 -3
- package/dist/backends/index.d.ts +119 -0
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +57 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/index.test.d.ts +5 -0
- package/dist/backends/index.test.d.ts.map +1 -0
- package/dist/backends/index.test.js +156 -0
- package/dist/backends/index.test.js.map +1 -0
- package/dist/backends/local-jsonl-boolean-search.test.js +8 -27
- package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -1
- package/dist/backends/local-jsonl-logs.test.d.ts +2 -0
- package/dist/backends/local-jsonl-logs.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-logs.test.js +603 -0
- package/dist/backends/local-jsonl-logs.test.js.map +1 -0
- package/dist/backends/local-jsonl-traces.test.d.ts +2 -0
- package/dist/backends/local-jsonl-traces.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-traces.test.js +1723 -0
- package/dist/backends/local-jsonl-traces.test.js.map +1 -0
- package/dist/backends/local-jsonl.d.ts +4 -1
- package/dist/backends/local-jsonl.d.ts.map +1 -1
- package/dist/backends/local-jsonl.js +185 -1
- package/dist/backends/local-jsonl.js.map +1 -1
- package/dist/backends/local-jsonl.test.js +723 -46
- package/dist/backends/local-jsonl.test.js.map +1 -1
- package/dist/backends/signoz-api.d.ts +32 -0
- package/dist/backends/signoz-api.d.ts.map +1 -1
- package/dist/backends/signoz-api.js +231 -33
- package/dist/backends/signoz-api.js.map +1 -1
- package/dist/backends/signoz-api.test.js +410 -63
- package/dist/backends/signoz-api.test.js.map +1 -1
- package/dist/lib/constants.d.ts +59 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +252 -6
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/constants.test.js +357 -21
- package/dist/lib/constants.test.js.map +1 -1
- package/dist/lib/edge-cases.test.d.ts +11 -0
- package/dist/lib/edge-cases.test.d.ts.map +1 -0
- package/dist/lib/edge-cases.test.js +634 -0
- package/dist/lib/edge-cases.test.js.map +1 -0
- package/dist/lib/error-sanitizer.d.ts +57 -0
- package/dist/lib/error-sanitizer.d.ts.map +1 -0
- package/dist/lib/error-sanitizer.js +207 -0
- package/dist/lib/error-sanitizer.js.map +1 -0
- package/dist/lib/error-sanitizer.test.d.ts +8 -0
- package/dist/lib/error-sanitizer.test.d.ts.map +1 -0
- package/dist/lib/error-sanitizer.test.js +369 -0
- package/dist/lib/error-sanitizer.test.js.map +1 -0
- package/dist/lib/file-utils.d.ts +134 -0
- package/dist/lib/file-utils.d.ts.map +1 -1
- package/dist/lib/file-utils.js +395 -9
- package/dist/lib/file-utils.js.map +1 -1
- package/dist/lib/file-utils.test.js +444 -3
- package/dist/lib/file-utils.test.js.map +1 -1
- package/dist/lib/indexer.d.ts +9 -1
- package/dist/lib/indexer.d.ts.map +1 -1
- package/dist/lib/indexer.js +51 -2
- package/dist/lib/indexer.js.map +1 -1
- package/dist/lib/indexer.test.js +138 -20
- package/dist/lib/indexer.test.js.map +1 -1
- package/dist/lib/input-validator.d.ts +103 -0
- package/dist/lib/input-validator.d.ts.map +1 -0
- package/dist/lib/input-validator.js +250 -0
- package/dist/lib/input-validator.js.map +1 -0
- package/dist/lib/input-validator.test.d.ts +2 -0
- package/dist/lib/input-validator.test.d.ts.map +1 -0
- package/dist/lib/input-validator.test.js +287 -0
- package/dist/lib/input-validator.test.js.map +1 -0
- package/dist/lib/query-sanitizer.d.ts +143 -0
- package/dist/lib/query-sanitizer.d.ts.map +1 -0
- package/dist/lib/query-sanitizer.js +261 -0
- package/dist/lib/query-sanitizer.js.map +1 -0
- package/dist/lib/query-sanitizer.test.d.ts +5 -0
- package/dist/lib/query-sanitizer.test.d.ts.map +1 -0
- package/dist/lib/query-sanitizer.test.js +400 -0
- package/dist/lib/query-sanitizer.test.js.map +1 -0
- package/dist/lib/server-utils.d.ts +80 -0
- package/dist/lib/server-utils.d.ts.map +1 -0
- package/dist/lib/server-utils.js +141 -0
- package/dist/lib/server-utils.js.map +1 -0
- package/dist/lib/shared-schemas.d.ts +59 -0
- package/dist/lib/shared-schemas.d.ts.map +1 -0
- package/dist/lib/shared-schemas.js +58 -0
- package/dist/lib/shared-schemas.js.map +1 -0
- package/dist/lib/shared-schemas.test.d.ts +5 -0
- package/dist/lib/shared-schemas.test.d.ts.map +1 -0
- package/dist/lib/shared-schemas.test.js +106 -0
- package/dist/lib/shared-schemas.test.js.map +1 -0
- package/dist/lib/toon-encoder.d.ts +21 -0
- package/dist/lib/toon-encoder.d.ts.map +1 -0
- package/dist/lib/toon-encoder.js +46 -0
- package/dist/lib/toon-encoder.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +155 -81
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +363 -0
- package/dist/server.test.js.map +1 -1
- package/dist/test-helpers/env-utils.d.ts +65 -0
- package/dist/test-helpers/env-utils.d.ts.map +1 -0
- package/dist/test-helpers/env-utils.js +94 -0
- package/dist/test-helpers/env-utils.js.map +1 -0
- package/dist/test-helpers/file-utils.d.ts +93 -0
- package/dist/test-helpers/file-utils.d.ts.map +1 -0
- package/dist/test-helpers/file-utils.js +206 -0
- package/dist/test-helpers/file-utils.js.map +1 -0
- package/dist/test-helpers/index.d.ts +10 -0
- package/dist/test-helpers/index.d.ts.map +1 -0
- package/dist/test-helpers/index.js +28 -0
- package/dist/test-helpers/index.js.map +1 -0
- package/dist/test-helpers/mock-backends.d.ts +139 -0
- package/dist/test-helpers/mock-backends.d.ts.map +1 -0
- package/dist/test-helpers/mock-backends.js +227 -0
- package/dist/test-helpers/mock-backends.js.map +1 -0
- package/dist/test-helpers/mock-backends.test.d.ts +5 -0
- package/dist/test-helpers/mock-backends.test.d.ts.map +1 -0
- package/dist/test-helpers/mock-backends.test.js +368 -0
- package/dist/test-helpers/mock-backends.test.js.map +1 -0
- package/dist/test-helpers/schema-validators.d.ts +32 -0
- package/dist/test-helpers/schema-validators.d.ts.map +1 -0
- package/dist/test-helpers/schema-validators.js +125 -0
- package/dist/test-helpers/schema-validators.js.map +1 -0
- package/dist/test-helpers/test-data-builders.d.ts +223 -0
- package/dist/test-helpers/test-data-builders.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.js +288 -0
- package/dist/test-helpers/test-data-builders.js.map +1 -0
- package/dist/test-helpers/test-data-builders.test.d.ts +2 -0
- package/dist/test-helpers/test-data-builders.test.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.test.js +306 -0
- package/dist/test-helpers/test-data-builders.test.js.map +1 -0
- package/dist/test-helpers/tool-validators.d.ts +28 -0
- package/dist/test-helpers/tool-validators.d.ts.map +1 -0
- package/dist/test-helpers/tool-validators.js +56 -0
- package/dist/test-helpers/tool-validators.js.map +1 -0
- package/dist/tools/context-stats.d.ts +1 -0
- package/dist/tools/context-stats.d.ts.map +1 -1
- package/dist/tools/context-stats.js +9 -5
- package/dist/tools/context-stats.js.map +1 -1
- package/dist/tools/context-stats.test.js +24 -10
- package/dist/tools/context-stats.test.js.map +1 -1
- package/dist/tools/get-trace-url.js +2 -2
- package/dist/tools/get-trace-url.js.map +1 -1
- package/dist/tools/health-check.js +2 -2
- package/dist/tools/health-check.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/query-evaluations.d.ts +186 -0
- package/dist/tools/query-evaluations.d.ts.map +1 -0
- package/dist/tools/query-evaluations.js +351 -0
- package/dist/tools/query-evaluations.js.map +1 -0
- package/dist/tools/query-evaluations.test.d.ts +5 -0
- package/dist/tools/query-evaluations.test.d.ts.map +1 -0
- package/dist/tools/query-evaluations.test.js +733 -0
- package/dist/tools/query-evaluations.test.js.map +1 -0
- package/dist/tools/query-llm-events.d.ts +24 -18
- package/dist/tools/query-llm-events.d.ts.map +1 -1
- package/dist/tools/query-llm-events.js +103 -60
- package/dist/tools/query-llm-events.js.map +1 -1
- package/dist/tools/query-llm-events.test.js +271 -9
- package/dist/tools/query-llm-events.test.js.map +1 -1
- package/dist/tools/query-logs.d.ts +28 -20
- package/dist/tools/query-logs.d.ts.map +1 -1
- package/dist/tools/query-logs.js +85 -61
- package/dist/tools/query-logs.js.map +1 -1
- package/dist/tools/query-logs.test.js +74 -145
- package/dist/tools/query-logs.test.js.map +1 -1
- package/dist/tools/query-metrics.d.ts +20 -20
- package/dist/tools/query-metrics.d.ts.map +1 -1
- package/dist/tools/query-metrics.js +109 -61
- package/dist/tools/query-metrics.js.map +1 -1
- package/dist/tools/query-metrics.test.js +26 -61
- package/dist/tools/query-metrics.test.js.map +1 -1
- package/dist/tools/query-traces.d.ts +24 -22
- package/dist/tools/query-traces.d.ts.map +1 -1
- package/dist/tools/query-traces.js +95 -70
- package/dist/tools/query-traces.js.map +1 -1
- package/dist/tools/query-traces.test.js +294 -90
- package/dist/tools/query-traces.test.js.map +1 -1
- package/dist/tools/setup-claudeignore.js +7 -7
- package/dist/tools/setup-claudeignore.js.map +1 -1
- package/dist/tools/setup-claudeignore.test.js +4 -25
- package/dist/tools/setup-claudeignore.test.js.map +1 -1
- package/package.json +3 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validators.d.ts","sourceRoot":"","sources":["../../src/test-helpers/schema-validators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACvC,UAAU,EAAE,MAAM,GACjB,IAAI,CAuCN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACrC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,SAAO,GACd,IAAI,CAwCN;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC3D,UAAU,EAAE,MAAM,GACjB,IAAI,CA8BN"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared test utilities for validating Zod schemas
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it } from 'node:test';
|
|
5
|
+
import * as assert from 'node:assert';
|
|
6
|
+
/**
|
|
7
|
+
* Generate standard backend selection schema tests
|
|
8
|
+
* @param schema - Zod schema with backend field
|
|
9
|
+
* @param schemaName - Name for test descriptions
|
|
10
|
+
*/
|
|
11
|
+
export function validateBackendSchema(schema, schemaName) {
|
|
12
|
+
describe(`${schemaName} backend validation`, () => {
|
|
13
|
+
it('should validate input with backend=local', () => {
|
|
14
|
+
const result = schema.safeParse({ backend: 'local' });
|
|
15
|
+
assert.strictEqual(result.success, true);
|
|
16
|
+
if (result.success) {
|
|
17
|
+
assert.strictEqual(result.data.backend, 'local');
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
it('should validate input with backend=signoz', () => {
|
|
21
|
+
const result = schema.safeParse({ backend: 'signoz' });
|
|
22
|
+
assert.strictEqual(result.success, true);
|
|
23
|
+
if (result.success) {
|
|
24
|
+
assert.strictEqual(result.data.backend, 'signoz');
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
it('should validate input with backend=auto', () => {
|
|
28
|
+
const result = schema.safeParse({ backend: 'auto' });
|
|
29
|
+
assert.strictEqual(result.success, true);
|
|
30
|
+
if (result.success) {
|
|
31
|
+
assert.strictEqual(result.data.backend, 'auto');
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
it('should default backend to auto when not provided', () => {
|
|
35
|
+
const result = schema.safeParse({});
|
|
36
|
+
assert.strictEqual(result.success, true);
|
|
37
|
+
if (result.success) {
|
|
38
|
+
assert.strictEqual(result.data.backend, 'auto');
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
it('should reject invalid backend values', () => {
|
|
42
|
+
const result = schema.safeParse({ backend: 'invalid' });
|
|
43
|
+
assert.strictEqual(result.success, false);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Generate standard limit parameter validation tests
|
|
49
|
+
* @param schema - Zod schema with limit field
|
|
50
|
+
* @param schemaName - Name for test descriptions
|
|
51
|
+
* @param defaultLimit - Expected default limit value
|
|
52
|
+
* @param maxLimit - Maximum allowed limit (optional, defaults to 1000)
|
|
53
|
+
*/
|
|
54
|
+
export function validateLimitSchema(schema, schemaName, defaultLimit, maxLimit = 1000) {
|
|
55
|
+
describe(`${schemaName} limit validation`, () => {
|
|
56
|
+
it(`should use ${defaultLimit} as default limit`, () => {
|
|
57
|
+
const result = schema.safeParse({});
|
|
58
|
+
assert.strictEqual(result.success, true);
|
|
59
|
+
if (result.success) {
|
|
60
|
+
assert.strictEqual(result.data.limit, defaultLimit);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
it('should accept custom limit value', () => {
|
|
64
|
+
const customLimit = Math.floor(defaultLimit / 2) || 25;
|
|
65
|
+
const result = schema.safeParse({ limit: customLimit });
|
|
66
|
+
assert.strictEqual(result.success, true);
|
|
67
|
+
if (result.success) {
|
|
68
|
+
assert.strictEqual(result.data.limit, customLimit);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
it('should accept limit of 1', () => {
|
|
72
|
+
const result = schema.safeParse({ limit: 1 });
|
|
73
|
+
assert.strictEqual(result.success, true);
|
|
74
|
+
if (result.success) {
|
|
75
|
+
assert.strictEqual(result.data.limit, 1);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
it(`should accept max limit value of ${maxLimit}`, () => {
|
|
79
|
+
const result = schema.safeParse({ limit: maxLimit });
|
|
80
|
+
assert.strictEqual(result.success, true);
|
|
81
|
+
if (result.success) {
|
|
82
|
+
assert.strictEqual(result.data.limit, maxLimit);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
it('should reject non-numeric limit', () => {
|
|
86
|
+
const result = schema.safeParse({ limit: 'fifty' });
|
|
87
|
+
assert.strictEqual(result.success, false);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Generate standard date range validation tests
|
|
93
|
+
* @param schema - Zod schema with startDate/endDate fields
|
|
94
|
+
* @param schemaName - Name for test descriptions
|
|
95
|
+
*/
|
|
96
|
+
export function validateDateRangeSchema(schema, schemaName) {
|
|
97
|
+
describe(`${schemaName} date range validation`, () => {
|
|
98
|
+
it('should accept startDate only', () => {
|
|
99
|
+
const result = schema.safeParse({ startDate: '2026-01-01' });
|
|
100
|
+
assert.strictEqual(result.success, true);
|
|
101
|
+
if (result.success) {
|
|
102
|
+
assert.strictEqual(result.data.startDate, '2026-01-01');
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
it('should accept endDate only', () => {
|
|
106
|
+
const result = schema.safeParse({ endDate: '2026-01-31' });
|
|
107
|
+
assert.strictEqual(result.success, true);
|
|
108
|
+
if (result.success) {
|
|
109
|
+
assert.strictEqual(result.data.endDate, '2026-01-31');
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
it('should accept both startDate and endDate', () => {
|
|
113
|
+
const result = schema.safeParse({
|
|
114
|
+
startDate: '2026-01-01',
|
|
115
|
+
endDate: '2026-01-31',
|
|
116
|
+
});
|
|
117
|
+
assert.strictEqual(result.success, true);
|
|
118
|
+
if (result.success) {
|
|
119
|
+
assert.strictEqual(result.data.startDate, '2026-01-01');
|
|
120
|
+
assert.strictEqual(result.data.endDate, '2026-01-31');
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=schema-validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validators.js","sourceRoot":"","sources":["../../src/test-helpers/schema-validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test data builders for creating mock telemetry data
|
|
3
|
+
* Reduces test verbosity and improves consistency
|
|
4
|
+
*/
|
|
5
|
+
/** Base timestamp: 2023-11-14 22:13:20 UTC */
|
|
6
|
+
export declare const TEST_TIMESTAMP_BASE = 1700000000;
|
|
7
|
+
/** Standard test timestamp as [seconds, nanoseconds] */
|
|
8
|
+
export declare const TEST_TIMESTAMP: readonly [1700000000, 0];
|
|
9
|
+
/** Standard ISO timestamp string */
|
|
10
|
+
export declare const TEST_TIMESTAMP_ISO = "2023-11-14T22:13:20.000Z";
|
|
11
|
+
/** Standard test duration: 2.5 seconds as [seconds, nanoseconds] */
|
|
12
|
+
export declare const TEST_DURATION: readonly [2, 500000000];
|
|
13
|
+
/** Standard test duration in milliseconds */
|
|
14
|
+
export declare const TEST_DURATION_MS = 2500;
|
|
15
|
+
/** Mock trace span structure */
|
|
16
|
+
export interface MockSpan {
|
|
17
|
+
traceId: string;
|
|
18
|
+
spanId: string;
|
|
19
|
+
name: string;
|
|
20
|
+
startTime: readonly [number, number] | [number, number];
|
|
21
|
+
endTime?: readonly [number, number] | [number, number];
|
|
22
|
+
duration?: readonly [number, number] | [number, number];
|
|
23
|
+
kind?: number;
|
|
24
|
+
status?: {
|
|
25
|
+
code: number;
|
|
26
|
+
message?: string;
|
|
27
|
+
};
|
|
28
|
+
resource?: {
|
|
29
|
+
serviceName?: string;
|
|
30
|
+
serviceVersion?: string;
|
|
31
|
+
[key: string]: unknown;
|
|
32
|
+
};
|
|
33
|
+
attributes?: Record<string, unknown>;
|
|
34
|
+
instrumentationScope?: {
|
|
35
|
+
name: string;
|
|
36
|
+
version?: string;
|
|
37
|
+
schemaUrl?: string;
|
|
38
|
+
};
|
|
39
|
+
links?: Array<{
|
|
40
|
+
traceId: string;
|
|
41
|
+
spanId: string;
|
|
42
|
+
attributes?: Record<string, unknown>;
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
/** Mock log record structure */
|
|
46
|
+
export interface MockLog {
|
|
47
|
+
timestamp: string | readonly [number, number] | [number, number];
|
|
48
|
+
body: string;
|
|
49
|
+
severity?: string;
|
|
50
|
+
severityText?: string;
|
|
51
|
+
traceId?: string;
|
|
52
|
+
spanId?: string;
|
|
53
|
+
attributes?: Record<string, unknown>;
|
|
54
|
+
instrumentationScope?: {
|
|
55
|
+
name: string;
|
|
56
|
+
version?: string;
|
|
57
|
+
schemaUrl?: string;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** Mock metric structure */
|
|
61
|
+
export interface MockMetric {
|
|
62
|
+
timestamp: string;
|
|
63
|
+
name: string;
|
|
64
|
+
value: number;
|
|
65
|
+
type: 'counter' | 'gauge' | 'histogram';
|
|
66
|
+
unit?: string;
|
|
67
|
+
resource?: {
|
|
68
|
+
serviceName?: string;
|
|
69
|
+
[key: string]: unknown;
|
|
70
|
+
};
|
|
71
|
+
attributes?: Record<string, unknown>;
|
|
72
|
+
histogram?: {
|
|
73
|
+
buckets: Array<{
|
|
74
|
+
le: number;
|
|
75
|
+
count: number;
|
|
76
|
+
}>;
|
|
77
|
+
sum: number;
|
|
78
|
+
count: number;
|
|
79
|
+
};
|
|
80
|
+
exemplars?: Array<{
|
|
81
|
+
traceId: string;
|
|
82
|
+
spanId: string;
|
|
83
|
+
value: number;
|
|
84
|
+
timestamp: string;
|
|
85
|
+
}>;
|
|
86
|
+
}
|
|
87
|
+
/** Mock LLM event structure */
|
|
88
|
+
export interface MockLLMEvent {
|
|
89
|
+
timestamp: string;
|
|
90
|
+
name: string;
|
|
91
|
+
attributes: {
|
|
92
|
+
'gen_ai.request.model'?: string;
|
|
93
|
+
'gen_ai.system'?: string;
|
|
94
|
+
'gen_ai.usage.input_tokens'?: number;
|
|
95
|
+
'gen_ai.usage.output_tokens'?: number;
|
|
96
|
+
'gen_ai.usage.cache_read_input_tokens'?: number;
|
|
97
|
+
'gen_ai.usage.cache_creation_input_tokens'?: number;
|
|
98
|
+
'duration_ms'?: number;
|
|
99
|
+
'success'?: boolean;
|
|
100
|
+
'error'?: string;
|
|
101
|
+
[key: string]: unknown;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/** Mock evaluation structure */
|
|
105
|
+
export interface MockEvaluation {
|
|
106
|
+
timestamp: string;
|
|
107
|
+
traceId?: string;
|
|
108
|
+
attributes: {
|
|
109
|
+
'gen_ai.evaluation.name': string;
|
|
110
|
+
'gen_ai.evaluation.score.value'?: number;
|
|
111
|
+
'gen_ai.evaluation.score.label'?: string;
|
|
112
|
+
'gen_ai.evaluation.explanation'?: string;
|
|
113
|
+
'gen_ai.response.id'?: string;
|
|
114
|
+
'gen_ai.evaluation.evaluator'?: string;
|
|
115
|
+
'gen_ai.evaluation.evaluator_type'?: 'human' | 'llm' | 'rule' | 'classifier';
|
|
116
|
+
[key: string]: unknown;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Reset all counters (call in beforeEach if needed)
|
|
121
|
+
*/
|
|
122
|
+
export declare function resetBuilderCounters(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Create a mock trace span with sensible defaults
|
|
125
|
+
* @param overrides - Fields to override
|
|
126
|
+
* @returns Mock span object
|
|
127
|
+
*/
|
|
128
|
+
export declare function createMockSpan(overrides?: Partial<MockSpan>): MockSpan;
|
|
129
|
+
/**
|
|
130
|
+
* Create multiple mock spans with auto-incrementing IDs
|
|
131
|
+
* @param count - Number of spans to create
|
|
132
|
+
* @param overrides - Fields to override on all spans (can be function for dynamic values)
|
|
133
|
+
* @returns Array of mock spans
|
|
134
|
+
*/
|
|
135
|
+
export declare function createMockSpans(count: number, overrides?: Partial<MockSpan> | ((index: number) => Partial<MockSpan>)): MockSpan[];
|
|
136
|
+
/**
|
|
137
|
+
* Create a mock log record with sensible defaults
|
|
138
|
+
* @param overrides - Fields to override
|
|
139
|
+
* @returns Mock log object
|
|
140
|
+
*/
|
|
141
|
+
export declare function createMockLog(overrides?: Partial<MockLog>): MockLog;
|
|
142
|
+
/**
|
|
143
|
+
* Create multiple mock logs
|
|
144
|
+
* @param count - Number of logs to create
|
|
145
|
+
* @param overrides - Fields to override on all logs (can be function for dynamic values)
|
|
146
|
+
* @returns Array of mock logs
|
|
147
|
+
*/
|
|
148
|
+
export declare function createMockLogs(count: number, overrides?: Partial<MockLog> | ((index: number) => Partial<MockLog>)): MockLog[];
|
|
149
|
+
/**
|
|
150
|
+
* Create a mock metric with sensible defaults
|
|
151
|
+
* @param overrides - Fields to override
|
|
152
|
+
* @returns Mock metric object
|
|
153
|
+
*/
|
|
154
|
+
export declare function createMockMetric(overrides?: Partial<MockMetric>): MockMetric;
|
|
155
|
+
/**
|
|
156
|
+
* Create multiple mock metrics
|
|
157
|
+
* @param count - Number of metrics to create
|
|
158
|
+
* @param overrides - Fields to override on all metrics (can be function for dynamic values)
|
|
159
|
+
* @returns Array of mock metrics
|
|
160
|
+
*/
|
|
161
|
+
export declare function createMockMetrics(count: number, overrides?: Partial<MockMetric> | ((index: number) => Partial<MockMetric>)): MockMetric[];
|
|
162
|
+
/**
|
|
163
|
+
* Create a mock LLM event with sensible defaults
|
|
164
|
+
* @param overrides - Fields to override
|
|
165
|
+
* @returns Mock LLM event object
|
|
166
|
+
*/
|
|
167
|
+
export declare function createMockLLMEvent(overrides?: Partial<MockLLMEvent>): MockLLMEvent;
|
|
168
|
+
/**
|
|
169
|
+
* Create multiple mock LLM events
|
|
170
|
+
* @param count - Number of events to create
|
|
171
|
+
* @param overrides - Fields to override on all events (can be function for dynamic values)
|
|
172
|
+
* @returns Array of mock LLM events
|
|
173
|
+
*/
|
|
174
|
+
export declare function createMockLLMEvents(count: number, overrides?: Partial<MockLLMEvent> | ((index: number) => Partial<MockLLMEvent>)): MockLLMEvent[];
|
|
175
|
+
/**
|
|
176
|
+
* Create a mock evaluation with sensible defaults
|
|
177
|
+
* @param overrides - Fields to override
|
|
178
|
+
* @returns Mock evaluation object
|
|
179
|
+
*/
|
|
180
|
+
export declare function createMockEvaluation(overrides?: Partial<MockEvaluation>): MockEvaluation;
|
|
181
|
+
/**
|
|
182
|
+
* Create multiple mock evaluations
|
|
183
|
+
* @param count - Number of evaluations to create
|
|
184
|
+
* @param overrides - Fields to override on all evaluations (can be function for dynamic values)
|
|
185
|
+
* @returns Array of mock evaluations
|
|
186
|
+
*/
|
|
187
|
+
export declare function createMockEvaluations(count: number, overrides?: Partial<MockEvaluation> | ((index: number) => Partial<MockEvaluation>)): MockEvaluation[];
|
|
188
|
+
/**
|
|
189
|
+
* Create a span with HTTP attributes
|
|
190
|
+
*/
|
|
191
|
+
export declare function createHttpSpan(method: string, statusCode: number, overrides?: Partial<MockSpan>): MockSpan;
|
|
192
|
+
/**
|
|
193
|
+
* Create a span with database attributes
|
|
194
|
+
*/
|
|
195
|
+
export declare function createDbSpan(operation: string, system: string, overrides?: Partial<MockSpan>): MockSpan;
|
|
196
|
+
/**
|
|
197
|
+
* Create an error log
|
|
198
|
+
*/
|
|
199
|
+
export declare function createErrorLog(message: string, overrides?: Partial<MockLog>): MockLog;
|
|
200
|
+
/**
|
|
201
|
+
* Create a log with trace correlation
|
|
202
|
+
*/
|
|
203
|
+
export declare function createCorrelatedLog(traceId: string, spanId: string, overrides?: Partial<MockLog>): MockLog;
|
|
204
|
+
/**
|
|
205
|
+
* Create a histogram metric
|
|
206
|
+
*/
|
|
207
|
+
export declare function createHistogramMetric(name: string, buckets: Array<{
|
|
208
|
+
le: number;
|
|
209
|
+
count: number;
|
|
210
|
+
}>, overrides?: Partial<MockMetric>): MockMetric;
|
|
211
|
+
/**
|
|
212
|
+
* Create an LLM event with token usage
|
|
213
|
+
*/
|
|
214
|
+
export declare function createLLMEventWithTokens(inputTokens: number, outputTokens: number, overrides?: Partial<MockLLMEvent>): MockLLMEvent;
|
|
215
|
+
/**
|
|
216
|
+
* Create an evaluation with specific score
|
|
217
|
+
*/
|
|
218
|
+
export declare function createScoredEvaluation(name: string, score: number, overrides?: Partial<MockEvaluation>): MockEvaluation;
|
|
219
|
+
/**
|
|
220
|
+
* Create an evaluation with label (pass/fail)
|
|
221
|
+
*/
|
|
222
|
+
export declare function createLabeledEvaluation(name: string, label: string, overrides?: Partial<MockEvaluation>): MockEvaluation;
|
|
223
|
+
//# sourceMappingURL=test-data-builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-data-builders.d.ts","sourceRoot":"","sources":["../../src/test-helpers/test-data-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test data builders for creating mock telemetry data
|
|
3
|
+
* Reduces test verbosity and improves consistency
|
|
4
|
+
*/
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// Constants
|
|
7
|
+
// ============================================================================
|
|
8
|
+
/** Base timestamp: 2023-11-14 22:13:20 UTC */
|
|
9
|
+
export const TEST_TIMESTAMP_BASE = 1700000000;
|
|
10
|
+
/** Standard test timestamp as [seconds, nanoseconds] */
|
|
11
|
+
export const TEST_TIMESTAMP = [TEST_TIMESTAMP_BASE, 0];
|
|
12
|
+
/** Standard ISO timestamp string */
|
|
13
|
+
export const TEST_TIMESTAMP_ISO = '2023-11-14T22:13:20.000Z';
|
|
14
|
+
/** Standard test duration: 2.5 seconds as [seconds, nanoseconds] */
|
|
15
|
+
export const TEST_DURATION = [2, 500000000];
|
|
16
|
+
/** Standard test duration in milliseconds */
|
|
17
|
+
export const TEST_DURATION_MS = 2500;
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Builder Functions
|
|
20
|
+
// ============================================================================
|
|
21
|
+
let spanCounter = 0;
|
|
22
|
+
let logCounter = 0;
|
|
23
|
+
let metricCounter = 0;
|
|
24
|
+
let llmEventCounter = 0;
|
|
25
|
+
let evalCounter = 0;
|
|
26
|
+
/**
|
|
27
|
+
* Reset all counters (call in beforeEach if needed)
|
|
28
|
+
*/
|
|
29
|
+
export function resetBuilderCounters() {
|
|
30
|
+
spanCounter = 0;
|
|
31
|
+
logCounter = 0;
|
|
32
|
+
metricCounter = 0;
|
|
33
|
+
llmEventCounter = 0;
|
|
34
|
+
evalCounter = 0;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a mock trace span with sensible defaults
|
|
38
|
+
* @param overrides - Fields to override
|
|
39
|
+
* @returns Mock span object
|
|
40
|
+
*/
|
|
41
|
+
export function createMockSpan(overrides) {
|
|
42
|
+
const id = ++spanCounter;
|
|
43
|
+
return {
|
|
44
|
+
traceId: `trace${id}`,
|
|
45
|
+
spanId: `span${id}`,
|
|
46
|
+
name: `test-operation-${id}`,
|
|
47
|
+
startTime: [...TEST_TIMESTAMP],
|
|
48
|
+
...overrides,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create multiple mock spans with auto-incrementing IDs
|
|
53
|
+
* @param count - Number of spans to create
|
|
54
|
+
* @param overrides - Fields to override on all spans (can be function for dynamic values)
|
|
55
|
+
* @returns Array of mock spans
|
|
56
|
+
*/
|
|
57
|
+
export function createMockSpans(count, overrides) {
|
|
58
|
+
return Array.from({ length: count }, (_, i) => {
|
|
59
|
+
const dynamicOverrides = typeof overrides === 'function' ? overrides(i) : overrides;
|
|
60
|
+
return createMockSpan(dynamicOverrides);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create a mock log record with sensible defaults
|
|
65
|
+
* @param overrides - Fields to override
|
|
66
|
+
* @returns Mock log object
|
|
67
|
+
*/
|
|
68
|
+
export function createMockLog(overrides) {
|
|
69
|
+
const id = ++logCounter;
|
|
70
|
+
return {
|
|
71
|
+
timestamp: TEST_TIMESTAMP_ISO,
|
|
72
|
+
body: `Test log message ${id}`,
|
|
73
|
+
...overrides,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Create multiple mock logs
|
|
78
|
+
* @param count - Number of logs to create
|
|
79
|
+
* @param overrides - Fields to override on all logs (can be function for dynamic values)
|
|
80
|
+
* @returns Array of mock logs
|
|
81
|
+
*/
|
|
82
|
+
export function createMockLogs(count, overrides) {
|
|
83
|
+
return Array.from({ length: count }, (_, i) => {
|
|
84
|
+
const dynamicOverrides = typeof overrides === 'function' ? overrides(i) : overrides;
|
|
85
|
+
return createMockLog(dynamicOverrides);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create a mock metric with sensible defaults
|
|
90
|
+
* @param overrides - Fields to override
|
|
91
|
+
* @returns Mock metric object
|
|
92
|
+
*/
|
|
93
|
+
export function createMockMetric(overrides) {
|
|
94
|
+
const id = ++metricCounter;
|
|
95
|
+
return {
|
|
96
|
+
timestamp: TEST_TIMESTAMP_ISO,
|
|
97
|
+
name: `test.metric.${id}`,
|
|
98
|
+
value: 100,
|
|
99
|
+
type: 'counter',
|
|
100
|
+
...overrides,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Create multiple mock metrics
|
|
105
|
+
* @param count - Number of metrics to create
|
|
106
|
+
* @param overrides - Fields to override on all metrics (can be function for dynamic values)
|
|
107
|
+
* @returns Array of mock metrics
|
|
108
|
+
*/
|
|
109
|
+
export function createMockMetrics(count, overrides) {
|
|
110
|
+
return Array.from({ length: count }, (_, i) => {
|
|
111
|
+
const dynamicOverrides = typeof overrides === 'function' ? overrides(i) : overrides;
|
|
112
|
+
return createMockMetric(dynamicOverrides);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Create a mock LLM event with sensible defaults
|
|
117
|
+
* @param overrides - Fields to override
|
|
118
|
+
* @returns Mock LLM event object
|
|
119
|
+
*/
|
|
120
|
+
export function createMockLLMEvent(overrides) {
|
|
121
|
+
const id = ++llmEventCounter;
|
|
122
|
+
const { attributes: attrOverrides, ...restOverrides } = overrides || {};
|
|
123
|
+
return {
|
|
124
|
+
timestamp: TEST_TIMESTAMP_ISO,
|
|
125
|
+
name: 'llm.completion',
|
|
126
|
+
attributes: {
|
|
127
|
+
'gen_ai.request.model': 'claude-3-opus',
|
|
128
|
+
'gen_ai.system': 'anthropic',
|
|
129
|
+
'gen_ai.usage.input_tokens': 100,
|
|
130
|
+
'gen_ai.usage.output_tokens': 50,
|
|
131
|
+
'duration_ms': 1500,
|
|
132
|
+
'success': true,
|
|
133
|
+
...attrOverrides,
|
|
134
|
+
},
|
|
135
|
+
...restOverrides,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Create multiple mock LLM events
|
|
140
|
+
* @param count - Number of events to create
|
|
141
|
+
* @param overrides - Fields to override on all events (can be function for dynamic values)
|
|
142
|
+
* @returns Array of mock LLM events
|
|
143
|
+
*/
|
|
144
|
+
export function createMockLLMEvents(count, overrides) {
|
|
145
|
+
return Array.from({ length: count }, (_, i) => {
|
|
146
|
+
const dynamicOverrides = typeof overrides === 'function' ? overrides(i) : overrides;
|
|
147
|
+
return createMockLLMEvent(dynamicOverrides);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Create a mock evaluation with sensible defaults
|
|
152
|
+
* @param overrides - Fields to override
|
|
153
|
+
* @returns Mock evaluation object
|
|
154
|
+
*/
|
|
155
|
+
export function createMockEvaluation(overrides) {
|
|
156
|
+
const id = ++evalCounter;
|
|
157
|
+
const { attributes: attrOverrides, ...restOverrides } = overrides || {};
|
|
158
|
+
return {
|
|
159
|
+
timestamp: TEST_TIMESTAMP_ISO,
|
|
160
|
+
attributes: {
|
|
161
|
+
'gen_ai.evaluation.name': `Evaluation-${id}`,
|
|
162
|
+
'gen_ai.evaluation.score.value': 0.85,
|
|
163
|
+
...attrOverrides,
|
|
164
|
+
},
|
|
165
|
+
...restOverrides,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Create multiple mock evaluations
|
|
170
|
+
* @param count - Number of evaluations to create
|
|
171
|
+
* @param overrides - Fields to override on all evaluations (can be function for dynamic values)
|
|
172
|
+
* @returns Array of mock evaluations
|
|
173
|
+
*/
|
|
174
|
+
export function createMockEvaluations(count, overrides) {
|
|
175
|
+
return Array.from({ length: count }, (_, i) => {
|
|
176
|
+
const dynamicOverrides = typeof overrides === 'function' ? overrides(i) : overrides;
|
|
177
|
+
return createMockEvaluation(dynamicOverrides);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
// ============================================================================
|
|
181
|
+
// Specialized Builders
|
|
182
|
+
// ============================================================================
|
|
183
|
+
/**
|
|
184
|
+
* Create a span with HTTP attributes
|
|
185
|
+
*/
|
|
186
|
+
export function createHttpSpan(method, statusCode, overrides) {
|
|
187
|
+
const { attributes: attrOverrides, ...restOverrides } = overrides || {};
|
|
188
|
+
return createMockSpan({
|
|
189
|
+
name: 'http-request',
|
|
190
|
+
kind: 2, // CLIENT
|
|
191
|
+
attributes: {
|
|
192
|
+
'http.method': method,
|
|
193
|
+
'http.status_code': statusCode,
|
|
194
|
+
...attrOverrides,
|
|
195
|
+
},
|
|
196
|
+
...restOverrides,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Create a span with database attributes
|
|
201
|
+
*/
|
|
202
|
+
export function createDbSpan(operation, system, overrides) {
|
|
203
|
+
const { attributes: attrOverrides, ...restOverrides } = overrides || {};
|
|
204
|
+
return createMockSpan({
|
|
205
|
+
name: `db-${operation.toLowerCase()}`,
|
|
206
|
+
kind: 2, // CLIENT
|
|
207
|
+
attributes: {
|
|
208
|
+
'db.operation': operation,
|
|
209
|
+
'db.system': system,
|
|
210
|
+
...attrOverrides,
|
|
211
|
+
},
|
|
212
|
+
...restOverrides,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Create an error log
|
|
217
|
+
*/
|
|
218
|
+
export function createErrorLog(message, overrides) {
|
|
219
|
+
return createMockLog({
|
|
220
|
+
body: message,
|
|
221
|
+
severity: 'ERROR',
|
|
222
|
+
...overrides,
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Create a log with trace correlation
|
|
227
|
+
*/
|
|
228
|
+
export function createCorrelatedLog(traceId, spanId, overrides) {
|
|
229
|
+
return createMockLog({
|
|
230
|
+
traceId,
|
|
231
|
+
spanId,
|
|
232
|
+
...overrides,
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Create a histogram metric
|
|
237
|
+
*/
|
|
238
|
+
export function createHistogramMetric(name, buckets, overrides) {
|
|
239
|
+
const sum = buckets.reduce((acc, b) => acc + b.count * b.le, 0);
|
|
240
|
+
const count = buckets[buckets.length - 1]?.count || 0;
|
|
241
|
+
return createMockMetric({
|
|
242
|
+
name,
|
|
243
|
+
type: 'histogram',
|
|
244
|
+
value: sum / count, // average
|
|
245
|
+
histogram: { buckets, sum, count },
|
|
246
|
+
...overrides,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Create an LLM event with token usage
|
|
251
|
+
*/
|
|
252
|
+
export function createLLMEventWithTokens(inputTokens, outputTokens, overrides) {
|
|
253
|
+
return createMockLLMEvent({
|
|
254
|
+
...overrides,
|
|
255
|
+
attributes: {
|
|
256
|
+
'gen_ai.usage.input_tokens': inputTokens,
|
|
257
|
+
'gen_ai.usage.output_tokens': outputTokens,
|
|
258
|
+
...overrides?.attributes,
|
|
259
|
+
},
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Create an evaluation with specific score
|
|
264
|
+
*/
|
|
265
|
+
export function createScoredEvaluation(name, score, overrides) {
|
|
266
|
+
return createMockEvaluation({
|
|
267
|
+
...overrides,
|
|
268
|
+
attributes: {
|
|
269
|
+
'gen_ai.evaluation.name': name,
|
|
270
|
+
'gen_ai.evaluation.score.value': score,
|
|
271
|
+
...overrides?.attributes,
|
|
272
|
+
},
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Create an evaluation with label (pass/fail)
|
|
277
|
+
*/
|
|
278
|
+
export function createLabeledEvaluation(name, label, overrides) {
|
|
279
|
+
return createMockEvaluation({
|
|
280
|
+
...overrides,
|
|
281
|
+
attributes: {
|
|
282
|
+
'gen_ai.evaluation.name': name,
|
|
283
|
+
'gen_ai.evaluation.score.label': label,
|
|
284
|
+
...overrides?.attributes,
|
|
285
|
+
},
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=test-data-builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-data-builders.js","sourceRoot":"","sources":["../../src/test-helpers/test-data-builders.ts"],"names":[],"mappings":"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"}
|