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
JavaScript
;
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