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":"local-jsonl-traces.test.js","sourceRoot":"","sources":["../../src/backends/local-jsonl-traces.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* The local telemetry files use a flat JSONL format where each line is a complete
|
|
5
5
|
* span or log record, not the batched OpenTelemetry export format.
|
|
6
6
|
*/
|
|
7
|
-
import { TelemetryBackend, TraceSpan, LogRecord, MetricDataPoint, LLMEvent, TraceQueryOptions, LogQueryOptions, MetricQueryOptions, LLMEventQueryOptions, OTLPTraceExport, OTLPLogExport, OTLPMetricExport } from './index.js';
|
|
7
|
+
import { TelemetryBackend, TraceSpan, LogRecord, MetricDataPoint, LLMEvent, EvaluationResult, TraceQueryOptions, LogQueryOptions, MetricQueryOptions, LLMEventQueryOptions, EvaluationQueryOptions, OTLPTraceExport, OTLPLogExport, OTLPMetricExport } from './index.js';
|
|
8
8
|
export declare class LocalJsonlBackend implements TelemetryBackend {
|
|
9
9
|
name: string;
|
|
10
10
|
private telemetryDir;
|
|
@@ -12,6 +12,7 @@ export declare class LocalJsonlBackend implements TelemetryBackend {
|
|
|
12
12
|
private logCache;
|
|
13
13
|
private metricCache;
|
|
14
14
|
private llmEventCache;
|
|
15
|
+
private evaluationCache;
|
|
15
16
|
private useIndexes;
|
|
16
17
|
constructor(telemetryDir?: string, useIndexes?: boolean);
|
|
17
18
|
/**
|
|
@@ -38,6 +39,7 @@ export declare class LocalJsonlBackend implements TelemetryBackend {
|
|
|
38
39
|
*/
|
|
39
40
|
private calculateRate;
|
|
40
41
|
queryLLMEvents(options: LLMEventQueryOptions): Promise<LLMEvent[]>;
|
|
42
|
+
queryEvaluations(options: EvaluationQueryOptions): Promise<EvaluationResult[]>;
|
|
41
43
|
healthCheck(): Promise<{
|
|
42
44
|
status: 'ok' | 'error';
|
|
43
45
|
message?: string;
|
|
@@ -72,6 +74,7 @@ export declare class MultiDirectoryBackend implements TelemetryBackend {
|
|
|
72
74
|
queryLogs(options: LogQueryOptions): Promise<LogRecord[]>;
|
|
73
75
|
queryMetrics(options: MetricQueryOptions): Promise<MetricDataPoint[]>;
|
|
74
76
|
queryLLMEvents(options: LLMEventQueryOptions): Promise<LLMEvent[]>;
|
|
77
|
+
queryEvaluations(options: EvaluationQueryOptions): Promise<EvaluationResult[]>;
|
|
75
78
|
healthCheck(): Promise<{
|
|
76
79
|
status: 'ok' | 'error';
|
|
77
80
|
message?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-jsonl.d.ts","sourceRoot":"","sources":["../../src/backends/local-jsonl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"local-jsonl.d.ts","sourceRoot":"","sources":["../../src/backends/local-jsonl.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
* span or log record, not the batched OpenTelemetry export format.
|
|
6
6
|
*/
|
|
7
7
|
import { join } from 'path';
|
|
8
|
+
import { GENAI_EVALUATION_ATTRIBUTES, } from './index.js';
|
|
8
9
|
import { convertToOTLPTraces, convertToOTLPLogs, convertToOTLPMetrics, } from '../lib/otlp-export.js';
|
|
9
10
|
import { TELEMETRY_DIR, getTelemetryDirectories, getSpanKind, getStatusCodeName } from '../lib/constants.js';
|
|
10
11
|
import { listFiles, streamJsonl, parseDateFromFilename, getDateString, paginateResults, hasReachedLimit, } from '../lib/file-utils.js';
|
|
11
12
|
import { QueryCache, makeCacheKey } from '../lib/cache.js';
|
|
12
13
|
import { getIndexPath, readIndex, isIndexStale, queryIndex, readLinesByNumber, } from '../lib/indexer.js';
|
|
14
|
+
import { sanitizePath } from '../lib/error-sanitizer.js';
|
|
13
15
|
import { existsSync } from 'fs';
|
|
14
16
|
function startTiming() {
|
|
15
17
|
const start = performance.now();
|
|
@@ -147,6 +149,63 @@ function extractFieldsFromBody(body, fields) {
|
|
|
147
149
|
return undefined;
|
|
148
150
|
}
|
|
149
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Validate and extract a non-empty trimmed string from attributes
|
|
154
|
+
*/
|
|
155
|
+
function extractValidString(value) {
|
|
156
|
+
if (typeof value !== 'string')
|
|
157
|
+
return undefined;
|
|
158
|
+
const trimmed = value.trim();
|
|
159
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Validate and extract a finite number from attributes
|
|
163
|
+
*/
|
|
164
|
+
function extractValidNumber(value) {
|
|
165
|
+
if (typeof value !== 'number')
|
|
166
|
+
return undefined;
|
|
167
|
+
return Number.isFinite(value) ? value : undefined;
|
|
168
|
+
}
|
|
169
|
+
/** Valid evaluator types per our schema */
|
|
170
|
+
const VALID_EVALUATOR_TYPES = ['llm', 'human', 'rule', 'classifier'];
|
|
171
|
+
/**
|
|
172
|
+
* Extract and validate evaluatorType
|
|
173
|
+
*/
|
|
174
|
+
function extractValidEvaluatorType(value) {
|
|
175
|
+
if (typeof value !== 'string')
|
|
176
|
+
return undefined;
|
|
177
|
+
const trimmed = value.trim().toLowerCase();
|
|
178
|
+
return VALID_EVALUATOR_TYPES.includes(trimmed) ? trimmed : undefined;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Convert flat evaluation to normalized EvaluationResult
|
|
182
|
+
* Includes runtime validation for data integrity (P0-2 fix)
|
|
183
|
+
*/
|
|
184
|
+
function normalizeEvaluation(raw) {
|
|
185
|
+
const attrs = raw.attributes;
|
|
186
|
+
// evaluationName is required per OTel spec - must be non-empty string
|
|
187
|
+
const evaluationName = extractValidString(attrs?.[GENAI_EVALUATION_ATTRIBUTES.NAME]);
|
|
188
|
+
if (!evaluationName || !raw.timestamp)
|
|
189
|
+
return null;
|
|
190
|
+
return {
|
|
191
|
+
timestamp: raw.timestamp,
|
|
192
|
+
evaluationName,
|
|
193
|
+
// Validate scoreValue is finite (rejects NaN, Infinity, -Infinity)
|
|
194
|
+
scoreValue: extractValidNumber(attrs?.[GENAI_EVALUATION_ATTRIBUTES.SCORE_VALUE]),
|
|
195
|
+
// Validate string fields are non-empty after trimming
|
|
196
|
+
scoreLabel: extractValidString(attrs?.[GENAI_EVALUATION_ATTRIBUTES.SCORE_LABEL]),
|
|
197
|
+
// Score unit for normalization (custom extension)
|
|
198
|
+
scoreUnit: extractValidString(attrs?.[GENAI_EVALUATION_ATTRIBUTES.SCORE_UNIT]),
|
|
199
|
+
explanation: extractValidString(attrs?.[GENAI_EVALUATION_ATTRIBUTES.EXPLANATION]),
|
|
200
|
+
// Evaluator fields (custom extension)
|
|
201
|
+
evaluator: extractValidString(attrs?.[GENAI_EVALUATION_ATTRIBUTES.EVALUATOR]),
|
|
202
|
+
evaluatorType: extractValidEvaluatorType(attrs?.[GENAI_EVALUATION_ATTRIBUTES.EVALUATOR_TYPE]),
|
|
203
|
+
responseId: extractValidString(attrs?.['gen_ai.response.id']),
|
|
204
|
+
traceId: raw.traceId,
|
|
205
|
+
spanId: raw.spanId,
|
|
206
|
+
sessionId: extractValidString(attrs?.['session.id']),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
150
209
|
/**
|
|
151
210
|
* OTel-compliant severity number mapping
|
|
152
211
|
* https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitynumber
|
|
@@ -370,6 +429,7 @@ export class LocalJsonlBackend {
|
|
|
370
429
|
logCache = new QueryCache();
|
|
371
430
|
metricCache = new QueryCache();
|
|
372
431
|
llmEventCache = new QueryCache();
|
|
432
|
+
evaluationCache = new QueryCache();
|
|
373
433
|
useIndexes;
|
|
374
434
|
constructor(telemetryDir, useIndexes = true) {
|
|
375
435
|
this.telemetryDir = telemetryDir || TELEMETRY_DIR;
|
|
@@ -383,6 +443,7 @@ export class LocalJsonlBackend {
|
|
|
383
443
|
this.logCache.clear();
|
|
384
444
|
this.metricCache.clear();
|
|
385
445
|
this.llmEventCache.clear();
|
|
446
|
+
this.evaluationCache.clear();
|
|
386
447
|
}
|
|
387
448
|
/**
|
|
388
449
|
* Get cache statistics for all query caches
|
|
@@ -393,6 +454,7 @@ export class LocalJsonlBackend {
|
|
|
393
454
|
logs: this.logCache.getStats(),
|
|
394
455
|
metrics: this.metricCache.getStats(),
|
|
395
456
|
llmEvents: this.llmEventCache.getStats(),
|
|
457
|
+
evaluations: this.evaluationCache.getStats(),
|
|
396
458
|
};
|
|
397
459
|
}
|
|
398
460
|
/**
|
|
@@ -946,21 +1008,129 @@ export class LocalJsonlBackend {
|
|
|
946
1008
|
logTiming();
|
|
947
1009
|
return paginated;
|
|
948
1010
|
}
|
|
1011
|
+
async queryEvaluations(options) {
|
|
1012
|
+
const timer = startTiming();
|
|
1013
|
+
const logTiming = () => {
|
|
1014
|
+
const durationMs = timer.end();
|
|
1015
|
+
if (durationMs > SLOW_QUERY_THRESHOLD_MS) {
|
|
1016
|
+
console.warn(`[obs-toolkit] Slow query: queryEvaluations took ${durationMs.toFixed(1)}ms`);
|
|
1017
|
+
}
|
|
1018
|
+
};
|
|
1019
|
+
// Check cache first
|
|
1020
|
+
const cacheKey = makeCacheKey('evaluations', options);
|
|
1021
|
+
const cached = this.evaluationCache.get(cacheKey);
|
|
1022
|
+
if (cached) {
|
|
1023
|
+
logTiming();
|
|
1024
|
+
return cached;
|
|
1025
|
+
}
|
|
1026
|
+
const files = getFilesInRange(this.telemetryDir, /evaluations-\d{4}-\d{2}-\d{2}\.jsonl(\.gz)?$/, options.startDate, options.endDate);
|
|
1027
|
+
const results = [];
|
|
1028
|
+
const limit = options.limit || 100;
|
|
1029
|
+
const offset = options.offset || 0;
|
|
1030
|
+
// Build index query options for indexable filters
|
|
1031
|
+
const indexOptions = {
|
|
1032
|
+
traceId: options.traceId,
|
|
1033
|
+
evaluationName: options.evaluationName,
|
|
1034
|
+
scoreLabel: options.scoreLabel,
|
|
1035
|
+
responseId: options.responseId,
|
|
1036
|
+
evaluator: options.evaluator,
|
|
1037
|
+
};
|
|
1038
|
+
// Helper to apply non-indexable filters to an evaluation
|
|
1039
|
+
const applyFilters = (evaluation) => {
|
|
1040
|
+
// Score range filters - only apply when evaluation HAS a scoreValue (P1-1 fix)
|
|
1041
|
+
// Evaluations with only scoreLabel (qualitative) should pass through
|
|
1042
|
+
if (options.scoreMin !== undefined && evaluation.scoreValue !== undefined) {
|
|
1043
|
+
if (evaluation.scoreValue < options.scoreMin)
|
|
1044
|
+
return false;
|
|
1045
|
+
}
|
|
1046
|
+
if (options.scoreMax !== undefined && evaluation.scoreValue !== undefined) {
|
|
1047
|
+
if (evaluation.scoreValue > options.scoreMax)
|
|
1048
|
+
return false;
|
|
1049
|
+
}
|
|
1050
|
+
// Session filter
|
|
1051
|
+
if (options.sessionId && evaluation.sessionId !== options.sessionId) {
|
|
1052
|
+
return false;
|
|
1053
|
+
}
|
|
1054
|
+
// Evaluator type filter (not indexed, so always applied here)
|
|
1055
|
+
if (options.evaluatorType && evaluation.evaluatorType !== options.evaluatorType) {
|
|
1056
|
+
return false;
|
|
1057
|
+
}
|
|
1058
|
+
return true;
|
|
1059
|
+
};
|
|
1060
|
+
for (const file of files) {
|
|
1061
|
+
// Try to use index for pre-filtering
|
|
1062
|
+
const matchingLines = this.tryUseIndex(file, 'evaluations', indexOptions);
|
|
1063
|
+
if (matchingLines !== null) {
|
|
1064
|
+
// Use indexed query - read only matching lines
|
|
1065
|
+
const rawRecords = await readLinesByNumber(file, matchingLines);
|
|
1066
|
+
for (const raw of rawRecords) {
|
|
1067
|
+
const evaluation = normalizeEvaluation(raw);
|
|
1068
|
+
if (!evaluation)
|
|
1069
|
+
continue;
|
|
1070
|
+
if (!applyFilters(evaluation))
|
|
1071
|
+
continue;
|
|
1072
|
+
results.push(evaluation);
|
|
1073
|
+
if (hasReachedLimit(results.length, offset, limit)) {
|
|
1074
|
+
const paginated = paginateResults(results, offset, limit);
|
|
1075
|
+
this.evaluationCache.set(cacheKey, paginated);
|
|
1076
|
+
logTiming();
|
|
1077
|
+
return paginated;
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
else {
|
|
1082
|
+
// Fall back to full file scan
|
|
1083
|
+
for await (const raw of streamJsonl(file)) {
|
|
1084
|
+
const evaluation = normalizeEvaluation(raw);
|
|
1085
|
+
if (!evaluation)
|
|
1086
|
+
continue;
|
|
1087
|
+
// Apply indexable filters (since no index was used)
|
|
1088
|
+
if (options.traceId && evaluation.traceId !== options.traceId)
|
|
1089
|
+
continue;
|
|
1090
|
+
if (options.evaluationName && !evaluation.evaluationName.includes(options.evaluationName))
|
|
1091
|
+
continue;
|
|
1092
|
+
if (options.scoreLabel && evaluation.scoreLabel !== options.scoreLabel)
|
|
1093
|
+
continue;
|
|
1094
|
+
if (options.responseId && evaluation.responseId !== options.responseId)
|
|
1095
|
+
continue;
|
|
1096
|
+
if (options.evaluator && evaluation.evaluator !== options.evaluator)
|
|
1097
|
+
continue;
|
|
1098
|
+
if (!applyFilters(evaluation))
|
|
1099
|
+
continue;
|
|
1100
|
+
results.push(evaluation);
|
|
1101
|
+
if (hasReachedLimit(results.length, offset, limit)) {
|
|
1102
|
+
const paginated = paginateResults(results, offset, limit);
|
|
1103
|
+
this.evaluationCache.set(cacheKey, paginated);
|
|
1104
|
+
logTiming();
|
|
1105
|
+
return paginated;
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
const paginated = paginateResults(results, offset, limit);
|
|
1111
|
+
this.evaluationCache.set(cacheKey, paginated);
|
|
1112
|
+
logTiming();
|
|
1113
|
+
return paginated;
|
|
1114
|
+
}
|
|
949
1115
|
async healthCheck() {
|
|
950
1116
|
if (!existsSync(this.telemetryDir)) {
|
|
951
|
-
|
|
1117
|
+
// Security: sanitize path to prevent information disclosure
|
|
1118
|
+
return { status: 'error', message: `Telemetry directory not found: ${sanitizePath(this.telemetryDir)}` };
|
|
952
1119
|
}
|
|
953
1120
|
const today = getDateString();
|
|
954
1121
|
const tracesFile = join(this.telemetryDir, `traces-${today}.jsonl`);
|
|
955
1122
|
const logsFile = join(this.telemetryDir, `logs-${today}.jsonl`);
|
|
956
1123
|
const llmEventsFile = join(this.telemetryDir, `llm-events-${today}.jsonl`);
|
|
1124
|
+
const evaluationsFile = join(this.telemetryDir, `evaluations-${today}.jsonl`);
|
|
957
1125
|
const hasTraces = existsSync(tracesFile);
|
|
958
1126
|
const hasLogs = existsSync(logsFile);
|
|
959
1127
|
const hasLLMEvents = existsSync(llmEventsFile);
|
|
1128
|
+
const hasEvaluations = existsSync(evaluationsFile);
|
|
960
1129
|
const found = [
|
|
961
1130
|
hasTraces ? 'traces' : '',
|
|
962
1131
|
hasLogs ? 'logs' : '',
|
|
963
1132
|
hasLLMEvents ? 'llm-events' : '',
|
|
1133
|
+
hasEvaluations ? 'evaluations' : '',
|
|
964
1134
|
].filter(Boolean).join(', ');
|
|
965
1135
|
if (!found) {
|
|
966
1136
|
return { status: 'ok', message: `No telemetry files for today (${today})` };
|
|
@@ -1054,6 +1224,19 @@ export class MultiDirectoryBackend {
|
|
|
1054
1224
|
}
|
|
1055
1225
|
return topResults;
|
|
1056
1226
|
}
|
|
1227
|
+
async queryEvaluations(options) {
|
|
1228
|
+
const limit = options.limit || 100;
|
|
1229
|
+
// Query all backends in parallel
|
|
1230
|
+
const allBackendResults = await Promise.all(this.backends.map(b => b.queryEvaluations({ ...options, limit })));
|
|
1231
|
+
// Merge results using bounded insertion for efficient top-K selection
|
|
1232
|
+
const topResults = [];
|
|
1233
|
+
for (const results of allBackendResults) {
|
|
1234
|
+
for (const evaluation of results) {
|
|
1235
|
+
insertSortedBounded(topResults, evaluation, limit, (a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
1236
|
+
}
|
|
1237
|
+
}
|
|
1238
|
+
return topResults;
|
|
1239
|
+
}
|
|
1057
1240
|
async healthCheck() {
|
|
1058
1241
|
if (this.backends.length === 0) {
|
|
1059
1242
|
return { status: 'error', message: 'No telemetry directories found' };
|
|
@@ -1082,6 +1265,7 @@ export class MultiDirectoryBackend {
|
|
|
1082
1265
|
logs: { hits: 0, misses: 0, evictions: 0, size: 0 },
|
|
1083
1266
|
metrics: { hits: 0, misses: 0, evictions: 0, size: 0 },
|
|
1084
1267
|
llmEvents: { hits: 0, misses: 0, evictions: 0, size: 0 },
|
|
1268
|
+
evaluations: { hits: 0, misses: 0, evictions: 0, size: 0 },
|
|
1085
1269
|
};
|
|
1086
1270
|
for (const backend of this.backends) {
|
|
1087
1271
|
const stats = backend.getCacheStats();
|