@atrim/instrument-node 0.7.1-dev.14fdea7.20260108231415 → 0.7.1-dev.14fdea7.20260108232436

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atrim/instrument-node",
3
- "version": "0.7.1-dev.14fdea7.20260108231415",
3
+ "version": "0.7.1-dev.14fdea7.20260108232436",
4
4
  "description": "OpenTelemetry instrumentation for Node.js with centralized YAML configuration",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -66,7 +66,6 @@
66
66
  "@opentelemetry/sdk-node": "^0.208.0",
67
67
  "@opentelemetry/sdk-trace-base": "^2.2.0",
68
68
  "@opentelemetry/sdk-trace-node": "^2.2.0",
69
- "@opentelemetry/sdk-trace-web": "^2.2.0",
70
69
  "@opentelemetry/semantic-conventions": "^1.38.0",
71
70
  "yaml": "^2.3.0",
72
71
  "zod": "^3.22.0"
@@ -611,67 +611,6 @@ var loadFullConfig = (options) => effect.Effect.gen(function* () {
611
611
  }
612
612
  return config;
613
613
  });
614
-
615
- // src/integrations/effect/auto/effect-tracing.ts
616
- var createEffectTracingLayer = () => {
617
- return effect.Layer.unwrapEffect(
618
- effect.Effect.gen(function* () {
619
- const config = yield* loadFullConfig();
620
- const serviceName = process.env.OTEL_SERVICE_NAME || "effect-service";
621
- const serviceVersion = process.env.npm_package_version || "1.0.0";
622
- const exporterConfig = config.effect?.exporter_config ?? {
623
- type: "otlp",
624
- processor: "batch"
625
- };
626
- logger.log("@atrim/auto-trace: Effect-native tracing enabled");
627
- logger.log(` Service: ${serviceName}`);
628
- logger.log(` Exporter: ${exporterConfig.type}`);
629
- if (exporterConfig.type === "none") {
630
- logger.log('@atrim/auto-trace: Exporter type is "none", using empty layer');
631
- return effect.Layer.empty;
632
- }
633
- const createSpanProcessor = () => {
634
- if (exporterConfig.type === "console") {
635
- logger.log("@atrim/auto-trace: Using ConsoleSpanExporter with SimpleSpanProcessor");
636
- return new sdkTraceBase.SimpleSpanProcessor(new sdkTraceBase.ConsoleSpanExporter());
637
- }
638
- const endpoint = exporterConfig.endpoint || process.env.OTEL_EXPORTER_OTLP_ENDPOINT || "http://localhost:4318";
639
- logger.log(`@atrim/auto-trace: Using OTLPTraceExporter (${endpoint})`);
640
- const otlpConfig = {
641
- url: `${endpoint}/v1/traces`
642
- };
643
- if (exporterConfig.headers) {
644
- otlpConfig.headers = exporterConfig.headers;
645
- logger.log(`@atrim/auto-trace: Using custom headers: ${Object.keys(exporterConfig.headers).join(", ")}`);
646
- }
647
- const exporter = new exporterTraceOtlpHttp.OTLPTraceExporter(otlpConfig);
648
- if (exporterConfig.processor === "simple") {
649
- logger.log("@atrim/auto-trace: Using SimpleSpanProcessor");
650
- return new sdkTraceBase.SimpleSpanProcessor(exporter);
651
- }
652
- const batchConfig = exporterConfig.batch ?? {
653
- scheduled_delay_millis: 1e3,
654
- max_export_batch_size: 100
655
- };
656
- logger.log("@atrim/auto-trace: Using BatchSpanProcessor");
657
- return new sdkTraceBase.BatchSpanProcessor(exporter, {
658
- scheduledDelayMillis: batchConfig.scheduled_delay_millis,
659
- maxExportBatchSize: batchConfig.max_export_batch_size
660
- });
661
- };
662
- const sdkLayer = opentelemetry.NodeSdk.layer(() => ({
663
- resource: {
664
- serviceName,
665
- serviceVersion
666
- },
667
- spanProcessor: createSpanProcessor()
668
- }));
669
- logger.log("@atrim/auto-trace: NodeSdk layer created - HTTP requests will be auto-traced");
670
- return effect.Layer.discard(sdkLayer);
671
- })
672
- );
673
- };
674
- var EffectTracingLive = createEffectTracingLayer();
675
614
  var compiledRulesCache = /* @__PURE__ */ new WeakMap();
676
615
  function compileNamingRules(rules) {
677
616
  const cached = compiledRulesCache.get(rules);
@@ -871,11 +810,21 @@ var AutoTracingSupervisor = class extends effect.Supervisor.AbstractSupervisor {
871
810
  const parentSpan = this.fiberSpans.get(parent.value);
872
811
  if (parentSpan) {
873
812
  parentContext = OtelApi__namespace.trace.setSpan(OtelApi__namespace.ROOT_CONTEXT, parentSpan);
813
+ } else {
814
+ const activeSpan = OtelApi__namespace.trace.getSpan(OtelApi__namespace.context.active());
815
+ if (activeSpan) {
816
+ parentContext = OtelApi__namespace.context.active();
817
+ } else if (this._rootSpan) {
818
+ parentContext = OtelApi__namespace.trace.setSpan(OtelApi__namespace.ROOT_CONTEXT, this._rootSpan);
819
+ }
820
+ }
821
+ } else {
822
+ const activeSpan = OtelApi__namespace.trace.getSpan(OtelApi__namespace.context.active());
823
+ if (activeSpan) {
824
+ parentContext = OtelApi__namespace.context.active();
874
825
  } else if (this._rootSpan) {
875
826
  parentContext = OtelApi__namespace.trace.setSpan(OtelApi__namespace.ROOT_CONTEXT, this._rootSpan);
876
827
  }
877
- } else if (this._rootSpan) {
878
- parentContext = OtelApi__namespace.trace.setSpan(OtelApi__namespace.ROOT_CONTEXT, this._rootSpan);
879
828
  }
880
829
  const span = this.tracer.startSpan(
881
830
  spanName,
@@ -1156,6 +1105,142 @@ var createFullAutoTracingLayer = () => {
1156
1105
  };
1157
1106
  var FullAutoTracingLive = createFullAutoTracingLayer();
1158
1107
 
1108
+ // src/integrations/effect/auto/effect-tracing.ts
1109
+ var createEffectTracingLayer = () => {
1110
+ return effect.Layer.unwrapEffect(
1111
+ effect.Effect.gen(function* () {
1112
+ const config = yield* loadFullConfig();
1113
+ const serviceName = process.env.OTEL_SERVICE_NAME || "effect-service";
1114
+ const serviceVersion = process.env.npm_package_version || "1.0.0";
1115
+ const exporterConfig = config.effect?.exporter_config ?? {
1116
+ type: "otlp",
1117
+ processor: "batch"
1118
+ };
1119
+ logger.log("@atrim/auto-trace: Effect-native tracing enabled");
1120
+ logger.log(` Service: ${serviceName}`);
1121
+ logger.log(` Exporter: ${exporterConfig.type}`);
1122
+ if (exporterConfig.type === "none") {
1123
+ logger.log('@atrim/auto-trace: Exporter type is "none", using empty layer');
1124
+ return effect.Layer.empty;
1125
+ }
1126
+ const createSpanProcessor = () => {
1127
+ if (exporterConfig.type === "console") {
1128
+ logger.log("@atrim/auto-trace: Using ConsoleSpanExporter with SimpleSpanProcessor");
1129
+ return new sdkTraceBase.SimpleSpanProcessor(new sdkTraceBase.ConsoleSpanExporter());
1130
+ }
1131
+ const endpoint = exporterConfig.endpoint || process.env.OTEL_EXPORTER_OTLP_ENDPOINT || "http://localhost:4318";
1132
+ logger.log(`@atrim/auto-trace: Using OTLPTraceExporter (${endpoint})`);
1133
+ const otlpConfig = {
1134
+ url: `${endpoint}/v1/traces`
1135
+ };
1136
+ if (exporterConfig.headers) {
1137
+ otlpConfig.headers = exporterConfig.headers;
1138
+ logger.log(`@atrim/auto-trace: Using custom headers: ${Object.keys(exporterConfig.headers).join(", ")}`);
1139
+ }
1140
+ const exporter = new exporterTraceOtlpHttp.OTLPTraceExporter(otlpConfig);
1141
+ if (exporterConfig.processor === "simple") {
1142
+ logger.log("@atrim/auto-trace: Using SimpleSpanProcessor");
1143
+ return new sdkTraceBase.SimpleSpanProcessor(exporter);
1144
+ }
1145
+ const batchConfig = exporterConfig.batch ?? {
1146
+ scheduled_delay_millis: 1e3,
1147
+ max_export_batch_size: 100
1148
+ };
1149
+ logger.log("@atrim/auto-trace: Using BatchSpanProcessor");
1150
+ return new sdkTraceBase.BatchSpanProcessor(exporter, {
1151
+ scheduledDelayMillis: batchConfig.scheduled_delay_millis,
1152
+ maxExportBatchSize: batchConfig.max_export_batch_size
1153
+ });
1154
+ };
1155
+ const sdkLayer = opentelemetry.NodeSdk.layer(() => ({
1156
+ resource: {
1157
+ serviceName,
1158
+ serviceVersion
1159
+ },
1160
+ spanProcessor: createSpanProcessor()
1161
+ }));
1162
+ logger.log("@atrim/auto-trace: NodeSdk layer created - HTTP requests will be auto-traced");
1163
+ return effect.Layer.discard(sdkLayer);
1164
+ })
1165
+ );
1166
+ };
1167
+ var EffectTracingLive = createEffectTracingLayer();
1168
+ var createCombinedTracingLayer = () => {
1169
+ return effect.Layer.unwrapEffect(
1170
+ effect.Effect.gen(function* () {
1171
+ const config = yield* loadFullConfig();
1172
+ const serviceName = process.env.OTEL_SERVICE_NAME || "effect-service";
1173
+ const serviceVersion = process.env.npm_package_version || "1.0.0";
1174
+ const exporterConfig = config.effect?.exporter_config ?? {
1175
+ type: "otlp",
1176
+ processor: "batch"
1177
+ };
1178
+ const autoConfig = config.effect?.auto_instrumentation ?? {
1179
+ enabled: true,
1180
+ granularity: "fiber",
1181
+ span_naming: {
1182
+ default: "effect.{function}",
1183
+ infer_from_source: true,
1184
+ rules: []
1185
+ },
1186
+ filter: { include: [], exclude: [] },
1187
+ performance: { sampling_rate: 1, min_duration: "0ms", max_concurrent: 0 },
1188
+ metadata: { fiber_info: true, source_location: true, parent_fiber: true }
1189
+ };
1190
+ logger.log("@atrim/auto-trace: Combined tracing enabled (HTTP + Fiber)");
1191
+ logger.log(` Service: ${serviceName}`);
1192
+ logger.log(` Exporter: ${exporterConfig.type}`);
1193
+ if (exporterConfig.type === "none") {
1194
+ logger.log('@atrim/auto-trace: Exporter type is "none", using empty layer');
1195
+ return effect.Layer.empty;
1196
+ }
1197
+ const createSpanProcessor = () => {
1198
+ if (exporterConfig.type === "console") {
1199
+ logger.log("@atrim/auto-trace: Using ConsoleSpanExporter with SimpleSpanProcessor");
1200
+ return new sdkTraceBase.SimpleSpanProcessor(new sdkTraceBase.ConsoleSpanExporter());
1201
+ }
1202
+ const endpoint = exporterConfig.endpoint || process.env.OTEL_EXPORTER_OTLP_ENDPOINT || "http://localhost:4318";
1203
+ logger.log(`@atrim/auto-trace: Using OTLPTraceExporter (${endpoint})`);
1204
+ const otlpConfig = {
1205
+ url: `${endpoint}/v1/traces`
1206
+ };
1207
+ if (exporterConfig.headers) {
1208
+ otlpConfig.headers = exporterConfig.headers;
1209
+ logger.log(`@atrim/auto-trace: Using custom headers: ${Object.keys(exporterConfig.headers).join(", ")}`);
1210
+ }
1211
+ const exporter = new exporterTraceOtlpHttp.OTLPTraceExporter(otlpConfig);
1212
+ if (exporterConfig.processor === "simple") {
1213
+ logger.log("@atrim/auto-trace: Using SimpleSpanProcessor");
1214
+ return new sdkTraceBase.SimpleSpanProcessor(exporter);
1215
+ }
1216
+ const batchConfig = exporterConfig.batch ?? {
1217
+ scheduled_delay_millis: 1e3,
1218
+ max_export_batch_size: 100
1219
+ };
1220
+ logger.log("@atrim/auto-trace: Using BatchSpanProcessor");
1221
+ return new sdkTraceBase.BatchSpanProcessor(exporter, {
1222
+ scheduledDelayMillis: batchConfig.scheduled_delay_millis,
1223
+ maxExportBatchSize: batchConfig.max_export_batch_size
1224
+ });
1225
+ };
1226
+ const sdkLayer = opentelemetry.NodeSdk.layer(() => ({
1227
+ resource: {
1228
+ serviceName,
1229
+ serviceVersion
1230
+ },
1231
+ spanProcessor: createSpanProcessor()
1232
+ }));
1233
+ const supervisor = createAutoTracingSupervisor(autoConfig);
1234
+ const supervisorLayer = effect.Supervisor.addSupervisor(supervisor);
1235
+ logger.log("@atrim/auto-trace: Combined layer created");
1236
+ logger.log(" - HTTP requests: auto-traced via Effect platform");
1237
+ logger.log(" - Forked fibers: auto-traced via Supervisor");
1238
+ return supervisorLayer.pipe(effect.Layer.provideMerge(effect.Layer.discard(sdkLayer)));
1239
+ })
1240
+ );
1241
+ };
1242
+ var CombinedTracingLive = createCombinedTracingLayer();
1243
+
1159
1244
  exports.AutoTracingConfig = AutoTracingConfig;
1160
1245
  exports.AutoTracingConfigLayer = AutoTracingConfigLayer;
1161
1246
  exports.AutoTracingConfigLive = AutoTracingConfigLive;
@@ -1163,10 +1248,12 @@ exports.AutoTracingEnabled = AutoTracingEnabled;
1163
1248
  exports.AutoTracingLive = AutoTracingLive;
1164
1249
  exports.AutoTracingSpanName = AutoTracingSpanName;
1165
1250
  exports.AutoTracingSupervisor = AutoTracingSupervisor;
1251
+ exports.CombinedTracingLive = CombinedTracingLive;
1166
1252
  exports.EffectTracingLive = EffectTracingLive;
1167
1253
  exports.FullAutoTracingLive = FullAutoTracingLive;
1168
1254
  exports.createAutoTracingLayer = createAutoTracingLayer;
1169
1255
  exports.createAutoTracingSupervisor = createAutoTracingSupervisor;
1256
+ exports.createCombinedTracingLayer = createCombinedTracingLayer;
1170
1257
  exports.createEffectTracingLayer = createEffectTracingLayer;
1171
1258
  exports.createFullAutoTracingLayer = createFullAutoTracingLayer;
1172
1259
  exports.defaultAutoTracingConfig = defaultAutoTracingConfig;