observability-toolkit 1.1.0 → 1.3.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.
Files changed (89) hide show
  1. package/dist/backends/index.d.ts +13 -0
  2. package/dist/backends/index.d.ts.map +1 -1
  3. package/dist/backends/local-jsonl.d.ts +2 -1
  4. package/dist/backends/local-jsonl.d.ts.map +1 -1
  5. package/dist/backends/local-jsonl.js +62 -2
  6. package/dist/backends/local-jsonl.js.map +1 -1
  7. package/dist/backends/local-jsonl.test.d.ts +2 -0
  8. package/dist/backends/local-jsonl.test.d.ts.map +1 -0
  9. package/dist/backends/local-jsonl.test.js +558 -0
  10. package/dist/backends/local-jsonl.test.js.map +1 -0
  11. package/dist/backends/signoz-api.d.ts +9 -2
  12. package/dist/backends/signoz-api.d.ts.map +1 -1
  13. package/dist/backends/signoz-api.js +181 -106
  14. package/dist/backends/signoz-api.js.map +1 -1
  15. package/dist/backends/signoz-api.test.d.ts +2 -0
  16. package/dist/backends/signoz-api.test.d.ts.map +1 -0
  17. package/dist/backends/signoz-api.test.js +904 -0
  18. package/dist/backends/signoz-api.test.js.map +1 -0
  19. package/dist/lib/constants.d.ts +1 -0
  20. package/dist/lib/constants.d.ts.map +1 -1
  21. package/dist/lib/constants.js +3 -0
  22. package/dist/lib/constants.js.map +1 -1
  23. package/dist/lib/constants.test.d.ts +5 -0
  24. package/dist/lib/constants.test.d.ts.map +1 -0
  25. package/dist/lib/constants.test.js +199 -0
  26. package/dist/lib/constants.test.js.map +1 -0
  27. package/dist/lib/file-utils.test.d.ts +2 -0
  28. package/dist/lib/file-utils.test.d.ts.map +1 -0
  29. package/dist/lib/file-utils.test.js +422 -0
  30. package/dist/lib/file-utils.test.js.map +1 -0
  31. package/dist/server.js +5 -1
  32. package/dist/server.js.map +1 -1
  33. package/dist/tools/context-stats.d.ts +2 -2
  34. package/dist/tools/context-stats.d.ts.map +1 -1
  35. package/dist/tools/context-stats.js +2 -1
  36. package/dist/tools/context-stats.js.map +1 -1
  37. package/dist/tools/context-stats.test.d.ts +5 -0
  38. package/dist/tools/context-stats.test.d.ts.map +1 -0
  39. package/dist/tools/context-stats.test.js +339 -0
  40. package/dist/tools/context-stats.test.js.map +1 -0
  41. package/dist/tools/get-trace-url.test.d.ts +5 -0
  42. package/dist/tools/get-trace-url.test.d.ts.map +1 -0
  43. package/dist/tools/get-trace-url.test.js +423 -0
  44. package/dist/tools/get-trace-url.test.js.map +1 -0
  45. package/dist/tools/health-check.test.d.ts +5 -0
  46. package/dist/tools/health-check.test.d.ts.map +1 -0
  47. package/dist/tools/health-check.test.js +393 -0
  48. package/dist/tools/health-check.test.js.map +1 -0
  49. package/dist/tools/index.d.ts +1 -0
  50. package/dist/tools/index.d.ts.map +1 -1
  51. package/dist/tools/index.js +1 -0
  52. package/dist/tools/index.js.map +1 -1
  53. package/dist/tools/query-llm-events.d.ts +82 -0
  54. package/dist/tools/query-llm-events.d.ts.map +1 -0
  55. package/dist/tools/query-llm-events.js +60 -0
  56. package/dist/tools/query-llm-events.js.map +1 -0
  57. package/dist/tools/query-llm-events.test.d.ts +5 -0
  58. package/dist/tools/query-llm-events.test.d.ts.map +1 -0
  59. package/dist/tools/query-llm-events.test.js +111 -0
  60. package/dist/tools/query-llm-events.test.js.map +1 -0
  61. package/dist/tools/query-logs.d.ts +7 -2
  62. package/dist/tools/query-logs.d.ts.map +1 -1
  63. package/dist/tools/query-logs.js +7 -6
  64. package/dist/tools/query-logs.js.map +1 -1
  65. package/dist/tools/query-logs.test.d.ts +5 -0
  66. package/dist/tools/query-logs.test.d.ts.map +1 -0
  67. package/dist/tools/query-logs.test.js +668 -0
  68. package/dist/tools/query-logs.test.js.map +1 -0
  69. package/dist/tools/query-metrics.d.ts +2 -2
  70. package/dist/tools/query-metrics.d.ts.map +1 -1
  71. package/dist/tools/query-metrics.js +2 -1
  72. package/dist/tools/query-metrics.js.map +1 -1
  73. package/dist/tools/query-metrics.test.d.ts +5 -0
  74. package/dist/tools/query-metrics.test.d.ts.map +1 -0
  75. package/dist/tools/query-metrics.test.js +559 -0
  76. package/dist/tools/query-metrics.test.js.map +1 -0
  77. package/dist/tools/query-traces.d.ts +8 -2
  78. package/dist/tools/query-traces.d.ts.map +1 -1
  79. package/dist/tools/query-traces.js +4 -1
  80. package/dist/tools/query-traces.js.map +1 -1
  81. package/dist/tools/query-traces.test.d.ts +5 -0
  82. package/dist/tools/query-traces.test.d.ts.map +1 -0
  83. package/dist/tools/query-traces.test.js +547 -0
  84. package/dist/tools/query-traces.test.js.map +1 -0
  85. package/dist/tools/setup-claudeignore.test.d.ts +2 -0
  86. package/dist/tools/setup-claudeignore.test.d.ts.map +1 -0
  87. package/dist/tools/setup-claudeignore.test.js +236 -0
  88. package/dist/tools/setup-claudeignore.test.js.map +1 -0
  89. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-logs.test.js","sourceRoot":"","sources":["../../src/tools/query-logs.test.ts"],"names":[],"mappings":"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"}
@@ -27,8 +27,8 @@ export declare const queryMetricsSchema: z.ZodObject<{
27
27
  endDate?: string | undefined;
28
28
  limit?: number | undefined;
29
29
  }>;
30
- export type QueryMetricsInput = z.infer<typeof queryMetricsSchema>;
31
- export declare function queryMetrics(input: QueryMetricsInput): Promise<{
30
+ export type QueryMetricsInput = z.input<typeof queryMetricsSchema>;
31
+ export declare function queryMetrics(rawInput: QueryMetricsInput): Promise<{
32
32
  backend: string;
33
33
  count: number;
34
34
  summary: {
@@ -1 +1 @@
1
- {"version":3,"file":"query-metrics.d.ts","sourceRoot":"","sources":["../../src/tools/query-metrics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAQ7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsE1D;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK5B,CAAC"}
1
+ {"version":3,"file":"query-metrics.d.ts","sourceRoot":"","sources":["../../src/tools/query-metrics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAQ7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAAC,QAAQ,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuE7D;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK5B,CAAC"}
@@ -14,7 +14,8 @@ export const queryMetricsSchema = z.object({
14
14
  endDate: z.string().optional().describe('End date (YYYY-MM-DD)'),
15
15
  limit: z.number().default(100).describe('Maximum number of results'),
16
16
  });
17
- export async function queryMetrics(input) {
17
+ export async function queryMetrics(rawInput) {
18
+ const input = queryMetricsSchema.parse(rawInput);
18
19
  const options = {
19
20
  metricName: input.metricName,
20
21
  aggregation: input.aggregation,
@@ -1 +1 @@
1
- {"version":3,"file":"query-metrics.js","sourceRoot":"","sources":["../../src/tools/query-metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-metrics.js","sourceRoot":"","sources":["../../src/tools/query-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Unit tests for query-metrics tool
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=query-metrics.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-metrics.test.d.ts","sourceRoot":"","sources":["../../src/tools/query-metrics.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,559 @@
1
+ /**
2
+ * Unit tests for query-metrics tool
3
+ */
4
+ import { describe, it, mock, beforeEach } from 'node:test';
5
+ import assert from 'node:assert';
6
+ import { queryMetricsSchema } from './query-metrics.js';
7
+ describe('queryMetrics', () => {
8
+ beforeEach(() => {
9
+ // Reset environment variables before each test
10
+ delete process.env.SIGNOZ_URL;
11
+ delete process.env.SIGNOZ_API_KEY;
12
+ });
13
+ describe('schema validation', () => {
14
+ it('should accept valid input with all parameters', () => {
15
+ const input = {
16
+ backend: 'local',
17
+ metricName: 'http_requests',
18
+ aggregation: 'sum',
19
+ groupBy: ['service', 'method'],
20
+ startDate: '2026-01-01',
21
+ endDate: '2026-01-28',
22
+ limit: 50,
23
+ };
24
+ const result = queryMetricsSchema.safeParse(input);
25
+ assert.strictEqual(result.success, true);
26
+ });
27
+ it('should use default backend as auto', () => {
28
+ const input = {
29
+ metricName: 'http_requests',
30
+ };
31
+ const result = queryMetricsSchema.safeParse(input);
32
+ assert.strictEqual(result.success, true);
33
+ assert.strictEqual(result.data?.backend, 'auto');
34
+ });
35
+ it('should use default limit as 100', () => {
36
+ const input = {
37
+ backend: 'local',
38
+ };
39
+ const result = queryMetricsSchema.safeParse(input);
40
+ assert.strictEqual(result.success, true);
41
+ assert.strictEqual(result.data?.limit, 100);
42
+ });
43
+ it('should accept all aggregation types', () => {
44
+ const aggregations = ['sum', 'avg', 'min', 'max', 'count'];
45
+ for (const agg of aggregations) {
46
+ const input = {
47
+ backend: 'local',
48
+ aggregation: agg,
49
+ };
50
+ const result = queryMetricsSchema.safeParse(input);
51
+ assert.strictEqual(result.success, true);
52
+ assert.strictEqual(result.data?.aggregation, agg);
53
+ }
54
+ });
55
+ it('should reject invalid aggregation', () => {
56
+ const input = {
57
+ aggregation: 'invalid',
58
+ };
59
+ const result = queryMetricsSchema.safeParse(input);
60
+ assert.strictEqual(result.success, false);
61
+ });
62
+ it('should reject invalid backend', () => {
63
+ const input = {
64
+ backend: 'invalid',
65
+ };
66
+ const result = queryMetricsSchema.safeParse(input);
67
+ assert.strictEqual(result.success, false);
68
+ });
69
+ it('should accept optional groupBy as array', () => {
70
+ const input = {
71
+ backend: 'local',
72
+ groupBy: ['service', 'status_code', 'method'],
73
+ };
74
+ const result = queryMetricsSchema.safeParse(input);
75
+ assert.strictEqual(result.success, true);
76
+ assert.deepStrictEqual(result.data?.groupBy, ['service', 'status_code', 'method']);
77
+ });
78
+ });
79
+ describe('auto backend selection', () => {
80
+ it('should select local backend when no SigNoz config and auto backend', async () => {
81
+ const mockLocalBackend = mock.fn(async () => [
82
+ {
83
+ timestamp: '2026-01-28T00:00:00Z',
84
+ name: 'http_requests',
85
+ value: 100,
86
+ },
87
+ ]);
88
+ // Mock the LocalJsonlBackend
89
+ const input = {
90
+ backend: 'auto',
91
+ limit: 100,
92
+ };
93
+ // Temporarily patch module loading by mocking fetch/imports
94
+ // Since we're testing the selection logic, verify the condition
95
+ const hasSigNozConfig = false;
96
+ const backend = input.backend === 'auto'
97
+ ? (hasSigNozConfig && input.metricName ? 'signoz' : 'local')
98
+ : input.backend;
99
+ assert.strictEqual(backend, 'local');
100
+ });
101
+ it('should select signoz backend when config exists and metricName provided and auto backend', async () => {
102
+ process.env.SIGNOZ_URL = 'http://localhost:3301';
103
+ process.env.SIGNOZ_API_KEY = 'test-key';
104
+ const input = {
105
+ backend: 'auto',
106
+ metricName: 'http_requests',
107
+ limit: 100,
108
+ };
109
+ const hasSigNozConfig = !!process.env.SIGNOZ_URL && !!process.env.SIGNOZ_API_KEY;
110
+ const backend = input.backend === 'auto'
111
+ ? (hasSigNozConfig && input.metricName ? 'signoz' : 'local')
112
+ : input.backend;
113
+ assert.strictEqual(backend, 'signoz');
114
+ });
115
+ it('should select local backend when SigNoz config exists but no metricName', async () => {
116
+ process.env.SIGNOZ_URL = 'http://localhost:3301';
117
+ process.env.SIGNOZ_API_KEY = 'test-key';
118
+ const input = {
119
+ backend: 'auto',
120
+ limit: 100,
121
+ };
122
+ const hasSigNozConfig = !!process.env.SIGNOZ_URL && !!process.env.SIGNOZ_API_KEY;
123
+ const backend = input.backend === 'auto'
124
+ ? (hasSigNozConfig && input.metricName ? 'signoz' : 'local')
125
+ : input.backend;
126
+ assert.strictEqual(backend, 'local');
127
+ });
128
+ it('should respect explicit backend selection regardless of config', async () => {
129
+ process.env.SIGNOZ_URL = 'http://localhost:3301';
130
+ process.env.SIGNOZ_API_KEY = 'test-key';
131
+ const input = {
132
+ backend: 'local',
133
+ metricName: 'http_requests',
134
+ limit: 100,
135
+ };
136
+ const backend = input.backend === 'auto' ? 'signoz' : input.backend;
137
+ assert.strictEqual(backend, 'local');
138
+ });
139
+ });
140
+ describe('local backend handling', () => {
141
+ it('should return local backend response structure', async () => {
142
+ const mockMetrics = [
143
+ { timestamp: '2026-01-28T10:00:00Z', name: 'cpu_usage', value: 45.5, attributes: {} },
144
+ { timestamp: '2026-01-28T10:01:00Z', name: 'cpu_usage', value: 47.2, attributes: {} },
145
+ { timestamp: '2026-01-28T10:02:00Z', name: 'memory_usage', value: 2048, attributes: {} },
146
+ ];
147
+ // Test the response structure when backend is local
148
+ const input = {
149
+ backend: 'local',
150
+ metricName: 'cpu_usage',
151
+ limit: 100,
152
+ };
153
+ // Verify input gets passed correctly
154
+ assert.strictEqual(input.backend, 'local');
155
+ assert.strictEqual(input.metricName, 'cpu_usage');
156
+ assert.strictEqual(input.limit, 100);
157
+ });
158
+ it('should calculate summary statistics correctly', async () => {
159
+ // Simulate summary calculation logic
160
+ const metrics = [
161
+ { name: 'http_requests', value: 100, timestamp: '2026-01-28T10:00:00Z' },
162
+ { name: 'http_requests', value: 150, timestamp: '2026-01-28T10:01:00Z' },
163
+ { name: 'http_requests', value: 200, timestamp: '2026-01-28T10:02:00Z' },
164
+ { name: 'errors', value: 5, timestamp: '2026-01-28T10:00:00Z' },
165
+ ];
166
+ // Build summary like the handler does
167
+ const byName = new Map();
168
+ for (const m of metrics) {
169
+ const stats = byName.get(m.name) || { count: 0, min: Infinity, max: -Infinity, sum: 0 };
170
+ stats.count++;
171
+ stats.min = Math.min(stats.min, m.value);
172
+ stats.max = Math.max(stats.max, m.value);
173
+ stats.sum += m.value;
174
+ byName.set(m.name, stats);
175
+ }
176
+ const summary = Array.from(byName.entries()).map(([name, stats]) => ({
177
+ name,
178
+ count: stats.count,
179
+ min: stats.min,
180
+ max: stats.max,
181
+ avg: stats.sum / stats.count,
182
+ }));
183
+ assert.strictEqual(summary.length, 2);
184
+ assert.deepStrictEqual(summary[0], {
185
+ name: 'http_requests',
186
+ count: 3,
187
+ min: 100,
188
+ max: 200,
189
+ avg: 150,
190
+ });
191
+ assert.deepStrictEqual(summary[1], {
192
+ name: 'errors',
193
+ count: 1,
194
+ min: 5,
195
+ max: 5,
196
+ avg: 5,
197
+ });
198
+ });
199
+ it('should handle empty metrics response', async () => {
200
+ const metrics = [];
201
+ const byName = new Map();
202
+ for (const m of metrics) {
203
+ const stats = byName.get(m.name) || { count: 0, min: Infinity, max: -Infinity, sum: 0 };
204
+ stats.count++;
205
+ stats.min = Math.min(stats.min, m.value);
206
+ stats.max = Math.max(stats.max, m.value);
207
+ stats.sum += m.value;
208
+ byName.set(m.name, stats);
209
+ }
210
+ const summary = Array.from(byName.entries()).map(([name, stats]) => ({
211
+ name,
212
+ count: stats.count,
213
+ min: stats.min,
214
+ max: stats.max,
215
+ avg: stats.sum / stats.count,
216
+ }));
217
+ assert.strictEqual(summary.length, 0);
218
+ });
219
+ it('should limit dataPoints to 20 in response', async () => {
220
+ // Verify that local backend truncates dataPoints to 20
221
+ const metrics = Array.from({ length: 50 }, (_, i) => ({
222
+ timestamp: new Date(Date.now() - i * 1000).toISOString(),
223
+ name: 'test_metric',
224
+ value: i,
225
+ }));
226
+ const dataPoints = metrics.slice(0, 20);
227
+ assert.strictEqual(dataPoints.length, 20);
228
+ });
229
+ });
230
+ describe('signoz backend handling', () => {
231
+ beforeEach(() => {
232
+ process.env.SIGNOZ_URL = 'http://localhost:3301';
233
+ process.env.SIGNOZ_API_KEY = 'test-key';
234
+ });
235
+ it('should return error when metricName is missing for SigNoz', async () => {
236
+ const input = {
237
+ backend: 'signoz',
238
+ limit: 100,
239
+ };
240
+ // Simulate the response when metricName is required
241
+ const response = {
242
+ backend: 'signoz',
243
+ error: 'metricName is required for SigNoz queries',
244
+ };
245
+ assert.strictEqual(response.error, 'metricName is required for SigNoz queries');
246
+ });
247
+ it('should pass all parameters to SigNoz backend', async () => {
248
+ const input = {
249
+ backend: 'signoz',
250
+ metricName: 'http_requests',
251
+ aggregation: 'sum',
252
+ groupBy: ['service', 'method'],
253
+ startDate: '2026-01-01',
254
+ endDate: '2026-01-28',
255
+ limit: 50,
256
+ };
257
+ // Verify all parameters are passed
258
+ assert.strictEqual(input.metricName, 'http_requests');
259
+ assert.strictEqual(input.aggregation, 'sum');
260
+ assert.deepStrictEqual(input.groupBy, ['service', 'method']);
261
+ assert.strictEqual(input.startDate, '2026-01-01');
262
+ assert.strictEqual(input.endDate, '2026-01-28');
263
+ assert.strictEqual(input.limit, 50);
264
+ });
265
+ it('should include metricName in response', async () => {
266
+ const input = {
267
+ backend: 'signoz',
268
+ metricName: 'http_requests_total',
269
+ limit: 100,
270
+ };
271
+ const dataPoints = [
272
+ { timestamp: '2026-01-28T10:00:00Z', name: 'http_requests_total', value: 1000 },
273
+ ];
274
+ const response = {
275
+ backend: 'signoz',
276
+ count: dataPoints.length,
277
+ metricName: input.metricName,
278
+ dataPoints,
279
+ };
280
+ assert.strictEqual(response.metricName, 'http_requests_total');
281
+ });
282
+ });
283
+ describe('aggregation handling', () => {
284
+ it('should process sum aggregation', async () => {
285
+ const input = {
286
+ backend: 'local',
287
+ aggregation: 'sum',
288
+ limit: 100,
289
+ };
290
+ assert.strictEqual(input.aggregation, 'sum');
291
+ });
292
+ it('should process avg aggregation', async () => {
293
+ const input = {
294
+ backend: 'local',
295
+ aggregation: 'avg',
296
+ limit: 100,
297
+ };
298
+ assert.strictEqual(input.aggregation, 'avg');
299
+ });
300
+ it('should process min aggregation', async () => {
301
+ const input = {
302
+ backend: 'local',
303
+ aggregation: 'min',
304
+ limit: 100,
305
+ };
306
+ assert.strictEqual(input.aggregation, 'min');
307
+ });
308
+ it('should process max aggregation', async () => {
309
+ const input = {
310
+ backend: 'local',
311
+ aggregation: 'max',
312
+ limit: 100,
313
+ };
314
+ assert.strictEqual(input.aggregation, 'max');
315
+ });
316
+ it('should process count aggregation', async () => {
317
+ const input = {
318
+ backend: 'local',
319
+ aggregation: 'count',
320
+ limit: 100,
321
+ };
322
+ assert.strictEqual(input.aggregation, 'count');
323
+ });
324
+ });
325
+ describe('groupBy handling', () => {
326
+ it('should accept single groupBy attribute', async () => {
327
+ const input = {
328
+ backend: 'local',
329
+ groupBy: ['service'],
330
+ limit: 100,
331
+ };
332
+ assert.deepStrictEqual(input.groupBy, ['service']);
333
+ });
334
+ it('should accept multiple groupBy attributes', async () => {
335
+ const input = {
336
+ backend: 'local',
337
+ groupBy: ['service', 'method', 'status_code'],
338
+ limit: 100,
339
+ };
340
+ assert.deepStrictEqual(input.groupBy, ['service', 'method', 'status_code']);
341
+ });
342
+ it('should handle empty groupBy array', async () => {
343
+ const input = {
344
+ backend: 'local',
345
+ groupBy: [],
346
+ limit: 100,
347
+ };
348
+ assert.deepStrictEqual(input.groupBy, []);
349
+ });
350
+ it('should be optional', async () => {
351
+ const input = {
352
+ backend: 'local',
353
+ limit: 100,
354
+ };
355
+ assert.strictEqual(input.groupBy, undefined);
356
+ });
357
+ });
358
+ describe('date range handling', () => {
359
+ it('should accept startDate only', async () => {
360
+ const input = {
361
+ backend: 'local',
362
+ startDate: '2026-01-01',
363
+ limit: 100,
364
+ };
365
+ assert.strictEqual(input.startDate, '2026-01-01');
366
+ assert.strictEqual(input.endDate, undefined);
367
+ });
368
+ it('should accept endDate only', async () => {
369
+ const input = {
370
+ backend: 'local',
371
+ endDate: '2026-01-28',
372
+ limit: 100,
373
+ };
374
+ assert.strictEqual(input.startDate, undefined);
375
+ assert.strictEqual(input.endDate, '2026-01-28');
376
+ });
377
+ it('should accept both startDate and endDate', async () => {
378
+ const input = {
379
+ backend: 'local',
380
+ startDate: '2026-01-01',
381
+ endDate: '2026-01-28',
382
+ limit: 100,
383
+ };
384
+ assert.strictEqual(input.startDate, '2026-01-01');
385
+ assert.strictEqual(input.endDate, '2026-01-28');
386
+ });
387
+ it('should be optional', async () => {
388
+ const input = {
389
+ backend: 'local',
390
+ limit: 100,
391
+ };
392
+ assert.strictEqual(input.startDate, undefined);
393
+ assert.strictEqual(input.endDate, undefined);
394
+ });
395
+ it('should validate date format in schema', () => {
396
+ const validInput = {
397
+ backend: 'local',
398
+ startDate: '2026-01-28',
399
+ };
400
+ const result = queryMetricsSchema.safeParse(validInput);
401
+ assert.strictEqual(result.success, true);
402
+ });
403
+ });
404
+ describe('limit handling', () => {
405
+ it('should use default limit of 100', () => {
406
+ const input = {
407
+ backend: 'local',
408
+ };
409
+ const result = queryMetricsSchema.safeParse(input);
410
+ assert.strictEqual(result.data?.limit, 100);
411
+ });
412
+ it('should accept custom limit', () => {
413
+ const input = {
414
+ backend: 'local',
415
+ limit: 50,
416
+ };
417
+ assert.strictEqual(input.limit, 50);
418
+ });
419
+ it('should accept large limit values', () => {
420
+ const input = {
421
+ backend: 'local',
422
+ limit: 10000,
423
+ };
424
+ assert.strictEqual(input.limit, 10000);
425
+ });
426
+ it('should accept limit of 1', () => {
427
+ const input = {
428
+ backend: 'local',
429
+ limit: 1,
430
+ };
431
+ assert.strictEqual(input.limit, 1);
432
+ });
433
+ });
434
+ describe('metricName filtering', () => {
435
+ it('should be optional', () => {
436
+ const input = {
437
+ backend: 'local',
438
+ limit: 100,
439
+ };
440
+ assert.strictEqual(input.metricName, undefined);
441
+ });
442
+ it('should accept metric name strings', () => {
443
+ const input = {
444
+ backend: 'local',
445
+ metricName: 'http_requests_total',
446
+ limit: 100,
447
+ };
448
+ assert.strictEqual(input.metricName, 'http_requests_total');
449
+ });
450
+ it('should accept metric names with underscores', () => {
451
+ const input = {
452
+ backend: 'local',
453
+ metricName: 'process_cpu_usage_percentage',
454
+ limit: 100,
455
+ };
456
+ assert.strictEqual(input.metricName, 'process_cpu_usage_percentage');
457
+ });
458
+ it('should accept metric names with dots', () => {
459
+ const input = {
460
+ backend: 'local',
461
+ metricName: 'system.cpu.usage',
462
+ limit: 100,
463
+ };
464
+ assert.strictEqual(input.metricName, 'system.cpu.usage');
465
+ });
466
+ });
467
+ describe('error handling', () => {
468
+ it('should handle no backend available scenario', async () => {
469
+ const response = {
470
+ backend: 'none',
471
+ count: 0,
472
+ error: 'No backend available',
473
+ };
474
+ assert.strictEqual(response.error, 'No backend available');
475
+ assert.strictEqual(response.count, 0);
476
+ });
477
+ it('should structure error responses properly', async () => {
478
+ const errorResponse = {
479
+ backend: 'signoz',
480
+ error: 'metricName is required for SigNoz queries',
481
+ };
482
+ assert.ok('error' in errorResponse);
483
+ assert.strictEqual(errorResponse.backend, 'signoz');
484
+ });
485
+ });
486
+ describe('combined parameter scenarios', () => {
487
+ it('should handle aggregation with groupBy', async () => {
488
+ const input = {
489
+ backend: 'local',
490
+ aggregation: 'sum',
491
+ groupBy: ['service', 'method'],
492
+ limit: 100,
493
+ };
494
+ assert.strictEqual(input.aggregation, 'sum');
495
+ assert.deepStrictEqual(input.groupBy, ['service', 'method']);
496
+ });
497
+ it('should handle date range with aggregation', async () => {
498
+ const input = {
499
+ backend: 'local',
500
+ startDate: '2026-01-01',
501
+ endDate: '2026-01-28',
502
+ aggregation: 'avg',
503
+ limit: 100,
504
+ };
505
+ assert.strictEqual(input.startDate, '2026-01-01');
506
+ assert.strictEqual(input.endDate, '2026-01-28');
507
+ assert.strictEqual(input.aggregation, 'avg');
508
+ });
509
+ it('should handle all SigNoz parameters together', async () => {
510
+ const input = {
511
+ backend: 'signoz',
512
+ metricName: 'http_requests',
513
+ aggregation: 'sum',
514
+ groupBy: ['status_code'],
515
+ startDate: '2026-01-01',
516
+ endDate: '2026-01-28',
517
+ limit: 100,
518
+ };
519
+ assert.strictEqual(input.backend, 'signoz');
520
+ assert.strictEqual(input.metricName, 'http_requests');
521
+ assert.strictEqual(input.aggregation, 'sum');
522
+ assert.deepStrictEqual(input.groupBy, ['status_code']);
523
+ assert.strictEqual(input.startDate, '2026-01-01');
524
+ assert.strictEqual(input.endDate, '2026-01-28');
525
+ assert.strictEqual(input.limit, 100);
526
+ });
527
+ it('should handle minimal local backend query', async () => {
528
+ const input = {
529
+ backend: 'local',
530
+ };
531
+ assert.strictEqual(input.backend, 'local');
532
+ assert.strictEqual(input.metricName, undefined);
533
+ assert.strictEqual(input.aggregation, undefined);
534
+ });
535
+ });
536
+ describe('tool definition', () => {
537
+ it('should export tool configuration', async () => {
538
+ const { queryMetricsTool } = await import('./query-metrics.js');
539
+ assert.strictEqual(queryMetricsTool.name, 'obs_query_metrics');
540
+ assert.ok(queryMetricsTool.description);
541
+ assert.ok(queryMetricsTool.inputSchema);
542
+ assert.strictEqual(typeof queryMetricsTool.handler, 'function');
543
+ });
544
+ it('should have correct tool name', async () => {
545
+ const { queryMetricsTool } = await import('./query-metrics.js');
546
+ assert.strictEqual(queryMetricsTool.name, 'obs_query_metrics');
547
+ });
548
+ it('should have descriptive description', async () => {
549
+ const { queryMetricsTool } = await import('./query-metrics.js');
550
+ assert.ok(queryMetricsTool.description.length > 0);
551
+ assert.ok(queryMetricsTool.description.includes('metrics'));
552
+ });
553
+ it('should have queryMetrics as handler', async () => {
554
+ const { queryMetricsTool, queryMetrics: handler } = await import('./query-metrics.js');
555
+ assert.strictEqual(queryMetricsTool.handler, handler);
556
+ });
557
+ });
558
+ });
559
+ //# sourceMappingURL=query-metrics.test.js.map