UNPKG

tilt-ts-core

Version:

A TypeScript implementation of a Tilt-like development tool for Kubernetes live development workflows

72 lines (68 loc) 2.73 kB
'use strict'; var sdkNode = require('@opentelemetry/sdk-node'); var autoInstrumentationsNode = require('@opentelemetry/auto-instrumentations-node'); var exporterTraceOtlpHttp = require('@opentelemetry/exporter-trace-otlp-http'); var resources = require('@opentelemetry/resources'); var semanticConventions = require('@opentelemetry/semantic-conventions'); var apiLogs = require('@opentelemetry/api-logs'); var sdkLogs = require('@opentelemetry/sdk-logs'); var exporterLogsOtlpHttp = require('@opentelemetry/exporter-logs-otlp-http'); function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n.default = e; return Object.freeze(n); } var resources__namespace = /*#__PURE__*/_interopNamespace(resources); // src/instrumentation/telemetry.ts var resource = resources__namespace.resourceFromAttributes({ [semanticConventions.SemanticResourceAttributes.SERVICE_NAME]: "tilt-ts-core", [semanticConventions.SemanticResourceAttributes.SERVICE_VERSION]: "1.0.0" }); var sdk = new sdkNode.NodeSDK({ resource, traceExporter: new exporterTraceOtlpHttp.OTLPTraceExporter(), instrumentations: [autoInstrumentationsNode.getNodeAutoInstrumentations()] }); sdk.start(); var processors = [ new sdkLogs.SimpleLogRecordProcessor(new sdkLogs.ConsoleLogRecordExporter()), new sdkLogs.BatchLogRecordProcessor(new exporterLogsOtlpHttp.OTLPLogExporter()) ]; var loggerProvider = new sdkLogs.LoggerProvider({ resource, processors }); apiLogs.logs.setGlobalLoggerProvider(loggerProvider); console.log("Tracing enabled"); var handleExit = (reason, e) => { console.log(`Trace Process exiting: ${reason}`, e); Promise.allSettled([sdk.shutdown(), loggerProvider.shutdown()]).then(() => console.log("Tracing terminated")).catch((error) => console.log("Error terminating tracing", error)).finally(() => process.exit(0)); }; process.on("SIGINT", () => handleExit("SIGINT")); process.on("SIGTERM", () => handleExit("SIGTERM")); process.on("uncaughtException", (err) => { handleExit("uncaughtException", err); }); process.on("unhandledRejection", (reason) => { handleExit("unhandledRejection", reason); }); process.on("beforeExit", (code) => { handleExit("beforeExit", { code }); }); var logger = apiLogs.logs.getLogger("app"); logger.emit({ severityText: "INFO", body: "server started", attributes: { port: 8080 } }); //# sourceMappingURL=telemetry.cjs.map //# sourceMappingURL=telemetry.cjs.map