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
|
@@ -4,23 +4,23 @@
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import type { TelemetryBackend } from '../backends/index.js';
|
|
6
6
|
export declare const queryTracesSchema: z.ZodObject<{
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
8
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
9
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
10
|
+
operationName: z.ZodOptional<z.ZodEnum<["chat", "embeddings", "invoke_agent", "execute_tool"]>>;
|
|
10
11
|
serviceName: z.ZodOptional<z.ZodString>;
|
|
11
12
|
spanName: z.ZodOptional<z.ZodString>;
|
|
12
13
|
minDurationMs: z.ZodOptional<z.ZodNumber>;
|
|
13
14
|
maxDurationMs: z.ZodOptional<z.ZodNumber>;
|
|
14
|
-
attributeFilter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]
|
|
15
|
+
attributeFilter: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>, Record<string, string | number | boolean> | undefined, Record<string, string | number | boolean> | undefined>;
|
|
15
16
|
agentId: z.ZodOptional<z.ZodString>;
|
|
16
17
|
agentName: z.ZodOptional<z.ZodString>;
|
|
17
18
|
toolName: z.ZodOptional<z.ZodString>;
|
|
18
19
|
toolCallId: z.ZodOptional<z.ZodString>;
|
|
19
20
|
toolType: z.ZodOptional<z.ZodString>;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
limit: z.ZodDefault<z.ZodNumber>;
|
|
21
|
+
traceId: z.ZodOptional<z.ZodString>;
|
|
22
|
+
sessionId: z.ZodOptional<z.ZodString>;
|
|
23
|
+
backend: z.ZodDefault<z.ZodEnum<["local", "signoz", "auto"]>>;
|
|
24
24
|
}, "strip", z.ZodTypeAny, {
|
|
25
25
|
limit: number;
|
|
26
26
|
backend: "local" | "signoz" | "auto";
|
|
@@ -37,8 +37,8 @@ export declare const queryTracesSchema: z.ZodObject<{
|
|
|
37
37
|
toolType?: string | undefined;
|
|
38
38
|
operationName?: "chat" | "embeddings" | "invoke_agent" | "execute_tool" | undefined;
|
|
39
39
|
sessionId?: string | undefined;
|
|
40
|
-
startDate?: string | undefined;
|
|
41
40
|
endDate?: string | undefined;
|
|
41
|
+
startDate?: string | undefined;
|
|
42
42
|
}, {
|
|
43
43
|
limit?: number | undefined;
|
|
44
44
|
backend?: "local" | "signoz" | "auto" | undefined;
|
|
@@ -55,8 +55,8 @@ export declare const queryTracesSchema: z.ZodObject<{
|
|
|
55
55
|
toolType?: string | undefined;
|
|
56
56
|
operationName?: "chat" | "embeddings" | "invoke_agent" | "execute_tool" | undefined;
|
|
57
57
|
sessionId?: string | undefined;
|
|
58
|
-
startDate?: string | undefined;
|
|
59
58
|
endDate?: string | undefined;
|
|
59
|
+
startDate?: string | undefined;
|
|
60
60
|
}>;
|
|
61
61
|
export type QueryTracesInput = z.input<typeof queryTracesSchema>;
|
|
62
62
|
export interface QueryTracesOptions {
|
|
@@ -64,8 +64,6 @@ export interface QueryTracesOptions {
|
|
|
64
64
|
signozBackend?: TelemetryBackend;
|
|
65
65
|
}
|
|
66
66
|
export declare function queryTraces(rawInput: QueryTracesInput, options?: QueryTracesOptions): Promise<{
|
|
67
|
-
backend: string;
|
|
68
|
-
count: number;
|
|
69
67
|
traces: {
|
|
70
68
|
traceId: string;
|
|
71
69
|
spanId: string;
|
|
@@ -78,28 +76,32 @@ export declare function queryTraces(rawInput: QueryTracesInput, options?: QueryT
|
|
|
78
76
|
} | undefined;
|
|
79
77
|
attributes: Record<string, unknown> | undefined;
|
|
80
78
|
}[];
|
|
79
|
+
truncated?: boolean | undefined;
|
|
80
|
+
originalCount?: number | undefined;
|
|
81
|
+
backend: string;
|
|
82
|
+
count: number;
|
|
81
83
|
}>;
|
|
82
84
|
export declare const queryTracesTool: {
|
|
83
85
|
name: string;
|
|
84
86
|
description: string;
|
|
85
87
|
inputSchema: z.ZodObject<{
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
89
|
+
startDate: z.ZodOptional<z.ZodString>;
|
|
90
|
+
endDate: z.ZodOptional<z.ZodString>;
|
|
91
|
+
operationName: z.ZodOptional<z.ZodEnum<["chat", "embeddings", "invoke_agent", "execute_tool"]>>;
|
|
89
92
|
serviceName: z.ZodOptional<z.ZodString>;
|
|
90
93
|
spanName: z.ZodOptional<z.ZodString>;
|
|
91
94
|
minDurationMs: z.ZodOptional<z.ZodNumber>;
|
|
92
95
|
maxDurationMs: z.ZodOptional<z.ZodNumber>;
|
|
93
|
-
attributeFilter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]
|
|
96
|
+
attributeFilter: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>, Record<string, string | number | boolean> | undefined, Record<string, string | number | boolean> | undefined>;
|
|
94
97
|
agentId: z.ZodOptional<z.ZodString>;
|
|
95
98
|
agentName: z.ZodOptional<z.ZodString>;
|
|
96
99
|
toolName: z.ZodOptional<z.ZodString>;
|
|
97
100
|
toolCallId: z.ZodOptional<z.ZodString>;
|
|
98
101
|
toolType: z.ZodOptional<z.ZodString>;
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
limit: z.ZodDefault<z.ZodNumber>;
|
|
102
|
+
traceId: z.ZodOptional<z.ZodString>;
|
|
103
|
+
sessionId: z.ZodOptional<z.ZodString>;
|
|
104
|
+
backend: z.ZodDefault<z.ZodEnum<["local", "signoz", "auto"]>>;
|
|
103
105
|
}, "strip", z.ZodTypeAny, {
|
|
104
106
|
limit: number;
|
|
105
107
|
backend: "local" | "signoz" | "auto";
|
|
@@ -116,8 +118,8 @@ export declare const queryTracesTool: {
|
|
|
116
118
|
toolType?: string | undefined;
|
|
117
119
|
operationName?: "chat" | "embeddings" | "invoke_agent" | "execute_tool" | undefined;
|
|
118
120
|
sessionId?: string | undefined;
|
|
119
|
-
startDate?: string | undefined;
|
|
120
121
|
endDate?: string | undefined;
|
|
122
|
+
startDate?: string | undefined;
|
|
121
123
|
}, {
|
|
122
124
|
limit?: number | undefined;
|
|
123
125
|
backend?: "local" | "signoz" | "auto" | undefined;
|
|
@@ -134,8 +136,8 @@ export declare const queryTracesTool: {
|
|
|
134
136
|
toolType?: string | undefined;
|
|
135
137
|
operationName?: "chat" | "embeddings" | "invoke_agent" | "execute_tool" | undefined;
|
|
136
138
|
sessionId?: string | undefined;
|
|
137
|
-
startDate?: string | undefined;
|
|
138
139
|
endDate?: string | undefined;
|
|
140
|
+
startDate?: string | undefined;
|
|
139
141
|
}>;
|
|
140
142
|
handler: typeof queryTraces;
|
|
141
143
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-traces.d.ts","sourceRoot":"","sources":["../../src/tools/query-traces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"query-traces.d.ts","sourceRoot":"","sources":["../../src/tools/query-traces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAiB7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAGjE,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,aAAa,CAAC,EAAE,gBAAgB,CAAC;CAClC;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;;;;;GAqGzF;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3B,CAAC"}
|
|
@@ -4,61 +4,97 @@
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { MultiDirectoryBackend } from '../backends/local-jsonl.js';
|
|
6
6
|
import { SigNozApiBackend } from '../backends/signoz-api.js';
|
|
7
|
-
import { SIGNOZ_URL, SIGNOZ_API_KEY } from '../lib/constants.js';
|
|
7
|
+
import { SIGNOZ_URL, SIGNOZ_API_KEY, MAX_RESULTS_IN_MEMORY } from '../lib/constants.js';
|
|
8
|
+
import { enforceMemoryLimit } from '../lib/file-utils.js';
|
|
9
|
+
import { validateLimit, validateDuration, validateDateRange, validateRegexPattern, InputValidationError, } from '../lib/input-validator.js';
|
|
10
|
+
import { backendSchema, sessionSchema, traceIdSchema, dateRangeSchema, paginationSchema, operationNameSchema, } from '../lib/shared-schemas.js';
|
|
8
11
|
export const queryTracesSchema = z.object({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
serviceName: z.string().optional().describe('
|
|
13
|
-
spanName: z.string().optional().describe('
|
|
14
|
-
minDurationMs: z.number().optional().describe('
|
|
15
|
-
maxDurationMs: z.number().optional().describe('
|
|
16
|
-
attributeFilter: z.record(z.union([z.string(), z.number(), z.boolean()])).optional().
|
|
12
|
+
...backendSchema,
|
|
13
|
+
...sessionSchema,
|
|
14
|
+
...traceIdSchema,
|
|
15
|
+
serviceName: z.string().max(256).optional().describe('Service name'),
|
|
16
|
+
spanName: z.string().max(512).optional().describe('Span name (substring)'),
|
|
17
|
+
minDurationMs: z.number().optional().describe('Min duration (ms)'),
|
|
18
|
+
maxDurationMs: z.number().optional().describe('Max duration (ms)'),
|
|
19
|
+
attributeFilter: z.record(z.string().max(100).regex(/^[a-zA-Z0-9_.]+$/, 'Invalid attribute name'), z.union([z.string().max(500), z.number().finite(), z.boolean()])).optional().refine(filter => !filter || Object.keys(filter).length <= 20, 'Maximum 20 attribute filters allowed').describe('Attribute filters (max 20)'),
|
|
17
20
|
// OTel GenAI agent/tool filters
|
|
18
|
-
agentId: z.string().optional().describe('
|
|
19
|
-
agentName: z.string().optional().describe('
|
|
20
|
-
toolName: z.string().optional().describe('
|
|
21
|
-
toolCallId: z.string().optional().describe('
|
|
22
|
-
toolType: z.string().optional().describe('
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
limit: z.number().max(1000).default(50).describe('Maximum number of results'),
|
|
21
|
+
agentId: z.string().max(128).optional().describe('Agent ID (gen_ai.agent.id)'),
|
|
22
|
+
agentName: z.string().max(256).optional().describe('Agent name (gen_ai.agent.name)'),
|
|
23
|
+
toolName: z.string().max(256).optional().describe('Tool name (gen_ai.tool.name)'),
|
|
24
|
+
toolCallId: z.string().max(128).optional().describe('Tool call ID'),
|
|
25
|
+
toolType: z.string().max(128).optional().describe('Tool type'),
|
|
26
|
+
...operationNameSchema,
|
|
27
|
+
...dateRangeSchema,
|
|
28
|
+
...paginationSchema,
|
|
27
29
|
});
|
|
28
30
|
export async function queryTraces(rawInput, options) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
31
|
+
try {
|
|
32
|
+
const input = queryTracesSchema.parse(rawInput);
|
|
33
|
+
// Validate inputs
|
|
34
|
+
const validatedLimit = validateLimit(input.limit);
|
|
35
|
+
const validatedMinDuration = validateDuration(input.minDurationMs, 'minDurationMs');
|
|
36
|
+
const validatedMaxDuration = validateDuration(input.maxDurationMs, 'maxDurationMs');
|
|
37
|
+
// Validate date range if provided
|
|
38
|
+
if (input.startDate || input.endDate) {
|
|
39
|
+
validateDateRange(input.startDate, input.endDate);
|
|
40
|
+
}
|
|
41
|
+
// Validate spanName as regex pattern if provided
|
|
42
|
+
if (input.spanName) {
|
|
43
|
+
validateRegexPattern(input.spanName);
|
|
44
|
+
}
|
|
45
|
+
// Merge sessionId into attributeFilter if provided
|
|
46
|
+
const attributeFilter = input.sessionId
|
|
47
|
+
? { ...input.attributeFilter, 'session.id': input.sessionId }
|
|
48
|
+
: input.attributeFilter;
|
|
49
|
+
const queryOptions = {
|
|
50
|
+
traceId: input.traceId,
|
|
51
|
+
serviceName: input.serviceName,
|
|
52
|
+
spanName: input.spanName,
|
|
53
|
+
minDurationMs: validatedMinDuration,
|
|
54
|
+
maxDurationMs: validatedMaxDuration,
|
|
55
|
+
attributeFilter,
|
|
56
|
+
// OTel GenAI agent/tool filters
|
|
57
|
+
agentId: input.agentId,
|
|
58
|
+
agentName: input.agentName,
|
|
59
|
+
toolName: input.toolName,
|
|
60
|
+
toolCallId: input.toolCallId,
|
|
61
|
+
toolType: input.toolType,
|
|
62
|
+
operationName: input.operationName,
|
|
63
|
+
startDate: input.startDate,
|
|
64
|
+
endDate: input.endDate,
|
|
65
|
+
limit: validatedLimit,
|
|
66
|
+
};
|
|
67
|
+
const hasSigNozConfig = SIGNOZ_URL && SIGNOZ_API_KEY;
|
|
68
|
+
const backend = input.backend === 'auto'
|
|
69
|
+
? (hasSigNozConfig ? 'signoz' : 'local')
|
|
70
|
+
: input.backend;
|
|
71
|
+
if (backend === 'local' || input.backend === 'auto') {
|
|
72
|
+
const local = options?.localBackend ?? new MultiDirectoryBackend();
|
|
73
|
+
const rawTraces = await local.queryTraces(queryOptions);
|
|
74
|
+
// Enforce memory limit
|
|
75
|
+
const { results: traces, truncated, originalCount } = enforceMemoryLimit(rawTraces, MAX_RESULTS_IN_MEMORY);
|
|
76
|
+
if (traces.length > 0 || backend === 'local') {
|
|
77
|
+
return {
|
|
78
|
+
backend: 'local',
|
|
79
|
+
count: traces.length,
|
|
80
|
+
...(truncated && { truncated: true, originalCount }),
|
|
81
|
+
traces: traces.map(t => ({
|
|
82
|
+
traceId: t.traceId,
|
|
83
|
+
spanId: t.spanId,
|
|
84
|
+
name: t.name,
|
|
85
|
+
kind: t.kind,
|
|
86
|
+
durationMs: t.durationMs,
|
|
87
|
+
status: t.status,
|
|
88
|
+
attributes: t.attributes,
|
|
89
|
+
})),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (backend === 'signoz' || (input.backend === 'auto' && hasSigNozConfig)) {
|
|
94
|
+
const signoz = options?.signozBackend ?? new SigNozApiBackend();
|
|
95
|
+
const traces = await signoz.queryTraces(queryOptions);
|
|
60
96
|
return {
|
|
61
|
-
backend: '
|
|
97
|
+
backend: 'signoz',
|
|
62
98
|
count: traces.length,
|
|
63
99
|
traces: traces.map(t => ({
|
|
64
100
|
traceId: t.traceId,
|
|
@@ -71,31 +107,20 @@ export async function queryTraces(rawInput, options) {
|
|
|
71
107
|
})),
|
|
72
108
|
};
|
|
73
109
|
}
|
|
110
|
+
// Exhaustive check - TypeScript will error if a new backend is added but not handled
|
|
111
|
+
const _exhaustiveCheck = backend;
|
|
112
|
+
throw new Error(`Unhandled backend: ${_exhaustiveCheck}`);
|
|
74
113
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
count: traces.length,
|
|
81
|
-
traces: traces.map(t => ({
|
|
82
|
-
traceId: t.traceId,
|
|
83
|
-
spanId: t.spanId,
|
|
84
|
-
name: t.name,
|
|
85
|
-
kind: t.kind,
|
|
86
|
-
durationMs: t.durationMs,
|
|
87
|
-
status: t.status,
|
|
88
|
-
attributes: t.attributes,
|
|
89
|
-
})),
|
|
90
|
-
};
|
|
114
|
+
catch (error) {
|
|
115
|
+
if (error instanceof InputValidationError) {
|
|
116
|
+
throw new Error(`Validation error (${error.field}): ${error.message}`);
|
|
117
|
+
}
|
|
118
|
+
throw error;
|
|
91
119
|
}
|
|
92
|
-
// Exhaustive check - TypeScript will error if a new backend is added but not handled
|
|
93
|
-
const _exhaustiveCheck = backend;
|
|
94
|
-
throw new Error(`Unhandled backend: ${_exhaustiveCheck}`);
|
|
95
120
|
}
|
|
96
121
|
export const queryTracesTool = {
|
|
97
122
|
name: 'obs_query_traces',
|
|
98
|
-
description: 'Query traces from local JSONL
|
|
123
|
+
description: 'Query traces from local JSONL or SigNoz. Filter by trace/service/span/duration/date.',
|
|
99
124
|
inputSchema: queryTracesSchema,
|
|
100
125
|
handler: queryTraces,
|
|
101
126
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-traces.js","sourceRoot":"","sources":["../../src/tools/query-traces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-traces.js","sourceRoot":"","sources":["../../src/tools/query-traces.ts"],"names":[],"mappings":"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"}
|