observability-toolkit 1.1.0 → 1.4.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 (117) hide show
  1. package/README.md +52 -3
  2. package/dist/backends/index.d.ts +28 -0
  3. package/dist/backends/index.d.ts.map +1 -1
  4. package/dist/backends/local-jsonl.d.ts +29 -1
  5. package/dist/backends/local-jsonl.d.ts.map +1 -1
  6. package/dist/backends/local-jsonl.js +259 -27
  7. package/dist/backends/local-jsonl.js.map +1 -1
  8. package/dist/backends/local-jsonl.test.d.ts +2 -0
  9. package/dist/backends/local-jsonl.test.d.ts.map +1 -0
  10. package/dist/backends/local-jsonl.test.js +1638 -0
  11. package/dist/backends/local-jsonl.test.js.map +1 -0
  12. package/dist/backends/signoz-api.d.ts +9 -2
  13. package/dist/backends/signoz-api.d.ts.map +1 -1
  14. package/dist/backends/signoz-api.integration.test.d.ts +8 -0
  15. package/dist/backends/signoz-api.integration.test.d.ts.map +1 -0
  16. package/dist/backends/signoz-api.integration.test.js +137 -0
  17. package/dist/backends/signoz-api.integration.test.js.map +1 -0
  18. package/dist/backends/signoz-api.js +206 -115
  19. package/dist/backends/signoz-api.js.map +1 -1
  20. package/dist/backends/signoz-api.test.d.ts +2 -0
  21. package/dist/backends/signoz-api.test.d.ts.map +1 -0
  22. package/dist/backends/signoz-api.test.js +1080 -0
  23. package/dist/backends/signoz-api.test.js.map +1 -0
  24. package/dist/lib/constants.d.ts +28 -0
  25. package/dist/lib/constants.d.ts.map +1 -1
  26. package/dist/lib/constants.js +73 -0
  27. package/dist/lib/constants.js.map +1 -1
  28. package/dist/lib/constants.test.d.ts +5 -0
  29. package/dist/lib/constants.test.d.ts.map +1 -0
  30. package/dist/lib/constants.test.js +381 -0
  31. package/dist/lib/constants.test.js.map +1 -0
  32. package/dist/lib/file-utils.d.ts +53 -1
  33. package/dist/lib/file-utils.d.ts.map +1 -1
  34. package/dist/lib/file-utils.js +142 -3
  35. package/dist/lib/file-utils.js.map +1 -1
  36. package/dist/lib/file-utils.test.d.ts +2 -0
  37. package/dist/lib/file-utils.test.d.ts.map +1 -0
  38. package/dist/lib/file-utils.test.js +649 -0
  39. package/dist/lib/file-utils.test.js.map +1 -0
  40. package/dist/server.js +50 -63
  41. package/dist/server.js.map +1 -1
  42. package/dist/server.test.d.ts +5 -0
  43. package/dist/server.test.d.ts.map +1 -0
  44. package/dist/server.test.js +547 -0
  45. package/dist/server.test.js.map +1 -0
  46. package/dist/tools/context-stats.d.ts +2 -2
  47. package/dist/tools/context-stats.d.ts.map +1 -1
  48. package/dist/tools/context-stats.js +2 -1
  49. package/dist/tools/context-stats.js.map +1 -1
  50. package/dist/tools/context-stats.test.d.ts +5 -0
  51. package/dist/tools/context-stats.test.d.ts.map +1 -0
  52. package/dist/tools/context-stats.test.js +465 -0
  53. package/dist/tools/context-stats.test.js.map +1 -0
  54. package/dist/tools/get-trace-url.d.ts.map +1 -1
  55. package/dist/tools/get-trace-url.js +5 -1
  56. package/dist/tools/get-trace-url.js.map +1 -1
  57. package/dist/tools/get-trace-url.test.d.ts +5 -0
  58. package/dist/tools/get-trace-url.test.d.ts.map +1 -0
  59. package/dist/tools/get-trace-url.test.js +429 -0
  60. package/dist/tools/get-trace-url.test.js.map +1 -0
  61. package/dist/tools/health-check.d.ts +9 -2
  62. package/dist/tools/health-check.d.ts.map +1 -1
  63. package/dist/tools/health-check.js +66 -27
  64. package/dist/tools/health-check.js.map +1 -1
  65. package/dist/tools/health-check.test.d.ts +5 -0
  66. package/dist/tools/health-check.test.d.ts.map +1 -0
  67. package/dist/tools/health-check.test.js +386 -0
  68. package/dist/tools/health-check.test.js.map +1 -0
  69. package/dist/tools/index.d.ts +1 -0
  70. package/dist/tools/index.d.ts.map +1 -1
  71. package/dist/tools/index.js +1 -0
  72. package/dist/tools/index.js.map +1 -1
  73. package/dist/tools/query-llm-events.d.ts +82 -0
  74. package/dist/tools/query-llm-events.d.ts.map +1 -0
  75. package/dist/tools/query-llm-events.js +60 -0
  76. package/dist/tools/query-llm-events.js.map +1 -0
  77. package/dist/tools/query-llm-events.test.d.ts +5 -0
  78. package/dist/tools/query-llm-events.test.d.ts.map +1 -0
  79. package/dist/tools/query-llm-events.test.js +111 -0
  80. package/dist/tools/query-llm-events.test.js.map +1 -0
  81. package/dist/tools/query-logs.d.ts +15 -8
  82. package/dist/tools/query-logs.d.ts.map +1 -1
  83. package/dist/tools/query-logs.js +11 -10
  84. package/dist/tools/query-logs.js.map +1 -1
  85. package/dist/tools/query-logs.test.d.ts +5 -0
  86. package/dist/tools/query-logs.test.d.ts.map +1 -0
  87. package/dist/tools/query-logs.test.js +688 -0
  88. package/dist/tools/query-logs.test.js.map +1 -0
  89. package/dist/tools/query-metrics.d.ts +13 -15
  90. package/dist/tools/query-metrics.d.ts.map +1 -1
  91. package/dist/tools/query-metrics.js +12 -13
  92. package/dist/tools/query-metrics.js.map +1 -1
  93. package/dist/tools/query-metrics.test.d.ts +5 -0
  94. package/dist/tools/query-metrics.test.d.ts.map +1 -0
  95. package/dist/tools/query-metrics.test.js +597 -0
  96. package/dist/tools/query-metrics.test.js.map +1 -0
  97. package/dist/tools/query-traces.d.ts +19 -14
  98. package/dist/tools/query-traces.d.ts.map +1 -1
  99. package/dist/tools/query-traces.js +14 -14
  100. package/dist/tools/query-traces.js.map +1 -1
  101. package/dist/tools/query-traces.test.d.ts +5 -0
  102. package/dist/tools/query-traces.test.d.ts.map +1 -0
  103. package/dist/tools/query-traces.test.js +643 -0
  104. package/dist/tools/query-traces.test.js.map +1 -0
  105. package/dist/tools/setup-claudeignore.d.ts +36 -10
  106. package/dist/tools/setup-claudeignore.d.ts.map +1 -1
  107. package/dist/tools/setup-claudeignore.js +193 -33
  108. package/dist/tools/setup-claudeignore.js.map +1 -1
  109. package/dist/tools/setup-claudeignore.test.d.ts +2 -0
  110. package/dist/tools/setup-claudeignore.test.d.ts.map +1 -0
  111. package/dist/tools/setup-claudeignore.test.js +481 -0
  112. package/dist/tools/setup-claudeignore.test.js.map +1 -0
  113. package/dist/tools/signoz.integration.test.d.ts +8 -0
  114. package/dist/tools/signoz.integration.test.d.ts.map +1 -0
  115. package/dist/tools/signoz.integration.test.js +141 -0
  116. package/dist/tools/signoz.integration.test.js.map +1 -0
  117. package/package.json +6 -3
@@ -1,7 +1,15 @@
1
1
  /**
2
2
  * SigNoz Cloud API backend for querying traces, metrics, and logs
3
+ *
4
+ * SigNoz has two separate endpoints:
5
+ * - Ingest: https://ingest.{region}.signoz.cloud (OTLP for sending data)
6
+ * - Query API: https://{tenant}.signoz.io or SIGNOZ_QUERY_URL (for reading data)
7
+ *
8
+ * This backend uses the Query API (v5) for reading telemetry data.
3
9
  */
4
- import { SIGNOZ_URL, SIGNOZ_API_KEY, CIRCUIT_BREAKER } from '../lib/constants.js';
10
+ import { SIGNOZ_API_KEY, CIRCUIT_BREAKER, getSpanKind, escapeFilterValue } from '../lib/constants.js';
11
+ // SigNoz Query API URL (separate from ingest URL)
12
+ const SIGNOZ_QUERY_URL = process.env.SIGNOZ_QUERY_URL || '';
5
13
  /**
6
14
  * Simple circuit breaker for API calls
7
15
  */
@@ -46,19 +54,23 @@ export class SigNozApiBackend {
46
54
  apiKey;
47
55
  circuitBreaker = new ApiCircuitBreaker();
48
56
  constructor(baseUrl, apiKey) {
49
- this.baseUrl = (baseUrl || SIGNOZ_URL).replace(/\/+$/, '');
57
+ // Use SIGNOZ_QUERY_URL for queries - must be explicitly set
58
+ // Cannot be derived from ingest URL (different domain pattern)
59
+ // Example: SIGNOZ_QUERY_URL=https://your-tenant.us.signoz.cloud
60
+ const queryUrl = baseUrl || SIGNOZ_QUERY_URL;
61
+ this.baseUrl = queryUrl.replace(/\/+$/, '');
50
62
  this.apiKey = apiKey || SIGNOZ_API_KEY;
51
63
  }
52
64
  async fetch(path, options) {
53
65
  if (!this.baseUrl || !this.apiKey) {
54
- throw new Error('SigNoz URL or API key not configured');
66
+ throw new Error('SigNoz Query URL or API key not configured. Set SIGNOZ_QUERY_URL and SIGNOZ_API_KEY');
55
67
  }
56
68
  if (!this.circuitBreaker.canRequest()) {
57
69
  throw new Error('Circuit breaker open - SigNoz API unavailable');
58
70
  }
59
71
  const url = `${this.baseUrl}${path}`;
60
72
  const headers = {
61
- 'signoz-access-token': this.apiKey,
73
+ 'SIGNOZ-API-KEY': this.apiKey,
62
74
  'Content-Type': 'application/json',
63
75
  };
64
76
  try {
@@ -67,8 +79,11 @@ export class SigNozApiBackend {
67
79
  headers: { ...headers, ...options?.headers },
68
80
  });
69
81
  if (!response.ok) {
82
+ // Security: sanitize error message to avoid leaking internal system information
83
+ // Log full error server-side, return sanitized message to client
70
84
  const text = await response.text();
71
- throw new Error(`SigNoz API error: ${response.status} ${text}`);
85
+ console.error(`SigNoz API error (${response.status}): ${text}`);
86
+ throw new Error(`SigNoz API error: ${response.status} - Request failed`);
72
87
  }
73
88
  this.circuitBreaker.recordSuccess();
74
89
  return response.json();
@@ -79,72 +94,91 @@ export class SigNozApiBackend {
79
94
  }
80
95
  }
81
96
  /**
82
- * Get nanosecond timestamp for SigNoz queries
97
+ * Get millisecond timestamp for SigNoz v5 API queries
83
98
  */
84
- getNanoTime(dateStr, defaultHoursAgo = 1) {
99
+ getMillisTime(dateStr, defaultHoursAgo = 1) {
85
100
  if (dateStr) {
86
- return String(new Date(dateStr).getTime() * 1_000_000);
101
+ return new Date(dateStr).getTime();
87
102
  }
88
- return String((Date.now() - defaultHoursAgo * 60 * 60 * 1000) * 1_000_000);
103
+ return Date.now() - defaultHoursAgo * 60 * 60 * 1000;
89
104
  }
90
105
  async queryTraces(options) {
91
- const start = this.getNanoTime(options.startDate, 1);
92
- const end = this.getNanoTime(options.endDate ? options.endDate + 'T23:59:59Z' : undefined, 0);
106
+ const start = this.getMillisTime(options.startDate, 1);
107
+ const end = this.getMillisTime(options.endDate ? options.endDate + 'T23:59:59Z' : undefined, 0);
93
108
  const limit = options.limit || 100;
94
- // Build filter conditions
95
- const filters = [];
109
+ // Build filter expression
110
+ const filterParts = [];
96
111
  if (options.traceId) {
97
- filters.push({
98
- key: { key: 'traceID', dataType: 'string', type: 'tag' },
99
- op: '=',
100
- value: options.traceId,
101
- });
112
+ filterParts.push(`traceID = '${escapeFilterValue(options.traceId)}'`);
102
113
  }
103
114
  if (options.serviceName) {
104
- filters.push({
105
- key: { key: 'serviceName', dataType: 'string', type: 'tag' },
106
- op: '=',
107
- value: options.serviceName,
108
- });
115
+ filterParts.push(`serviceName = '${escapeFilterValue(options.serviceName)}'`);
109
116
  }
110
117
  if (options.spanName) {
111
- filters.push({
112
- key: { key: 'name', dataType: 'string', type: 'tag' },
113
- op: 'contains',
114
- value: options.spanName,
115
- });
118
+ filterParts.push(`name LIKE '%${escapeFilterValue(options.spanName)}%'`);
116
119
  }
117
120
  if (options.minDurationMs) {
118
- filters.push({
119
- key: { key: 'durationNano', dataType: 'float64', type: 'tag' },
120
- op: '>=',
121
- value: options.minDurationMs * 1_000_000,
122
- });
121
+ filterParts.push(`durationNano >= ${options.minDurationMs * 1_000_000}`);
122
+ }
123
+ if (options.maxDurationMs) {
124
+ filterParts.push(`durationNano <= ${options.maxDurationMs * 1_000_000}`);
123
125
  }
126
+ // Build v5 API payload using builder_query
124
127
  const body = {
125
128
  start,
126
129
  end,
127
- step: 60,
128
- limit,
129
- filters: { op: 'AND', items: filters },
130
- aggregateOperator: 'noop',
130
+ requestType: 'raw',
131
+ compositeQuery: {
132
+ queries: [{
133
+ type: 'builder_query',
134
+ spec: {
135
+ name: 'A',
136
+ signal: 'traces',
137
+ stepInterval: 60,
138
+ aggregations: [],
139
+ filter: filterParts.length > 0 ? { expression: filterParts.join(' AND ') } : undefined,
140
+ selectFields: [
141
+ { name: 'traceID' },
142
+ { name: 'spanID' },
143
+ { name: 'parentSpanID' },
144
+ { name: 'name' },
145
+ { name: 'serviceName' },
146
+ { name: 'kind' },
147
+ { name: 'durationNano' },
148
+ { name: 'statusCode' },
149
+ { name: 'statusMessage' },
150
+ ],
151
+ order: [{ key: { name: 'timestamp' }, direction: 'desc' }],
152
+ limit,
153
+ offset: 0,
154
+ disabled: false,
155
+ },
156
+ }],
157
+ },
131
158
  };
132
159
  try {
133
- const response = await this.fetch('/api/v3/traces', {
160
+ const response = await this.fetch('/api/v5/query_range', {
134
161
  method: 'POST',
135
162
  body: JSON.stringify(body),
136
163
  });
137
- return (response.result || []).map(t => ({
138
- traceId: t.traceID,
139
- spanId: t.spanID,
140
- parentSpanId: t.parentSpanID,
141
- name: t.operationName,
142
- kind: t.kind !== undefined ? ['INTERNAL', 'SERVER', 'CLIENT', 'PRODUCER', 'CONSUMER'][t.kind] : undefined,
143
- startTimeUnixNano: t.startTime * 1_000_000,
144
- durationMs: t.duration / 1_000_000,
145
- status: t.statusCode !== undefined ? { code: t.statusCode, message: t.statusMessage } : undefined,
146
- attributes: t.tags,
147
- }));
164
+ const results = [];
165
+ for (const result of response.data?.data?.results || []) {
166
+ for (const row of result.rows || []) {
167
+ const d = row.data || {};
168
+ results.push({
169
+ traceId: String(d.trace_id || d.traceID || ''),
170
+ spanId: String(d.span_id || d.spanID || ''),
171
+ parentSpanId: d.parent_span_id || d.parentSpanID ? String(d.parent_span_id || d.parentSpanID) : undefined,
172
+ name: String(d.name || ''),
173
+ kind: getSpanKind(d.kind !== undefined ? Number(d.kind) : undefined),
174
+ startTimeUnixNano: row.timestamp ? new Date(row.timestamp).getTime() * 1_000_000 : 0,
175
+ durationMs: Number(d.duration_nano || d.durationNano || 0) / 1_000_000,
176
+ status: d.response_status_code ? { code: Number(d.response_status_code), message: '' } : undefined,
177
+ attributes: { serviceName: String(d['service.name'] || d.serviceName || '') },
178
+ });
179
+ }
180
+ }
181
+ return results;
148
182
  }
149
183
  catch (error) {
150
184
  if (error instanceof Error && error.message.includes('Circuit breaker')) {
@@ -154,51 +188,69 @@ export class SigNozApiBackend {
154
188
  }
155
189
  }
156
190
  async queryLogs(options) {
157
- const start = this.getNanoTime(options.startDate, 1);
158
- const end = this.getNanoTime(options.endDate ? options.endDate + 'T23:59:59Z' : undefined, 0);
191
+ const start = this.getMillisTime(options.startDate, 1);
192
+ const end = this.getMillisTime(options.endDate ? options.endDate + 'T23:59:59Z' : undefined, 0);
159
193
  const limit = options.limit || 100;
160
- const filters = [];
194
+ // Build filter expression
195
+ const filterParts = [];
161
196
  if (options.severity) {
162
- filters.push({
163
- key: { key: 'severity_text', dataType: 'string', type: 'tag' },
164
- op: '=',
165
- value: options.severity.toUpperCase(),
166
- });
197
+ filterParts.push(`severity_text = '${escapeFilterValue(options.severity.toUpperCase())}'`);
167
198
  }
168
199
  if (options.traceId) {
169
- filters.push({
170
- key: { key: 'trace_id', dataType: 'string', type: 'tag' },
171
- op: '=',
172
- value: options.traceId,
173
- });
200
+ filterParts.push(`trace_id = '${escapeFilterValue(options.traceId)}'`);
174
201
  }
175
202
  if (options.search) {
176
- filters.push({
177
- key: { key: 'body', dataType: 'string', type: 'tag' },
178
- op: 'contains',
179
- value: options.search,
180
- });
203
+ filterParts.push(`body LIKE '%${escapeFilterValue(options.search)}%'`);
181
204
  }
205
+ // Build v5 API payload
182
206
  const body = {
183
207
  start,
184
208
  end,
185
- step: 60,
186
- limit,
187
- filters: { op: 'AND', items: filters },
209
+ requestType: 'raw',
210
+ compositeQuery: {
211
+ queries: [{
212
+ type: 'builder_query',
213
+ spec: {
214
+ name: 'A',
215
+ signal: 'logs',
216
+ stepInterval: 60,
217
+ aggregations: [],
218
+ filter: filterParts.length > 0 ? { expression: filterParts.join(' AND ') } : undefined,
219
+ selectFields: [
220
+ { name: 'timestamp' },
221
+ { name: 'severity_text' },
222
+ { name: 'body' },
223
+ { name: 'trace_id' },
224
+ { name: 'span_id' },
225
+ ],
226
+ order: [{ key: { name: 'timestamp' }, direction: 'desc' }],
227
+ limit,
228
+ offset: 0,
229
+ disabled: false,
230
+ },
231
+ }],
232
+ },
188
233
  };
189
234
  try {
190
- const response = await this.fetch('/api/v3/logs', {
235
+ const response = await this.fetch('/api/v5/query_range', {
191
236
  method: 'POST',
192
237
  body: JSON.stringify(body),
193
238
  });
194
- return (response.result || []).map(l => ({
195
- timestamp: l.timestamp,
196
- severity: l.severity_text || 'INFO',
197
- body: l.body || '',
198
- traceId: l.trace_id,
199
- spanId: l.span_id,
200
- attributes: l.attributes,
201
- }));
239
+ const results = [];
240
+ for (const result of response.data?.data?.results || []) {
241
+ for (const row of result.rows || []) {
242
+ const d = row.data || {};
243
+ results.push({
244
+ timestamp: row.timestamp || new Date().toISOString(),
245
+ severity: d.severity_text || 'INFO',
246
+ body: d.body || '',
247
+ traceId: d.trace_id,
248
+ spanId: d.span_id,
249
+ attributes: d.attributes_string || {},
250
+ });
251
+ }
252
+ }
253
+ return results;
202
254
  }
203
255
  catch (error) {
204
256
  if (error instanceof Error && error.message.includes('Circuit breaker')) {
@@ -208,42 +260,59 @@ export class SigNozApiBackend {
208
260
  }
209
261
  }
210
262
  async queryMetrics(options) {
211
- const start = this.getNanoTime(options.startDate, 1);
212
- const end = this.getNanoTime(options.endDate ? options.endDate + 'T23:59:59Z' : undefined, 0);
263
+ const start = this.getMillisTime(options.startDate, 1);
264
+ const end = this.getMillisTime(options.endDate ? options.endDate + 'T23:59:59Z' : undefined, 0);
213
265
  if (!options.metricName) {
214
266
  throw new Error('metricName is required for SigNoz metric queries');
215
267
  }
216
- const aggregation = options.aggregation || 'avg';
268
+ // Map aggregation options to SigNoz format
269
+ const spaceAggMap = {
270
+ 'sum': 'sum', 'avg': 'avg', 'min': 'min', 'max': 'max', 'count': 'sum',
271
+ };
272
+ const spaceAgg = spaceAggMap[options.aggregation || 'sum'] || 'sum';
273
+ // Build v5 API payload for metrics
217
274
  const body = {
218
275
  start,
219
276
  end,
220
- step: 60,
221
- queries: [{
222
- name: 'A',
223
- query: {
224
- queryName: 'A',
225
- metricName: options.metricName,
226
- aggregateOperator: aggregation,
227
- dataSource: 'metrics',
228
- groupBy: options.groupBy || [],
229
- },
230
- }],
277
+ requestType: 'time_series',
278
+ compositeQuery: {
279
+ queries: [{
280
+ type: 'builder_query',
281
+ spec: {
282
+ name: 'A',
283
+ signal: 'metrics',
284
+ stepInterval: 60,
285
+ aggregations: [{
286
+ metricName: options.metricName,
287
+ timeAggregation: 'rate',
288
+ spaceAggregation: spaceAgg,
289
+ }],
290
+ groupBy: (options.groupBy || []).map(g => ({ name: g })),
291
+ order: [],
292
+ limit: options.limit || 100,
293
+ offset: 0,
294
+ disabled: false,
295
+ },
296
+ }],
297
+ },
231
298
  };
232
299
  try {
233
- const response = await this.fetch('/api/v3/query_range', {
300
+ const response = await this.fetch('/api/v5/query_range', {
234
301
  method: 'POST',
235
302
  body: JSON.stringify(body),
236
303
  });
237
304
  const results = [];
238
- for (const result of response.result || []) {
239
- for (const series of result.series || []) {
240
- for (const point of series.values || []) {
241
- results.push({
242
- timestamp: new Date(point.timestamp * 1000).toISOString(),
243
- name: options.metricName,
244
- value: point.value,
245
- attributes: series.labels,
246
- });
305
+ for (const result of response.data?.data?.results || []) {
306
+ for (const agg of result.aggregations || []) {
307
+ for (const series of agg.series || []) {
308
+ for (const point of series.values || []) {
309
+ results.push({
310
+ timestamp: new Date(point.timestamp).toISOString(),
311
+ name: options.metricName,
312
+ value: point.value,
313
+ attributes: series.labels,
314
+ });
315
+ }
247
316
  }
248
317
  }
249
318
  }
@@ -258,23 +327,49 @@ export class SigNozApiBackend {
258
327
  }
259
328
  async healthCheck() {
260
329
  if (!this.baseUrl) {
261
- return { status: 'error', message: 'SigNoz URL not configured' };
330
+ return { status: 'error', message: 'SigNoz Query URL not configured. Set SIGNOZ_QUERY_URL', configured: false };
262
331
  }
263
332
  if (!this.apiKey) {
264
- return { status: 'error', message: 'SigNoz API key not configured' };
333
+ return { status: 'error', message: 'SigNoz API key not configured. Set SIGNOZ_API_KEY', configured: false };
265
334
  }
266
335
  if (this.circuitBreaker.getState() === 'open') {
267
- return { status: 'error', message: 'Circuit breaker open - API temporarily unavailable' };
336
+ return { status: 'error', message: 'Circuit breaker open - API temporarily unavailable', configured: true };
268
337
  }
269
338
  try {
270
- // Try to list services as a health check
271
- await this.fetch('/api/v1/services');
272
- return { status: 'ok', message: `Connected to ${this.baseUrl}` };
339
+ // Try a simple query as health check - query last 5 minutes of traces
340
+ const body = {
341
+ start: Date.now() - 5 * 60 * 1000,
342
+ end: Date.now(),
343
+ requestType: 'raw',
344
+ compositeQuery: {
345
+ queries: [{
346
+ type: 'builder_query',
347
+ spec: {
348
+ name: 'A',
349
+ signal: 'traces',
350
+ stepInterval: 60,
351
+ aggregations: [],
352
+ limit: 1,
353
+ offset: 0,
354
+ disabled: false,
355
+ },
356
+ }],
357
+ },
358
+ };
359
+ const response = await this.fetch('/api/v5/query_range', {
360
+ method: 'POST',
361
+ body: JSON.stringify(body),
362
+ });
363
+ if (response.status === 'success') {
364
+ return { status: 'ok', message: `Connected to ${this.baseUrl}`, configured: true };
365
+ }
366
+ return { status: 'error', message: 'Unexpected response from SigNoz API', configured: true };
273
367
  }
274
368
  catch (error) {
275
369
  return {
276
370
  status: 'error',
277
371
  message: error instanceof Error ? error.message : 'Unknown error',
372
+ configured: true,
278
373
  };
279
374
  }
280
375
  }
@@ -282,12 +377,8 @@ export class SigNozApiBackend {
282
377
  * Get SigNoz trace viewer URL for a trace ID
283
378
  */
284
379
  getTraceUrl(traceId) {
285
- // Remove /v1/traces from ingest URL if present
286
- const baseUrl = this.baseUrl
287
- .replace('/v1/traces', '')
288
- .replace('ingest.', '')
289
- .replace(':4318', '');
290
- return `${baseUrl}/trace/${traceId}`;
380
+ // The query API URL is already the correct format for the UI
381
+ return `${this.baseUrl}/trace/${traceId}`;
291
382
  }
292
383
  }
293
384
  //# sourceMappingURL=signoz-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signoz-api.js","sourceRoot":"","sources":["../../src/backends/signoz-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signoz-api.js","sourceRoot":"","sources":["../../src/backends/signoz-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signoz-api.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signoz-api.test.d.ts","sourceRoot":"","sources":["../../src/backends/signoz-api.test.ts"],"names":[],"mappings":""}