UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

44 lines (38 loc) 1.66 kB
import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api'; import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'; import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http'; import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'; import { HttpInstrumentation } from '@opentelemetry/instrumentation-http'; import { PgInstrumentation } from '@opentelemetry/instrumentation-pg'; import { resourceFromAttributes } from '@opentelemetry/resources'; import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics'; import { NodeSDK } from '@opentelemetry/sdk-node'; import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions'; export function register(options?: { debug?: true | DiagLogLevel, version?: string; }) { const attributes: Record<string, string> = { [ATTR_SERVICE_NAME]: 'lobe-chat', }; if (typeof options?.version !== 'undefined') { attributes[ATTR_SERVICE_VERSION] = options.version; } if (typeof options?.debug !== 'undefined') { diag.setLogger( new DiagConsoleLogger(), options.debug === true ? DiagLogLevel.DEBUG : options.debug, ); } const sdk = new NodeSDK({ instrumentations: [ new PgInstrumentation(), new HttpInstrumentation(), getNodeAutoInstrumentations(), ], metricReader: new PeriodicExportingMetricReader({ exporter: new OTLPMetricExporter(), }), resource: resourceFromAttributes(attributes), traceExporter: new OTLPTraceExporter(), }); sdk.start(); } export {DiagLogLevel} from '@opentelemetry/api';