tilt-ts-core
Version:
A TypeScript implementation of a Tilt-like development tool for Kubernetes live development workflows
50 lines (49 loc) • 2.12 kB
JavaScript
import { NodeSDK } from '@opentelemetry/sdk-node';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
import * as resources from '@opentelemetry/resources';
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
import { logs } from '@opentelemetry/api-logs';
import { SimpleLogRecordProcessor, BatchLogRecordProcessor, ConsoleLogRecordExporter, LoggerProvider } from '@opentelemetry/sdk-logs';
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
// src/instrumentation/telemetry.ts
var resource = resources.resourceFromAttributes({
[SemanticResourceAttributes.SERVICE_NAME]: "tilt-ts-core",
[SemanticResourceAttributes.SERVICE_VERSION]: "1.0.0"
});
var sdk = new NodeSDK({
resource,
traceExporter: new OTLPTraceExporter(),
instrumentations: [getNodeAutoInstrumentations()]
});
sdk.start();
var processors = [
new SimpleLogRecordProcessor(new ConsoleLogRecordExporter()),
new BatchLogRecordProcessor(new OTLPLogExporter())
];
var loggerProvider = new LoggerProvider({ resource, processors });
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 = logs.getLogger("app");
logger.emit({
severityText: "INFO",
body: "server started",
attributes: { port: 8080 }
});
//# sourceMappingURL=telemetry.js.map
//# sourceMappingURL=telemetry.js.map