tilt-ts-core
Version:
A TypeScript implementation of a Tilt-like development tool for Kubernetes live development workflows
1 lines • 4.58 kB
Source Map (JSON)
{"version":3,"sources":["../../src/instrumentation/telemetry.ts"],"names":["resources","R","NodeSDK","OTLPTraceExporter","getNodeAutoInstrumentations","SimpleLogRecordProcessor","ConsoleLogRecordExporter","BatchLogRecordProcessor","OTLPLogExporter","SDKLoggerProvider","logs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAM,WAAqBA,oBAAA,CAAA,sBAAA,CAAuB;AAAA,EAChD,CAACC,8CAAA,CAAE,YAAY,GAAG,cAAA;AAAA,EAClB,CAACA,8CAAA,CAAE,eAAe,GAAG;AACvB,CAAC,CAAA;AAGD,IAAM,GAAA,GAAM,IAAIC,eAAA,CAAQ;AAAA,EACtB,QAAA;AAAA,EACA,aAAA,EAAe,IAAIC,uCAAA,EAAkB;AAAA,EACrC,gBAAA,EAAkB,CAACC,oDAAA,EAA6B;AAClD,CAAC,CAAA;AACD,GAAA,CAAI,KAAA,EAAM;AAGV,IAAM,UAAA,GAAmC;AAAA,EACvC,IAAIC,gCAAA,CAAyB,IAAIC,gCAAA,EAA0B,CAAA;AAAA,EAC3D,IAAIC,+BAAA,CAAwB,IAAIC,oCAAA,EAAiB;AACnD,CAAA;AAEA,IAAM,iBAAiB,IAAIC,sBAAA,CAAkB,EAAE,QAAA,EAAU,YAAY,CAAA;AACrEC,YAAA,CAAK,wBAAwB,cAAc,CAAA;AAK3C,OAAA,CAAQ,IAAI,iBAAiB,CAAA;AAE7B,IAAM,UAAA,GAAa,CAAC,MAAA,EAAa,CAAA,KAAY;AAC3C,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,uBAAA,EAA0B,MAAM,CAAA,CAAA,EAAI,CAAC,CAAA;AAEjD,EAAA,OAAA,CAAQ,UAAA,CAAW,CAAC,GAAA,CAAI,QAAA,EAAS,EAAG,cAAA,CAAe,QAAA,EAAU,CAAC,CAAA,CAC3D,IAAA,CAAK,MAAM,QAAQ,GAAA,CAAI,oBAAoB,CAAC,CAAA,CAC5C,KAAA,CAAM,CAAC,KAAA,KAAU,OAAA,CAAQ,IAAI,2BAAA,EAA6B,KAAK,CAAC,CAAA,CAChE,OAAA,CAAQ,MAAM,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAC,CAAA;AAClC,CAAA;AAGA,OAAA,CAAQ,EAAA,CAAG,QAAA,EAAU,MAAM,UAAA,CAAW,QAAQ,CAAC,CAAA;AAC/C,OAAA,CAAQ,EAAA,CAAG,SAAA,EAAW,MAAM,UAAA,CAAW,SAAS,CAAC,CAAA;AAGjD,OAAA,CAAQ,EAAA,CAAG,mBAAA,EAAqB,CAAC,GAAA,KAAQ;AACvC,EAAA,UAAA,CAAW,qBAAqB,GAAG,CAAA;AACrC,CAAC,CAAA;AAED,OAAA,CAAQ,EAAA,CAAG,oBAAA,EAAsB,CAAC,MAAA,KAAW;AAC3C,EAAA,UAAA,CAAW,sBAAsB,MAAM,CAAA;AACzC,CAAC,CAAA;AAGD,OAAA,CAAQ,EAAA,CAAG,YAAA,EAAc,CAAC,IAAA,KAAS;AACjC,EAAA,UAAA,CAAW,YAAA,EAAc,EAAE,IAAA,EAAM,CAAA;AACnC,CAAC,CAAA;AAGD,IAAM,MAAA,GAASA,YAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AACnC,MAAA,CAAO,IAAA,CAAK;AAAA,EACV,YAAA,EAAc,MAAA;AAAA,EACd,IAAA,EAAM,gBAAA;AAAA,EACN,UAAA,EAAY,EAAE,IAAA,EAAM,IAAA;AACtB,CAAC,CAAA","file":"telemetry.cjs","sourcesContent":["// telemetry.ts\nimport { NodeSDK } from \"@opentelemetry/sdk-node\";\nimport { getNodeAutoInstrumentations } from \"@opentelemetry/auto-instrumentations-node\";\nimport { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport { ConsoleSpanExporter } from '@opentelemetry/sdk-trace-base';\nimport * as resources from \"@opentelemetry/resources\";\nimport { SemanticResourceAttributes as R } from \"@opentelemetry/semantic-conventions\";\n\nimport { logs } from \"@opentelemetry/api-logs\";\nimport {\n LoggerProvider as SDKLoggerProvider,\n BatchLogRecordProcessor,\n SimpleLogRecordProcessor,\n ConsoleLogRecordExporter,\n type LogRecordProcessor,\n} from \"@opentelemetry/sdk-logs\";\nimport { OTLPLogExporter } from \"@opentelemetry/exporter-logs-otlp-http\";\n\n// shared resource\nconst resource = resources.resourceFromAttributes({\n [R.SERVICE_NAME]: \"tilt-ts-core\",\n [R.SERVICE_VERSION]: \"1.0.0\",\n});\n\n// traces\nconst sdk = new NodeSDK({\n resource,\n traceExporter: new OTLPTraceExporter(),\n instrumentations: [getNodeAutoInstrumentations()],\n});\nsdk.start();\n\n// logs: processors passed in constructor\nconst processors: LogRecordProcessor[] = [\n new SimpleLogRecordProcessor(new ConsoleLogRecordExporter()),\n new BatchLogRecordProcessor(new OTLPLogExporter()),\n];\n\nconst loggerProvider = new SDKLoggerProvider({ resource, processors });\nlogs.setGlobalLoggerProvider(loggerProvider);\n\n/**\n * Error handling and graceful shutdown\n */\nconsole.log(\"Tracing enabled\");\n\nconst handleExit = (reason: any, e?: any) => {\n console.log(`Trace Process exiting: ${reason}`, e);\n\n Promise.allSettled([sdk.shutdown(), loggerProvider.shutdown()])\n .then(() => console.log(\"Tracing terminated\"))\n .catch((error) => console.log(\"Error terminating tracing\", error))\n .finally(() => process.exit(0));\n};\n\n// Graceful shutdown signals\nprocess.on(\"SIGINT\", () => handleExit(\"SIGINT\"));\nprocess.on(\"SIGTERM\", () => handleExit(\"SIGTERM\"));\n\n// Optional: catch exceptions and rejections\nprocess.on(\"uncaughtException\", (err) => {\n handleExit(\"uncaughtException\", err);\n});\n\nprocess.on(\"unhandledRejection\", (reason) => {\n handleExit(\"unhandledRejection\", reason);\n});\n\n// beforeExit: can still run async work\nprocess.on(\"beforeExit\", (code) => {\n handleExit(\"beforeExit\", { code });\n});\n\n// Usage example with direct logger\nconst logger = logs.getLogger(\"app\");\nlogger.emit({\n severityText: \"INFO\",\n body: \"server started\",\n attributes: { port: 8080 },\n});\n"]}