jinko-mcp-dev
Version:
MCP server for Jinko Travel BFF
47 lines (46 loc) • 1.61 kB
JavaScript
/**
* Unified telemetry module exports
* Single implementation that works in all environments
*/
import { UnifiedInstrumentation, UnifiedLogger, UnifiedMetrics, LogLevel } from './unified-telemetry.js';
export { UnifiedInstrumentation, UnifiedLogger, UnifiedMetrics, LogLevel };
export { TelemetryMiddleware } from './middleware.js';
// Default configuration from environment
export const defaultTelemetryConfig = {
endpoint: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'https://log.api.jinko.so',
headers: process.env.OTEL_EXPORTER_OTLP_HEADERS
? parseHeaders(process.env.OTEL_EXPORTER_OTLP_HEADERS)
: {},
timeout: parseInt(process.env.OTEL_EXPORTER_OTLP_TIMEOUT || '10000'),
};
function parseHeaders(headersString) {
const headers = {};
headersString.split(',').forEach(header => {
const [key, value] = header.split('=');
if (key && value) {
headers[key.trim()] = value.trim();
}
});
return headers;
}
// Global telemetry instance
let globalInstrumentation = null;
export function initializeTelemetry(config = {}) {
if (!globalInstrumentation) {
const finalConfig = { ...defaultTelemetryConfig, ...config };
globalInstrumentation = new UnifiedInstrumentation(finalConfig);
}
return globalInstrumentation;
}
export function getTelemetry() {
if (!globalInstrumentation) {
return initializeTelemetry();
}
return globalInstrumentation;
}
export function getLogger() {
return getTelemetry().getLogger();
}
export function getMetrics() {
return getTelemetry().getMetrics();
}