import { TelemetryConfig } from './telemetry.js';
import { existsSync, unlinkSync } from 'fs';
console.log('Testing OpenTelemetry tracing setup...\n');
console.log('๐ Test 1: File tracing');
const testFile = './test-traces.jsonl';
if (existsSync(testFile)) {
unlinkSync(testFile);
}
const fileConfig = new TelemetryConfig({
serviceName: 'probe-chat-test',
serviceVersion: '1.0.0',
enableFile: true,
enableConsole: false,
enableRemote: false,
filePath: testFile,
});
fileConfig.initialize();
const span = fileConfig.createSpan('test-operation', {
'test.attribute': 'test-value',
'session.id': 'test-session-123'
});
if (span) {
console.log('โ
Span created successfully');
span.addEvent('Test event', { 'event.data': 'test-data' });
span.end();
setTimeout(() => {
if (existsSync(testFile)) {
console.log('โ
Trace file created successfully');
console.log(`๐ Trace file location: ${testFile}`);
unlinkSync(testFile);
console.log('๐งน Test file cleaned up');
} else {
console.log('โ Trace file not created');
}
console.log('\n๐ Test 2: Console tracing');
const consoleConfig = new TelemetryConfig({
serviceName: 'probe-chat-test',
serviceVersion: '1.0.0',
enableFile: false,
enableConsole: true,
enableRemote: false,
});
consoleConfig.initialize();
const consoleSpan = consoleConfig.createSpan('console-test-operation', {
'console.test': 'true'
});
if (consoleSpan) {
console.log('โ
Console span created successfully');
consoleSpan.addEvent('Console test event');
consoleSpan.end();
} else {
console.log('โ Console span creation failed');
}
console.log('\n๐ Test 3: Disabled tracing');
const disabledConfig = new TelemetryConfig({
serviceName: 'probe-chat-test',
serviceVersion: '1.0.0',
enableFile: false,
enableConsole: false,
enableRemote: false,
});
disabledConfig.initialize();
const disabledSpan = disabledConfig.createSpan('disabled-operation');
if (disabledSpan === null) {
console.log('โ
Disabled tracing correctly returns null span');
} else {
console.log('โ Disabled tracing should return null span');
}
console.log('\n๐ All tests completed!');
console.log('\nTo test with actual AI calls, run:');
console.log('node index.js --trace-file --trace-console --message "Hello world"');
fileConfig.shutdown();
consoleConfig.shutdown();
disabledConfig.shutdown();
}, 1000);
} else {
console.log('โ Span creation failed');
fileConfig.shutdown();
}