@erickluis00/otelviewer
Version:
Shared OpenTelemetry tracing utilities, types, and batch processor for Realtime OpenTelemetry Viewer [WIP]
45 lines • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ENV_VARS = exports.DEFAULT_CONFIG = void 0;
exports.createConfig = createConfig;
exports.logConfig = logConfig;
/**
* Default configuration values
*/
exports.DEFAULT_CONFIG = {
ingestUrl: 'http://localhost:3000/api/traces/ingest-spans',
ingestSecret: 'ingest-secret-random-string',
projectId: 'default-project',
snapshotInterval: process.env.NODE_ENV === 'production' ? 1000 : 200,
viewerPort: 4445,
};
/**
* Environment variable names used for configuration
*/
exports.ENV_VARS = {
INGEST_URL: 'OTEL_VIEWER_INGEST_URL',
INGEST_SECRET: 'OTEL_VIEWER_INGEST_SECRET',
PROJECT_ID: 'OTEL_PROJECT_ID',
VIEWER_PORT: 'OTEL_VIEWER_PORT',
};
/**
* Create configuration from environment variables and optional overrides
*/
function createConfig(overrides = {}) {
return {
ingestUrl: overrides.ingestUrl || process.env[exports.ENV_VARS.INGEST_URL] || exports.DEFAULT_CONFIG.ingestUrl,
ingestSecret: overrides.ingestSecret || process.env[exports.ENV_VARS.INGEST_SECRET] || exports.DEFAULT_CONFIG.ingestSecret,
projectId: overrides.projectId || process.env[exports.ENV_VARS.PROJECT_ID] || exports.DEFAULT_CONFIG.projectId,
snapshotInterval: overrides.snapshotInterval || exports.DEFAULT_CONFIG.snapshotInterval,
viewerPort: overrides.viewerPort || parseInt(process.env[exports.ENV_VARS.VIEWER_PORT] || '') || exports.DEFAULT_CONFIG.viewerPort,
};
}
/**
* Utility function to log configuration on startup
*/
function logConfig(config) {
console.log(`🏷️ OTEL Project ID: ${config.projectId}`);
console.log(`📡 OTEL Ingest URL: ${config.ingestUrl}`);
console.log(`⏰ OTEL Snapshot Interval: ${config.snapshotInterval}ms`);
}
//# sourceMappingURL=config.js.map