catalyst-core-internal 0.0.1-beta.66 → 0.0.1-beta.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +8 -0
- package/dist/otel.js +4 -0
- package/package.json +3 -2
package/changelog.md
CHANGED
package/dist/otel.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _api=require("@opentelemetry/api");var _sdkNode=require("@opentelemetry/sdk-node");var _resources=require("@opentelemetry/resources");var _sdkTraceNode=require("@opentelemetry/sdk-trace-node");var _sdkMetrics=require("@opentelemetry/sdk-metrics");var _exporterTraceOtlpHttp=require("@opentelemetry/exporter-trace-otlp-http");var _exporterMetricsOtlpHttp=require("@opentelemetry/exporter-metrics-otlp-http");var _autoInstrumentationsNode=require("@opentelemetry/auto-instrumentations-node");var _semanticConventions=require("@opentelemetry/semantic-conventions");function init(config={}){const{serviceName="catalyst-server",serviceVersion="1.0.0",environment="development",traceUrl="http://localhost:4318/v1/traces",metricUrl="http://localhost:4318/v1/metrics",traceHeaders={},metricHeaders={},exportIntervalMillis=10000,exportTimeoutMillis=10000}=config;try{const otlpTraceExporter=new _exporterTraceOtlpHttp.OTLPTraceExporter({url:traceUrl,headers:traceHeaders});const otlpMetricExporter=new _exporterMetricsOtlpHttp.OTLPMetricExporter({url:metricUrl,headers:metricHeaders});const sdk=new _sdkNode.NodeSDK({resource:(0,_resources.resourceFromAttributes)({[_semanticConventions.ATTR_SERVICE_NAME]:serviceName,[_semanticConventions.ATTR_SERVICE_VERSION]:serviceVersion,[_semanticConventions.ATTR_DEPLOYMENT_ENVIRONMENT]:environment}),spanProcessor:new _sdkTraceNode.BatchSpanProcessor(otlpTraceExporter,{exportTimeoutMillis,scheduledDelayMillis:exportIntervalMillis,maxQueueSize:100,maxExportBatchSize:10}),metricReader:new _sdkMetrics.PeriodicExportingMetricReader({exporter:otlpMetricExporter,exportIntervalMillis}),instrumentations:[(0,_autoInstrumentationsNode.getNodeAutoInstrumentations)()]});sdk.start();logger.info("✅ OpenTelemetry started successfully");const meter=initializeCustomMetrics(serviceName,serviceVersion);const gracefulShutdown=signal=>{logger.info(`📡 Received ${signal}, shutting down OpenTelemetry gracefully...`);sdk.shutdown().then(()=>logger.info("✅ OpenTelemetry shutdown completed")).catch(error=>{logger.error("❌ Error terminating OpenTelemetry:",error);}).finally(()=>process.exit());};process.on("SIGTERM",()=>gracefulShutdown("SIGTERM"));process.on("SIGINT",()=>gracefulShutdown("SIGINT"));return{sdk,meter};}catch(error){logger.error("❌ Failed to initialize OpenTelemetry:",error);throw error;}}function initializeCustomMetrics(serviceName,serviceVersion){let customMetrics={};const meter=_api.metrics.getMeter(serviceName,serviceVersion);// CPU usage gauge
|
|
2
|
+
customMetrics.cpuUsage=meter.createObservableGauge("process_cpu_usage_percent",{description:"Current CPU usage percentage"});// Memory usage gauges
|
|
3
|
+
customMetrics.memoryUsage=meter.createObservableGauge("process_memory_usage_bytes",{description:"Current memory usage in bytes",unit:"bytes"});customMetrics.memoryHeapUsed=meter.createObservableGauge("process_memory_heap_used_bytes",{description:"Current heap memory used in bytes",unit:"bytes"});customMetrics.memoryHeapTotal=meter.createObservableGauge("process_memory_heap_total_bytes",{description:"Current heap memory total in bytes",unit:"bytes"});let lastCpuUsage=process.cpuUsage();let lastMeasureTime=process.hrtime.bigint();customMetrics.cpuUsage.addCallback(result=>{const currentCpuUsage=process.cpuUsage(lastCpuUsage);const currentTime=process.hrtime.bigint();const timeDiff=Number(currentTime-lastMeasureTime)/1000000;// Convert to milliseconds
|
|
4
|
+
const cpuPercent=(currentCpuUsage.user+currentCpuUsage.system)/1000/timeDiff*100;result.observe(cpuPercent);lastCpuUsage=process.cpuUsage();lastMeasureTime=currentTime;});customMetrics.memoryUsage.addCallback(result=>{const memUsage=process.memoryUsage();result.observe(memUsage.rss,{type:"rss"});result.observe(memUsage.external,{type:"external"});result.observe(memUsage.arrayBuffers,{type:"arrayBuffers"});});customMetrics.memoryHeapUsed.addCallback(result=>{const memUsage=process.memoryUsage();result.observe(memUsage.heapUsed);});customMetrics.memoryHeapTotal.addCallback(result=>{const memUsage=process.memoryUsage();result.observe(memUsage.heapTotal);});return meter;}var _default=exports.default={init};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "catalyst-core-internal",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.67",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"description": "Web framework that provides great performance out of the box",
|
|
6
6
|
"bin": {
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
"./logger": "./dist/logger.js",
|
|
30
30
|
"./caching": "./dist/caching.js",
|
|
31
31
|
"./router/ClientRouter": "./dist/router/ClientRouter.js",
|
|
32
|
-
"./sentry": "./dist/sentry.js"
|
|
32
|
+
"./sentry": "./dist/sentry.js",
|
|
33
|
+
"./otel": "./dist/otel.js"
|
|
33
34
|
},
|
|
34
35
|
"scripts": {
|
|
35
36
|
"lint": "eslint .",
|