autotel 2.1.0

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.
Files changed (272) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1946 -0
  3. package/dist/chunk-2LNRY4QK.js +273 -0
  4. package/dist/chunk-2LNRY4QK.js.map +1 -0
  5. package/dist/chunk-3HENGDW2.js +587 -0
  6. package/dist/chunk-3HENGDW2.js.map +1 -0
  7. package/dist/chunk-4OAT42CA.cjs +73 -0
  8. package/dist/chunk-4OAT42CA.cjs.map +1 -0
  9. package/dist/chunk-5GWX5LFW.js +70 -0
  10. package/dist/chunk-5GWX5LFW.js.map +1 -0
  11. package/dist/chunk-5R2M36QB.js +195 -0
  12. package/dist/chunk-5R2M36QB.js.map +1 -0
  13. package/dist/chunk-5ZN622AO.js +73 -0
  14. package/dist/chunk-5ZN622AO.js.map +1 -0
  15. package/dist/chunk-77MSMAUQ.cjs +498 -0
  16. package/dist/chunk-77MSMAUQ.cjs.map +1 -0
  17. package/dist/chunk-ABPEQ6RK.cjs +596 -0
  18. package/dist/chunk-ABPEQ6RK.cjs.map +1 -0
  19. package/dist/chunk-BWYGJKRB.js +95 -0
  20. package/dist/chunk-BWYGJKRB.js.map +1 -0
  21. package/dist/chunk-BZHG5IZ4.js +73 -0
  22. package/dist/chunk-BZHG5IZ4.js.map +1 -0
  23. package/dist/chunk-G7VZBCD6.cjs +35 -0
  24. package/dist/chunk-G7VZBCD6.cjs.map +1 -0
  25. package/dist/chunk-GVLK7YUU.cjs +30 -0
  26. package/dist/chunk-GVLK7YUU.cjs.map +1 -0
  27. package/dist/chunk-HCCXC7XG.js +205 -0
  28. package/dist/chunk-HCCXC7XG.js.map +1 -0
  29. package/dist/chunk-HE6T6FIX.cjs +203 -0
  30. package/dist/chunk-HE6T6FIX.cjs.map +1 -0
  31. package/dist/chunk-KIXWPOCO.cjs +100 -0
  32. package/dist/chunk-KIXWPOCO.cjs.map +1 -0
  33. package/dist/chunk-KVGNW3FC.js +87 -0
  34. package/dist/chunk-KVGNW3FC.js.map +1 -0
  35. package/dist/chunk-LITNXTTT.js +3 -0
  36. package/dist/chunk-LITNXTTT.js.map +1 -0
  37. package/dist/chunk-M4ANN7RL.js +114 -0
  38. package/dist/chunk-M4ANN7RL.js.map +1 -0
  39. package/dist/chunk-NC52UBR2.cjs +32 -0
  40. package/dist/chunk-NC52UBR2.cjs.map +1 -0
  41. package/dist/chunk-NHCNRQD3.cjs +212 -0
  42. package/dist/chunk-NHCNRQD3.cjs.map +1 -0
  43. package/dist/chunk-NZ72VDNY.cjs +4 -0
  44. package/dist/chunk-NZ72VDNY.cjs.map +1 -0
  45. package/dist/chunk-P6JUDYNO.js +57 -0
  46. package/dist/chunk-P6JUDYNO.js.map +1 -0
  47. package/dist/chunk-RJYY7BWX.js +1349 -0
  48. package/dist/chunk-RJYY7BWX.js.map +1 -0
  49. package/dist/chunk-TRI4V5BF.cjs +126 -0
  50. package/dist/chunk-TRI4V5BF.cjs.map +1 -0
  51. package/dist/chunk-UL33I6IS.js +139 -0
  52. package/dist/chunk-UL33I6IS.js.map +1 -0
  53. package/dist/chunk-URRW6M2C.cjs +61 -0
  54. package/dist/chunk-URRW6M2C.cjs.map +1 -0
  55. package/dist/chunk-UY3UYPBZ.cjs +77 -0
  56. package/dist/chunk-UY3UYPBZ.cjs.map +1 -0
  57. package/dist/chunk-W3253FGB.cjs +277 -0
  58. package/dist/chunk-W3253FGB.cjs.map +1 -0
  59. package/dist/chunk-W7LHZVQF.js +26 -0
  60. package/dist/chunk-W7LHZVQF.js.map +1 -0
  61. package/dist/chunk-WBWNM6LB.cjs +1360 -0
  62. package/dist/chunk-WBWNM6LB.cjs.map +1 -0
  63. package/dist/chunk-WFJ7L2RV.js +494 -0
  64. package/dist/chunk-WFJ7L2RV.js.map +1 -0
  65. package/dist/chunk-X4RMFFMR.js +28 -0
  66. package/dist/chunk-X4RMFFMR.js.map +1 -0
  67. package/dist/chunk-Y4Y2S7BM.cjs +92 -0
  68. package/dist/chunk-Y4Y2S7BM.cjs.map +1 -0
  69. package/dist/chunk-YLPNXZFI.cjs +143 -0
  70. package/dist/chunk-YLPNXZFI.cjs.map +1 -0
  71. package/dist/chunk-YTXEZ4SD.cjs +77 -0
  72. package/dist/chunk-YTXEZ4SD.cjs.map +1 -0
  73. package/dist/chunk-Z6ZWNWWR.js +30 -0
  74. package/dist/chunk-Z6ZWNWWR.js.map +1 -0
  75. package/dist/config.cjs +26 -0
  76. package/dist/config.cjs.map +1 -0
  77. package/dist/config.d.cts +75 -0
  78. package/dist/config.d.ts +75 -0
  79. package/dist/config.js +5 -0
  80. package/dist/config.js.map +1 -0
  81. package/dist/db.cjs +233 -0
  82. package/dist/db.cjs.map +1 -0
  83. package/dist/db.d.cts +123 -0
  84. package/dist/db.d.ts +123 -0
  85. package/dist/db.js +228 -0
  86. package/dist/db.js.map +1 -0
  87. package/dist/decorators.cjs +67 -0
  88. package/dist/decorators.cjs.map +1 -0
  89. package/dist/decorators.d.cts +91 -0
  90. package/dist/decorators.d.ts +91 -0
  91. package/dist/decorators.js +65 -0
  92. package/dist/decorators.js.map +1 -0
  93. package/dist/event-subscriber.cjs +6 -0
  94. package/dist/event-subscriber.cjs.map +1 -0
  95. package/dist/event-subscriber.d.cts +116 -0
  96. package/dist/event-subscriber.d.ts +116 -0
  97. package/dist/event-subscriber.js +3 -0
  98. package/dist/event-subscriber.js.map +1 -0
  99. package/dist/event-testing.cjs +21 -0
  100. package/dist/event-testing.cjs.map +1 -0
  101. package/dist/event-testing.d.cts +110 -0
  102. package/dist/event-testing.d.ts +110 -0
  103. package/dist/event-testing.js +4 -0
  104. package/dist/event-testing.js.map +1 -0
  105. package/dist/event.cjs +30 -0
  106. package/dist/event.cjs.map +1 -0
  107. package/dist/event.d.cts +282 -0
  108. package/dist/event.d.ts +282 -0
  109. package/dist/event.js +13 -0
  110. package/dist/event.js.map +1 -0
  111. package/dist/exporters.cjs +17 -0
  112. package/dist/exporters.cjs.map +1 -0
  113. package/dist/exporters.d.cts +1 -0
  114. package/dist/exporters.d.ts +1 -0
  115. package/dist/exporters.js +4 -0
  116. package/dist/exporters.js.map +1 -0
  117. package/dist/functional.cjs +46 -0
  118. package/dist/functional.cjs.map +1 -0
  119. package/dist/functional.d.cts +478 -0
  120. package/dist/functional.d.ts +478 -0
  121. package/dist/functional.js +13 -0
  122. package/dist/functional.js.map +1 -0
  123. package/dist/http.cjs +189 -0
  124. package/dist/http.cjs.map +1 -0
  125. package/dist/http.d.cts +169 -0
  126. package/dist/http.d.ts +169 -0
  127. package/dist/http.js +184 -0
  128. package/dist/http.js.map +1 -0
  129. package/dist/index.cjs +333 -0
  130. package/dist/index.cjs.map +1 -0
  131. package/dist/index.d.cts +758 -0
  132. package/dist/index.d.ts +758 -0
  133. package/dist/index.js +143 -0
  134. package/dist/index.js.map +1 -0
  135. package/dist/instrumentation.cjs +182 -0
  136. package/dist/instrumentation.cjs.map +1 -0
  137. package/dist/instrumentation.d.cts +49 -0
  138. package/dist/instrumentation.d.ts +49 -0
  139. package/dist/instrumentation.js +179 -0
  140. package/dist/instrumentation.js.map +1 -0
  141. package/dist/logger.cjs +19 -0
  142. package/dist/logger.cjs.map +1 -0
  143. package/dist/logger.d.cts +146 -0
  144. package/dist/logger.d.ts +146 -0
  145. package/dist/logger.js +6 -0
  146. package/dist/logger.js.map +1 -0
  147. package/dist/metric-helpers.cjs +31 -0
  148. package/dist/metric-helpers.cjs.map +1 -0
  149. package/dist/metric-helpers.d.cts +13 -0
  150. package/dist/metric-helpers.d.ts +13 -0
  151. package/dist/metric-helpers.js +6 -0
  152. package/dist/metric-helpers.js.map +1 -0
  153. package/dist/metric-testing.cjs +21 -0
  154. package/dist/metric-testing.cjs.map +1 -0
  155. package/dist/metric-testing.d.cts +110 -0
  156. package/dist/metric-testing.d.ts +110 -0
  157. package/dist/metric-testing.js +4 -0
  158. package/dist/metric-testing.js.map +1 -0
  159. package/dist/metric.cjs +26 -0
  160. package/dist/metric.cjs.map +1 -0
  161. package/dist/metric.d.cts +240 -0
  162. package/dist/metric.d.ts +240 -0
  163. package/dist/metric.js +9 -0
  164. package/dist/metric.js.map +1 -0
  165. package/dist/processors.cjs +17 -0
  166. package/dist/processors.cjs.map +1 -0
  167. package/dist/processors.d.cts +1 -0
  168. package/dist/processors.d.ts +1 -0
  169. package/dist/processors.js +4 -0
  170. package/dist/processors.js.map +1 -0
  171. package/dist/sampling.cjs +40 -0
  172. package/dist/sampling.cjs.map +1 -0
  173. package/dist/sampling.d.cts +260 -0
  174. package/dist/sampling.d.ts +260 -0
  175. package/dist/sampling.js +7 -0
  176. package/dist/sampling.js.map +1 -0
  177. package/dist/semantic-helpers.cjs +35 -0
  178. package/dist/semantic-helpers.cjs.map +1 -0
  179. package/dist/semantic-helpers.d.cts +442 -0
  180. package/dist/semantic-helpers.d.ts +442 -0
  181. package/dist/semantic-helpers.js +14 -0
  182. package/dist/semantic-helpers.js.map +1 -0
  183. package/dist/tail-sampling-processor.cjs +13 -0
  184. package/dist/tail-sampling-processor.cjs.map +1 -0
  185. package/dist/tail-sampling-processor.d.cts +27 -0
  186. package/dist/tail-sampling-processor.d.ts +27 -0
  187. package/dist/tail-sampling-processor.js +4 -0
  188. package/dist/tail-sampling-processor.js.map +1 -0
  189. package/dist/testing.cjs +286 -0
  190. package/dist/testing.cjs.map +1 -0
  191. package/dist/testing.d.cts +291 -0
  192. package/dist/testing.d.ts +291 -0
  193. package/dist/testing.js +263 -0
  194. package/dist/testing.js.map +1 -0
  195. package/dist/trace-context-DRZdUvVY.d.cts +181 -0
  196. package/dist/trace-context-DRZdUvVY.d.ts +181 -0
  197. package/dist/trace-helpers.cjs +54 -0
  198. package/dist/trace-helpers.cjs.map +1 -0
  199. package/dist/trace-helpers.d.cts +524 -0
  200. package/dist/trace-helpers.d.ts +524 -0
  201. package/dist/trace-helpers.js +5 -0
  202. package/dist/trace-helpers.js.map +1 -0
  203. package/dist/tracer-provider.cjs +21 -0
  204. package/dist/tracer-provider.cjs.map +1 -0
  205. package/dist/tracer-provider.d.cts +169 -0
  206. package/dist/tracer-provider.d.ts +169 -0
  207. package/dist/tracer-provider.js +4 -0
  208. package/dist/tracer-provider.js.map +1 -0
  209. package/package.json +280 -0
  210. package/src/baggage-span-processor.test.ts +202 -0
  211. package/src/baggage-span-processor.ts +98 -0
  212. package/src/circuit-breaker.test.ts +341 -0
  213. package/src/circuit-breaker.ts +184 -0
  214. package/src/config.test.ts +94 -0
  215. package/src/config.ts +169 -0
  216. package/src/db.test.ts +252 -0
  217. package/src/db.ts +447 -0
  218. package/src/decorators.test.ts +203 -0
  219. package/src/decorators.ts +188 -0
  220. package/src/env-config.test.ts +246 -0
  221. package/src/env-config.ts +158 -0
  222. package/src/event-queue.test.ts +222 -0
  223. package/src/event-queue.ts +203 -0
  224. package/src/event-subscriber.ts +136 -0
  225. package/src/event-testing.ts +197 -0
  226. package/src/event.test.ts +718 -0
  227. package/src/event.ts +556 -0
  228. package/src/exporters.ts +96 -0
  229. package/src/functional.test.ts +1059 -0
  230. package/src/functional.ts +2295 -0
  231. package/src/http.test.ts +487 -0
  232. package/src/http.ts +424 -0
  233. package/src/index.ts +158 -0
  234. package/src/init.customization.test.ts +210 -0
  235. package/src/init.integrations.test.ts +366 -0
  236. package/src/init.openllmetry.test.ts +282 -0
  237. package/src/init.protocol.test.ts +215 -0
  238. package/src/init.ts +1426 -0
  239. package/src/instrumentation.test.ts +108 -0
  240. package/src/instrumentation.ts +308 -0
  241. package/src/logger.test.ts +117 -0
  242. package/src/logger.ts +246 -0
  243. package/src/metric-helpers.ts +47 -0
  244. package/src/metric-testing.ts +197 -0
  245. package/src/metric.ts +434 -0
  246. package/src/metrics.test.ts +205 -0
  247. package/src/operation-context.ts +93 -0
  248. package/src/processors.ts +106 -0
  249. package/src/rate-limiter.test.ts +199 -0
  250. package/src/rate-limiter.ts +98 -0
  251. package/src/sampling.test.ts +513 -0
  252. package/src/sampling.ts +428 -0
  253. package/src/semantic-helpers.test.ts +311 -0
  254. package/src/semantic-helpers.ts +584 -0
  255. package/src/shutdown.test.ts +311 -0
  256. package/src/shutdown.ts +222 -0
  257. package/src/stub.integration.test.ts +361 -0
  258. package/src/tail-sampling-processor.test.ts +226 -0
  259. package/src/tail-sampling-processor.ts +51 -0
  260. package/src/testing.ts +670 -0
  261. package/src/trace-context.ts +470 -0
  262. package/src/trace-helpers.new.test.ts +278 -0
  263. package/src/trace-helpers.test.ts +242 -0
  264. package/src/trace-helpers.ts +690 -0
  265. package/src/tracer-provider.test.ts +183 -0
  266. package/src/tracer-provider.ts +266 -0
  267. package/src/track.test.ts +153 -0
  268. package/src/track.ts +120 -0
  269. package/src/validation.test.ts +306 -0
  270. package/src/validation.ts +239 -0
  271. package/src/variable-name-inference.test.ts +178 -0
  272. package/src/variable-name-inference.ts +242 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/instrumentation.ts"],"names":[],"mappings":"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","file":"instrumentation.js","sourcesContent":["import { NodeSDK } from '@opentelemetry/sdk-node';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { BatchLogRecordProcessor } from '@opentelemetry/sdk-logs';\nimport { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { TailSamplingSpanProcessor } from './tail-sampling-processor';\nimport { getLogger } from './init';\nimport {\n resourceFromAttributes,\n detectResources,\n processDetector,\n hostDetector,\n type Resource,\n type ResourceDetector,\n} from '@opentelemetry/resources';\nimport {\n ATTR_SERVICE_NAME,\n ATTR_SERVICE_VERSION,\n} from '@opentelemetry/semantic-conventions/incubating';\nimport { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';\n\n/**\n * Parse OTLP headers string into object format\n * @param headersString - Headers as \"key1=value1,key2=value2\" or \"Authorization=Basic ...\"\n * @returns Headers object for OTLP exporters\n */\nfunction parseOtlpHeaders(headersString?: string): Record<string, string> {\n if (!headersString) return {};\n\n const headers: Record<string, string> = {};\n const pairs = headersString.split(',');\n\n for (const pair of pairs) {\n const [key, ...valueParts] = pair.split('=');\n if (key && valueParts.length > 0) {\n headers[key.trim()] = valueParts.join('=').trim();\n }\n }\n\n return headers;\n}\n\n/**\n * Parse resource attributes string into object format\n * @param attributesString - Attributes as \"key1=value1,key2=value2\"\n * @returns Resource attributes object\n */\nfunction parseResourceAttributes(\n attributesString?: string,\n): Record<string, string> {\n if (!attributesString) return {};\n\n const attributes: Record<string, string> = {};\n const pairs = attributesString.split(',');\n\n for (const pair of pairs) {\n const [key, ...valueParts] = pair.split('=');\n if (key && valueParts.length > 0) {\n attributes[key.trim()] = valueParts.join('=').trim();\n }\n }\n\n return attributes;\n}\n\nexport interface InstrumentationConfig {\n serviceName: string;\n serviceVersion?: string;\n deploymentEnvironment?: string;\n otlpEndpoint?: string;\n /** OTLP headers for authentication (e.g., Grafana Cloud) */\n otlpHeaders?: string;\n /** Resource attributes as comma-separated key=value pairs */\n resourceAttributes?: string;\n /** Enable async resource detection for process/host info (default: false) */\n detectResources?: boolean;\n /**\n * Use selective instrumentation instead of full auto-instrumentation\n * **Default: true** (performance-first)\n *\n * When true, auto-instrumentation is disabled. You can manually add\n * specific instrumentations via the `instrumentations` field.\n * This reduces overhead from ~81% to near-zero based on Platformatic benchmarks.\n *\n * Set to false to enable full auto-instrumentation (not recommended for production).\n *\n * @see https://blogger.platformatic.dev/the-hidden-cost-of-context\n */\n selectiveInstrumentation?: boolean;\n\n /**\n * Custom instrumentations to use (only when selectiveInstrumentation is true)\n * @example\n * ```typescript\n * import { HttpInstrumentation } from '@opentelemetry/instrumentation-http'\n *\n * initInstrumentation({\n * serviceName: 'api',\n * selectiveInstrumentation: true,\n * instrumentations: [new HttpInstrumentation()]\n * })\n * ```\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instrumentations?: any[];\n}\n\n/**\n * Initialize OpenTelemetry instrumentation with OTLP exporters\n *\n * This sets up:\n * - Traces (OTLP HTTP)\n * - Metrics (OTLP HTTP)\n * - Logs (OTLP HTTP)\n * - Auto-instrumentation for common Node.js libraries\n *\n * @example\n * // Call this at the very start of your application\n * import { initInstrumentation } from '@your-org/otel-decorators'\n *\n * initInstrumentation({\n * serviceName: 'my-service' }\n * serviceVersion: '1.0.0',\n * deploymentEnvironment: 'production',\n * otlpEndpoint: 'http://localhost:4318'\n * })\n *\n * // Or with async resource detection (top-level await required)\n * await initInstrumentation({\n * serviceName: 'my-service' }\n * detectResources: true\n * })\n */\n// Enables graceful shutdown and prevents SDK leaks on hot-reload\nlet currentSDK: NodeSDK | null = null;\nlet shutdownHandlerRegistered = false;\n\n/**\n * Shutdown the OpenTelemetry SDK gracefully\n * Call this before process exit or during hot-reloads\n */\nexport async function shutdownInstrumentation(sdk?: NodeSDK): Promise<void> {\n const sdkToShutdown = sdk || currentSDK;\n if (!sdkToShutdown) {\n getLogger().warn('No SDK to shutdown');\n return;\n }\n\n try {\n await sdkToShutdown.shutdown();\n getLogger().info('OpenTelemetry terminated successfully');\n if (sdkToShutdown === currentSDK) {\n currentSDK = null;\n }\n } catch (error) {\n getLogger().error(\n 'Error terminating OpenTelemetry',\n error instanceof Error ? error : undefined,\n );\n throw error;\n }\n}\n\nexport async function initInstrumentation(\n config: InstrumentationConfig,\n): Promise<NodeSDK> {\n // Prevents resource leaks on hot-reload or multiple init calls\n if (currentSDK) {\n getLogger().info(\n 'Shutting down existing OpenTelemetry SDK before reinitializing...',\n );\n await shutdownInstrumentation(currentSDK);\n }\n\n // Parse OTLP headers and resource attributes\n const otlpHeaders = parseOtlpHeaders(config.otlpHeaders);\n const customResourceAttributes = parseResourceAttributes(\n config.resourceAttributes,\n );\n\n let resource: Resource;\n\n // Dynamically load optional resource detectors\n const detectors: ResourceDetector[] = [processDetector, hostDetector];\n try {\n const awsDetectors = await import('@opentelemetry/resource-detector-aws');\n detectors.push(\n awsDetectors.awsEc2Detector,\n awsDetectors.awsEcsDetector,\n awsDetectors.awsEksDetector,\n );\n } catch {\n // ignore\n }\n try {\n const gcpDetectors = await import('@opentelemetry/resource-detector-gcp');\n detectors.push(gcpDetectors.gcpDetector);\n } catch {\n // ignore\n }\n try {\n const containerDetectors = await import(\n '@opentelemetry/resource-detector-container'\n );\n detectors.push(containerDetectors.containerDetector);\n } catch {\n // ignore\n }\n\n if (config.detectResources) {\n const detectedResource = await detectResources({\n detectors,\n });\n\n resource = detectedResource.merge(\n resourceFromAttributes({\n [ATTR_SERVICE_NAME]: config.serviceName,\n [ATTR_SERVICE_VERSION]: config.serviceVersion || '1.0.0',\n 'deployment.environment': config.deploymentEnvironment || 'development',\n ...customResourceAttributes, // Merge custom resource attributes\n }),\n );\n } else {\n resource = resourceFromAttributes({\n [ATTR_SERVICE_NAME]: config.serviceName,\n [ATTR_SERVICE_VERSION]: config.serviceVersion || '1.0.0',\n 'deployment.environment': config.deploymentEnvironment || 'development',\n ...customResourceAttributes, // Merge custom resource attributes\n });\n }\n\n // Default to selective (near-zero overhead) vs full auto (~81% overhead)\n const instrumentations =\n config.selectiveInstrumentation === false\n ? [getNodeAutoInstrumentations()]\n : config.instrumentations || [];\n\n const traceExporter = new OTLPTraceExporter({\n url: `${config.otlpEndpoint || 'http://localhost:4318'}/v1/traces`,\n headers: otlpHeaders,\n });\n\n // Enables tail sampling via sampling.tail.keep attribute\n const spanProcessor = new TailSamplingSpanProcessor(\n new BatchSpanProcessor(traceExporter),\n );\n\n const sdk = new NodeSDK({\n resource,\n spanProcessor, // Use our wrapped processor instead of traceExporter directly\n metricReader: new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter({\n url: `${config.otlpEndpoint || 'http://localhost:4318'}/v1/metrics`,\n headers: otlpHeaders,\n }),\n }),\n logRecordProcessors: [\n new BatchLogRecordProcessor(\n new OTLPLogExporter({\n url: `${config.otlpEndpoint || 'http://localhost:4318'}/v1/logs`,\n headers: otlpHeaders,\n }),\n ),\n ],\n instrumentations,\n });\n\n try {\n await sdk.start();\n getLogger().info('OpenTelemetry instrumentation started successfully');\n } catch (error) {\n getLogger().error(\n 'Failed to start OpenTelemetry SDK',\n error instanceof Error ? error : undefined,\n );\n throw error;\n }\n\n // Track current SDK for shutdown handler\n currentSDK = sdk;\n\n if (!shutdownHandlerRegistered) {\n shutdownHandlerRegistered = true;\n\n const shutdownHandler = () => {\n shutdownInstrumentation()\n .then(() => {\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n })\n .catch((error) => {\n getLogger().error(\n 'Shutdown error',\n error instanceof Error ? error : undefined,\n );\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1);\n });\n };\n\n process.on('SIGTERM', shutdownHandler);\n process.on('SIGINT', shutdownHandler);\n }\n\n return sdk;\n}\n"]}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var chunk4OAT42CA_cjs = require('./chunk-4OAT42CA.cjs');
4
+ require('./chunk-Y4Y2S7BM.cjs');
5
+ require('./chunk-URRW6M2C.cjs');
6
+ require('./chunk-G7VZBCD6.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "LOG_LEVEL", {
11
+ enumerable: true,
12
+ get: function () { return chunk4OAT42CA_cjs.LOG_LEVEL; }
13
+ });
14
+ Object.defineProperty(exports, "LoggedOperation", {
15
+ enumerable: true,
16
+ get: function () { return chunk4OAT42CA_cjs.LoggedOperation; }
17
+ });
18
+ //# sourceMappingURL=logger.cjs.map
19
+ //# sourceMappingURL=logger.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"logger.cjs"}
@@ -0,0 +1,146 @@
1
+ export { Logger as PinoLogger } from 'pino';
2
+
3
+ /**
4
+ * Logger types and utilities for autotel
5
+ *
6
+ * **Recommended Approach:** Bring your own logger (Pino, Winston, Bunyan, etc.)
7
+ *
8
+ * Simply create your logger instance and pass it to `init()`.
9
+ * Autotel automatically instruments Pino and Winston to:
10
+ * - Inject trace context (traceId, spanId) into log records
11
+ * - Record errors in the active span
12
+ * - Bridge logs to OpenTelemetry Logs API for OTLP export
13
+ *
14
+ * @example Using Pino (recommended, auto-instrumented)
15
+ * ```typescript
16
+ * import pino from 'pino'; // npm install pino
17
+ * import { init } from 'autotel';
18
+ *
19
+ * const logger = pino({ level: 'info' });
20
+ * init({ service: 'my-app', logger });
21
+ *
22
+ * // Logs automatically include traceId/spanId and export via OTLP!
23
+ * logger.info('User created', { userId: '123' });
24
+ * ```
25
+ *
26
+ * @example Using Winston (auto-instrumented)
27
+ * ```typescript
28
+ * import winston from 'winston'; // npm install winston
29
+ * import { init } from 'autotel';
30
+ *
31
+ * const logger = winston.createLogger({
32
+ * level: 'info',
33
+ * format: winston.format.json(),
34
+ * transports: [new winston.transports.Console()]
35
+ * });
36
+ * init({ service: 'my-app', logger });
37
+ * ```
38
+ *
39
+ * @example Using Bunyan (manual instrumentation)
40
+ * ```typescript
41
+ * import bunyan from 'bunyan'; // npm install bunyan @opentelemetry/instrumentation-bunyan
42
+ * import { init } from 'autotel';
43
+ * import { BunyanInstrumentation } from '@opentelemetry/instrumentation-bunyan';
44
+ *
45
+ * const logger = bunyan.createLogger({ name: 'my-app' });
46
+ * init({
47
+ * service: 'my-app',
48
+ * logger,
49
+ * instrumentations: [new BunyanInstrumentation()]
50
+ * });
51
+ * ```
52
+ *
53
+ * @example Custom logger (any logger with 4 methods)
54
+ * ```typescript
55
+ * const logger = {
56
+ * info: (msg, extra) => console.log(msg, extra),
57
+ * warn: (msg, extra) => console.warn(msg, extra),
58
+ * error: (msg, err, extra) => console.error(msg, err, extra),
59
+ * debug: (msg, extra) => console.debug(msg, extra),
60
+ * };
61
+ * init({ service: 'my-app', logger });
62
+ * ```
63
+ */
64
+ /**
65
+ * Log level constants
66
+ */
67
+ declare const LOG_LEVEL: {
68
+ readonly DEBUG: "debug";
69
+ readonly INFO: "info";
70
+ readonly WARN: "warn";
71
+ readonly ERROR: "error";
72
+ };
73
+ type LogLevel = (typeof LOG_LEVEL)[keyof typeof LOG_LEVEL];
74
+ /**
75
+ * Logger configuration (for reference - not needed with BYOL approach)
76
+ */
77
+ interface LoggerConfig {
78
+ service: string;
79
+ level?: LogLevel;
80
+ pretty?: boolean;
81
+ redact?: string[] | false;
82
+ }
83
+ /**
84
+ * Simple logger interface - minimal contract for any logger
85
+ *
86
+ * Bring your own Pino, Winston, or any logger with these 4 methods.
87
+ * Autotel automatically instruments Pino and Winston loggers to:
88
+ * - Inject trace context (traceId, spanId) into log records
89
+ * - Record errors in the active span
90
+ * - Bridge logs to OpenTelemetry Logs API for OTLP export
91
+ *
92
+ * @example Using Pino
93
+ * ```typescript
94
+ * import pino from 'pino';
95
+ * const logger = pino({ level: 'info' });
96
+ * init({ service: 'my-app', logger });
97
+ * ```
98
+ *
99
+ * @example Using Winston
100
+ * ```typescript
101
+ * import winston from 'winston';
102
+ * const logger = winston.createLogger({ level: 'info' });
103
+ * init({ service: 'my-app', logger });
104
+ * ```
105
+ */
106
+ interface Logger {
107
+ info(message: string, extra?: Record<string, unknown>): void;
108
+ warn(message: string, extra?: Record<string, unknown>): void;
109
+ error(message: string, error?: Error, extra?: Record<string, unknown>): void;
110
+ debug(message: string, extra?: Record<string, unknown>): void;
111
+ }
112
+ /**
113
+ * Alias for Logger interface (backwards compatibility)
114
+ * @deprecated Use Logger instead
115
+ */
116
+ type ILogger = Logger;
117
+
118
+ interface LoggedOperationOptions {
119
+ /** Operation name for tracing (e.g., 'user.createUser') */
120
+ operationName: string;
121
+ }
122
+ /**
123
+ * TS5+ Standard Decorator for logging and tracing operations
124
+ * Uses TC39 Stage 3 decorator syntax
125
+ *
126
+ * This is the traditional per-method decorator approach.
127
+ * For zero-boilerplate solution, see @Instrumented class decorator.
128
+ *
129
+ * @example
130
+ * // Simple usage
131
+ * class OrderService {
132
+ * constructor(private readonly deps: { log: Logger }) {}
133
+ *
134
+ * @LoggedOperation('order.create')
135
+ * async createOrder(data: CreateOrderData) {
136
+ * this.deps.logger.info('Creating order', data)
137
+ * }
138
+ * }
139
+ *
140
+ * // Advanced usage (future-proof for options)
141
+ * @LoggedOperation({ operationName: 'order.create' })
142
+ * async createOrder(data: CreateOrderData) { }
143
+ */
144
+ declare function LoggedOperation(operationNameOrOptions: string | LoggedOperationOptions): <This, Args extends unknown[], Return>(originalMethod: (this: This, ...args: Args) => Promise<Return>, context: ClassMethodDecoratorContext<This, (this: This, ...args: Args) => Promise<Return>>) => (this: This, ...args: Args) => Promise<Return>;
145
+
146
+ export { type ILogger, LOG_LEVEL, type LogLevel, LoggedOperation, type LoggedOperationOptions, type Logger, type LoggerConfig };
@@ -0,0 +1,146 @@
1
+ export { Logger as PinoLogger } from 'pino';
2
+
3
+ /**
4
+ * Logger types and utilities for autotel
5
+ *
6
+ * **Recommended Approach:** Bring your own logger (Pino, Winston, Bunyan, etc.)
7
+ *
8
+ * Simply create your logger instance and pass it to `init()`.
9
+ * Autotel automatically instruments Pino and Winston to:
10
+ * - Inject trace context (traceId, spanId) into log records
11
+ * - Record errors in the active span
12
+ * - Bridge logs to OpenTelemetry Logs API for OTLP export
13
+ *
14
+ * @example Using Pino (recommended, auto-instrumented)
15
+ * ```typescript
16
+ * import pino from 'pino'; // npm install pino
17
+ * import { init } from 'autotel';
18
+ *
19
+ * const logger = pino({ level: 'info' });
20
+ * init({ service: 'my-app', logger });
21
+ *
22
+ * // Logs automatically include traceId/spanId and export via OTLP!
23
+ * logger.info('User created', { userId: '123' });
24
+ * ```
25
+ *
26
+ * @example Using Winston (auto-instrumented)
27
+ * ```typescript
28
+ * import winston from 'winston'; // npm install winston
29
+ * import { init } from 'autotel';
30
+ *
31
+ * const logger = winston.createLogger({
32
+ * level: 'info',
33
+ * format: winston.format.json(),
34
+ * transports: [new winston.transports.Console()]
35
+ * });
36
+ * init({ service: 'my-app', logger });
37
+ * ```
38
+ *
39
+ * @example Using Bunyan (manual instrumentation)
40
+ * ```typescript
41
+ * import bunyan from 'bunyan'; // npm install bunyan @opentelemetry/instrumentation-bunyan
42
+ * import { init } from 'autotel';
43
+ * import { BunyanInstrumentation } from '@opentelemetry/instrumentation-bunyan';
44
+ *
45
+ * const logger = bunyan.createLogger({ name: 'my-app' });
46
+ * init({
47
+ * service: 'my-app',
48
+ * logger,
49
+ * instrumentations: [new BunyanInstrumentation()]
50
+ * });
51
+ * ```
52
+ *
53
+ * @example Custom logger (any logger with 4 methods)
54
+ * ```typescript
55
+ * const logger = {
56
+ * info: (msg, extra) => console.log(msg, extra),
57
+ * warn: (msg, extra) => console.warn(msg, extra),
58
+ * error: (msg, err, extra) => console.error(msg, err, extra),
59
+ * debug: (msg, extra) => console.debug(msg, extra),
60
+ * };
61
+ * init({ service: 'my-app', logger });
62
+ * ```
63
+ */
64
+ /**
65
+ * Log level constants
66
+ */
67
+ declare const LOG_LEVEL: {
68
+ readonly DEBUG: "debug";
69
+ readonly INFO: "info";
70
+ readonly WARN: "warn";
71
+ readonly ERROR: "error";
72
+ };
73
+ type LogLevel = (typeof LOG_LEVEL)[keyof typeof LOG_LEVEL];
74
+ /**
75
+ * Logger configuration (for reference - not needed with BYOL approach)
76
+ */
77
+ interface LoggerConfig {
78
+ service: string;
79
+ level?: LogLevel;
80
+ pretty?: boolean;
81
+ redact?: string[] | false;
82
+ }
83
+ /**
84
+ * Simple logger interface - minimal contract for any logger
85
+ *
86
+ * Bring your own Pino, Winston, or any logger with these 4 methods.
87
+ * Autotel automatically instruments Pino and Winston loggers to:
88
+ * - Inject trace context (traceId, spanId) into log records
89
+ * - Record errors in the active span
90
+ * - Bridge logs to OpenTelemetry Logs API for OTLP export
91
+ *
92
+ * @example Using Pino
93
+ * ```typescript
94
+ * import pino from 'pino';
95
+ * const logger = pino({ level: 'info' });
96
+ * init({ service: 'my-app', logger });
97
+ * ```
98
+ *
99
+ * @example Using Winston
100
+ * ```typescript
101
+ * import winston from 'winston';
102
+ * const logger = winston.createLogger({ level: 'info' });
103
+ * init({ service: 'my-app', logger });
104
+ * ```
105
+ */
106
+ interface Logger {
107
+ info(message: string, extra?: Record<string, unknown>): void;
108
+ warn(message: string, extra?: Record<string, unknown>): void;
109
+ error(message: string, error?: Error, extra?: Record<string, unknown>): void;
110
+ debug(message: string, extra?: Record<string, unknown>): void;
111
+ }
112
+ /**
113
+ * Alias for Logger interface (backwards compatibility)
114
+ * @deprecated Use Logger instead
115
+ */
116
+ type ILogger = Logger;
117
+
118
+ interface LoggedOperationOptions {
119
+ /** Operation name for tracing (e.g., 'user.createUser') */
120
+ operationName: string;
121
+ }
122
+ /**
123
+ * TS5+ Standard Decorator for logging and tracing operations
124
+ * Uses TC39 Stage 3 decorator syntax
125
+ *
126
+ * This is the traditional per-method decorator approach.
127
+ * For zero-boilerplate solution, see @Instrumented class decorator.
128
+ *
129
+ * @example
130
+ * // Simple usage
131
+ * class OrderService {
132
+ * constructor(private readonly deps: { log: Logger }) {}
133
+ *
134
+ * @LoggedOperation('order.create')
135
+ * async createOrder(data: CreateOrderData) {
136
+ * this.deps.logger.info('Creating order', data)
137
+ * }
138
+ * }
139
+ *
140
+ * // Advanced usage (future-proof for options)
141
+ * @LoggedOperation({ operationName: 'order.create' })
142
+ * async createOrder(data: CreateOrderData) { }
143
+ */
144
+ declare function LoggedOperation(operationNameOrOptions: string | LoggedOperationOptions): <This, Args extends unknown[], Return>(originalMethod: (this: This, ...args: Args) => Promise<Return>, context: ClassMethodDecoratorContext<This, (this: This, ...args: Args) => Promise<Return>>) => (this: This, ...args: Args) => Promise<Return>;
145
+
146
+ export { type ILogger, LOG_LEVEL, type LogLevel, LoggedOperation, type LoggedOperationOptions, type Logger, type LoggerConfig };
package/dist/logger.js ADDED
@@ -0,0 +1,6 @@
1
+ export { LOG_LEVEL, LoggedOperation } from './chunk-5GWX5LFW.js';
2
+ import './chunk-KVGNW3FC.js';
3
+ import './chunk-P6JUDYNO.js';
4
+ import './chunk-Z6ZWNWWR.js';
5
+ //# sourceMappingURL=logger.js.map
6
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"logger.js"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var chunkNC52UBR2_cjs = require('./chunk-NC52UBR2.cjs');
4
+ require('./chunk-Y4Y2S7BM.cjs');
5
+ require('./chunk-URRW6M2C.cjs');
6
+ require('./chunk-G7VZBCD6.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "createCounter", {
11
+ enumerable: true,
12
+ get: function () { return chunkNC52UBR2_cjs.createCounter; }
13
+ });
14
+ Object.defineProperty(exports, "createHistogram", {
15
+ enumerable: true,
16
+ get: function () { return chunkNC52UBR2_cjs.createHistogram; }
17
+ });
18
+ Object.defineProperty(exports, "createObservableGauge", {
19
+ enumerable: true,
20
+ get: function () { return chunkNC52UBR2_cjs.createObservableGauge; }
21
+ });
22
+ Object.defineProperty(exports, "createUpDownCounter", {
23
+ enumerable: true,
24
+ get: function () { return chunkNC52UBR2_cjs.createUpDownCounter; }
25
+ });
26
+ Object.defineProperty(exports, "getMeter", {
27
+ enumerable: true,
28
+ get: function () { return chunkNC52UBR2_cjs.getMeter; }
29
+ });
30
+ //# sourceMappingURL=metric-helpers.cjs.map
31
+ //# sourceMappingURL=metric-helpers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"metric-helpers.cjs"}
@@ -0,0 +1,13 @@
1
+ import { Meter, Counter, Histogram, UpDownCounter, ObservableGauge } from '@opentelemetry/api';
2
+
3
+ declare function getMeter(): Meter;
4
+ type CounterOptions = Parameters<Meter['createCounter']>[1];
5
+ type HistogramOptions = Parameters<Meter['createHistogram']>[1];
6
+ type UpDownCounterOptions = Parameters<Meter['createUpDownCounter']>[1];
7
+ type ObservableGaugeOptions = Parameters<Meter['createObservableGauge']>[1];
8
+ declare function createCounter(name: string, options?: CounterOptions): Counter;
9
+ declare function createHistogram(name: string, options?: HistogramOptions): Histogram;
10
+ declare function createUpDownCounter(name: string, options?: UpDownCounterOptions): UpDownCounter;
11
+ declare function createObservableGauge(name: string, options?: ObservableGaugeOptions): ObservableGauge;
12
+
13
+ export { createCounter, createHistogram, createObservableGauge, createUpDownCounter, getMeter };
@@ -0,0 +1,13 @@
1
+ import { Meter, Counter, Histogram, UpDownCounter, ObservableGauge } from '@opentelemetry/api';
2
+
3
+ declare function getMeter(): Meter;
4
+ type CounterOptions = Parameters<Meter['createCounter']>[1];
5
+ type HistogramOptions = Parameters<Meter['createHistogram']>[1];
6
+ type UpDownCounterOptions = Parameters<Meter['createUpDownCounter']>[1];
7
+ type ObservableGaugeOptions = Parameters<Meter['createObservableGauge']>[1];
8
+ declare function createCounter(name: string, options?: CounterOptions): Counter;
9
+ declare function createHistogram(name: string, options?: HistogramOptions): Histogram;
10
+ declare function createUpDownCounter(name: string, options?: UpDownCounterOptions): UpDownCounter;
11
+ declare function createObservableGauge(name: string, options?: ObservableGaugeOptions): ObservableGauge;
12
+
13
+ export { createCounter, createHistogram, createObservableGauge, createUpDownCounter, getMeter };
@@ -0,0 +1,6 @@
1
+ export { createCounter, createHistogram, createObservableGauge, createUpDownCounter, getMeter } from './chunk-W7LHZVQF.js';
2
+ import './chunk-KVGNW3FC.js';
3
+ import './chunk-P6JUDYNO.js';
4
+ import './chunk-Z6ZWNWWR.js';
5
+ //# sourceMappingURL=metric-helpers.js.map
6
+ //# sourceMappingURL=metric-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"metric-helpers.js"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunkYTXEZ4SD_cjs = require('./chunk-YTXEZ4SD.cjs');
4
+ require('./chunk-G7VZBCD6.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "assertEventTracked", {
9
+ enumerable: true,
10
+ get: function () { return chunkYTXEZ4SD_cjs.assertEventTracked; }
11
+ });
12
+ Object.defineProperty(exports, "assertOutcomeTracked", {
13
+ enumerable: true,
14
+ get: function () { return chunkYTXEZ4SD_cjs.assertOutcomeTracked; }
15
+ });
16
+ Object.defineProperty(exports, "createMetricsCollector", {
17
+ enumerable: true,
18
+ get: function () { return chunkYTXEZ4SD_cjs.createMetricsCollector; }
19
+ });
20
+ //# sourceMappingURL=metric-testing.cjs.map
21
+ //# sourceMappingURL=metric-testing.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"metric-testing.cjs"}
@@ -0,0 +1,110 @@
1
+ import { EventAttributes, FunnelStatus, OutcomeStatus } from './event-subscriber.cjs';
2
+
3
+ /**
4
+ * Testing utilities for Metrics
5
+ *
6
+ * Provides in-memory collection of metrics for testing purposes.
7
+ */
8
+
9
+ interface MetricsEvent {
10
+ event: string;
11
+ attributes?: EventAttributes;
12
+ service: string;
13
+ timestamp: number;
14
+ }
15
+ interface MetricsFunnelStep {
16
+ funnel: string;
17
+ status: FunnelStatus;
18
+ attributes?: EventAttributes;
19
+ service: string;
20
+ timestamp: number;
21
+ }
22
+ interface MetricsOutcome {
23
+ operation: string;
24
+ status: OutcomeStatus;
25
+ attributes?: EventAttributes;
26
+ service: string;
27
+ timestamp: number;
28
+ }
29
+ interface MetricsValue {
30
+ metric: string;
31
+ value: number;
32
+ attributes?: EventAttributes;
33
+ service: string;
34
+ timestamp: number;
35
+ }
36
+ /**
37
+ * In-memory metrics collector for testing
38
+ */
39
+ interface MetricsCollector {
40
+ /** Get all collected events */
41
+ getEvents(): MetricsEvent[];
42
+ /** Get all collected funnel steps */
43
+ getFunnelSteps(): MetricsFunnelStep[];
44
+ /** Get all collected outcomes */
45
+ getOutcomes(): MetricsOutcome[];
46
+ /** Get all collected values */
47
+ getValues(): MetricsValue[];
48
+ /** Clear all collected metrics */
49
+ clear(): void;
50
+ /** Record an event (internal use) */
51
+ recordEvent(event: MetricsEvent): void;
52
+ /** Record a funnel step (internal use) */
53
+ recordFunnelStep(step: MetricsFunnelStep): void;
54
+ /** Record an outcome (internal use) */
55
+ recordOutcome(outcome: MetricsOutcome): void;
56
+ /** Record a value (internal use) */
57
+ recordValue(value: MetricsValue): void;
58
+ }
59
+ /**
60
+ * Create an in-memory metrics collector for testing
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const collector = createMetricsCollector()
65
+ *
66
+ * const metrics = new Metric('test-service', { collector })
67
+ * metrics.trackEvent('order.completed', { orderId: '123' })
68
+ *
69
+ * const event =collector.getEvents()
70
+ * expect(events).toHaveLength(1)
71
+ * expect(events[0].event).toBe('order.completed')
72
+ * ```
73
+ */
74
+ declare function createMetricsCollector(): MetricsCollector;
75
+ /**
76
+ * Assert that a metric event was tracked
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * assertEventTracked({
81
+ * collector,
82
+ * eventName: 'order.completed',
83
+ * attributes: { orderId: '123' }
84
+ * })
85
+ * ```
86
+ */
87
+ declare function assertEventTracked(options: {
88
+ collector: MetricsCollector;
89
+ eventName: string;
90
+ attributes?: Record<string, unknown>;
91
+ }): void;
92
+ /**
93
+ * Assert that an outcome was tracked
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * assertOutcomeTracked({
98
+ * collector,
99
+ * operation: 'payment.process',
100
+ * status: 'success'
101
+ * })
102
+ * ```
103
+ */
104
+ declare function assertOutcomeTracked(options: {
105
+ collector: MetricsCollector;
106
+ operation: string;
107
+ status: 'success' | 'failure' | 'partial';
108
+ }): void;
109
+
110
+ export { type MetricsCollector, type MetricsEvent, type MetricsFunnelStep, type MetricsOutcome, type MetricsValue, assertEventTracked, assertOutcomeTracked, createMetricsCollector };