@smthrs/observability 0.34.0 → 1.0.0-rc.12

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 (363) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/LICENSE +1 -1
  3. package/README.md +87 -0
  4. package/dist/cjs/BrowserOtel.d.ts +37 -0
  5. package/dist/cjs/BrowserOtel.d.ts.map +1 -0
  6. package/dist/cjs/BrowserOtel.js +47 -0
  7. package/dist/cjs/BrowserOtel.js.map +7 -0
  8. package/dist/cjs/Endpoint.d.ts +70 -0
  9. package/dist/cjs/Endpoint.d.ts.map +1 -0
  10. package/dist/cjs/Endpoint.js +85 -0
  11. package/dist/cjs/Endpoint.js.map +7 -0
  12. package/dist/cjs/JournalLogger.d.ts +232 -0
  13. package/dist/cjs/JournalLogger.d.ts.map +1 -0
  14. package/dist/cjs/JournalLogger.js +415 -0
  15. package/dist/cjs/JournalLogger.js.map +7 -0
  16. package/dist/cjs/Logger.d.ts +56 -0
  17. package/dist/cjs/Logger.d.ts.map +1 -0
  18. package/dist/cjs/Logger.js +72 -0
  19. package/dist/cjs/Logger.js.map +7 -0
  20. package/dist/cjs/Metric.d.ts +67 -0
  21. package/dist/cjs/Metric.d.ts.map +1 -0
  22. package/dist/cjs/Metric.js +68 -0
  23. package/dist/cjs/Metric.js.map +7 -0
  24. package/dist/cjs/NodeOtel.d.ts +42 -0
  25. package/dist/cjs/NodeOtel.d.ts.map +1 -0
  26. package/dist/cjs/NodeOtel.js +78 -0
  27. package/dist/cjs/NodeOtel.js.map +7 -0
  28. package/dist/cjs/Otel.d.ts +63 -0
  29. package/dist/cjs/Otel.d.ts.map +1 -0
  30. package/dist/cjs/Otel.js +75 -0
  31. package/dist/cjs/Otel.js.map +7 -0
  32. package/dist/cjs/Otlp.d.ts +203 -0
  33. package/dist/cjs/Otlp.d.ts.map +1 -0
  34. package/dist/cjs/Otlp.js +251 -0
  35. package/dist/cjs/Otlp.js.map +7 -0
  36. package/dist/cjs/Resource.d.ts +163 -0
  37. package/dist/cjs/Resource.d.ts.map +1 -0
  38. package/dist/cjs/Resource.js +186 -0
  39. package/dist/cjs/Resource.js.map +7 -0
  40. package/dist/cjs/index.d.ts +61 -0
  41. package/dist/cjs/index.d.ts.map +1 -0
  42. package/dist/cjs/index.js +47 -0
  43. package/dist/cjs/index.js.map +7 -0
  44. package/dist/cjs/internal/schemaIssuePath.d.ts +31 -0
  45. package/dist/cjs/internal/schemaIssuePath.d.ts.map +1 -0
  46. package/dist/cjs/internal/schemaIssuePath.js +49 -0
  47. package/dist/cjs/internal/schemaIssuePath.js.map +7 -0
  48. package/dist/cjs/package.json +1 -0
  49. package/dist/esm/BrowserOtel.d.ts +37 -0
  50. package/dist/esm/BrowserOtel.d.ts.map +1 -0
  51. package/dist/esm/BrowserOtel.js +24 -0
  52. package/dist/esm/BrowserOtel.js.map +1 -0
  53. package/dist/esm/Endpoint.d.ts +70 -0
  54. package/dist/esm/Endpoint.d.ts.map +1 -0
  55. package/dist/esm/Endpoint.js +110 -0
  56. package/dist/esm/Endpoint.js.map +1 -0
  57. package/dist/esm/JournalLogger.d.ts +232 -0
  58. package/dist/esm/JournalLogger.d.ts.map +1 -0
  59. package/dist/esm/JournalLogger.js +520 -0
  60. package/dist/esm/JournalLogger.js.map +1 -0
  61. package/dist/esm/Logger.d.ts +56 -0
  62. package/dist/esm/Logger.d.ts.map +1 -0
  63. package/dist/esm/Logger.js +61 -0
  64. package/dist/esm/Logger.js.map +1 -0
  65. package/dist/esm/Metric.d.ts +67 -0
  66. package/dist/esm/Metric.d.ts.map +1 -0
  67. package/dist/esm/Metric.js +80 -0
  68. package/dist/esm/Metric.js.map +1 -0
  69. package/dist/esm/NodeOtel.d.ts +42 -0
  70. package/dist/esm/NodeOtel.d.ts.map +1 -0
  71. package/dist/esm/NodeOtel.js +56 -0
  72. package/dist/esm/NodeOtel.js.map +1 -0
  73. package/dist/esm/Otel.d.ts +63 -0
  74. package/dist/esm/Otel.d.ts.map +1 -0
  75. package/dist/esm/Otel.js +52 -0
  76. package/dist/esm/Otel.js.map +1 -0
  77. package/dist/esm/Otlp.d.ts +203 -0
  78. package/dist/esm/Otlp.d.ts.map +1 -0
  79. package/dist/esm/Otlp.js +384 -0
  80. package/dist/esm/Otlp.js.map +1 -0
  81. package/dist/esm/Resource.d.ts +163 -0
  82. package/dist/esm/Resource.d.ts.map +1 -0
  83. package/dist/esm/Resource.js +238 -0
  84. package/dist/esm/Resource.js.map +1 -0
  85. package/dist/esm/index.d.ts +61 -0
  86. package/dist/esm/index.d.ts.map +1 -0
  87. package/dist/esm/index.js +61 -0
  88. package/dist/esm/index.js.map +1 -0
  89. package/dist/esm/internal/schemaIssuePath.d.ts +31 -0
  90. package/dist/esm/internal/schemaIssuePath.d.ts.map +1 -0
  91. package/dist/esm/internal/schemaIssuePath.js +59 -0
  92. package/dist/esm/internal/schemaIssuePath.js.map +1 -0
  93. package/docs/README.md +164 -0
  94. package/docs/api.md +780 -0
  95. package/docs/concepts/instrumentation-and-export.md +98 -0
  96. package/docs/concepts/layer-map.md +73 -0
  97. package/docs/concepts/validated-acquisition.md +106 -0
  98. package/docs/guides/export-to-a-collector.md +190 -0
  99. package/docs/guides/forward-logs-to-the-journal.md +226 -0
  100. package/docs/guides/install-a-logger.md +111 -0
  101. package/docs/guides/read-runtime-metrics.md +83 -0
  102. package/docs/guides/testing.md +134 -0
  103. package/docs/guides/wire-an-opentelemetry-sdk.md +226 -0
  104. package/docs/installation.md +102 -0
  105. package/docs/quickstart.md +145 -0
  106. package/docs/troubleshooting.md +168 -0
  107. package/package.json +221 -32
  108. package/src/BrowserOtel.ts +51 -0
  109. package/src/Endpoint.ts +131 -0
  110. package/src/JournalLogger.ts +635 -0
  111. package/src/Logger.ts +107 -0
  112. package/src/Metric.ts +88 -0
  113. package/src/NodeOtel.ts +90 -0
  114. package/src/Otel.ts +118 -0
  115. package/src/Otlp.ts +514 -0
  116. package/src/Resource.ts +325 -0
  117. package/src/index.ts +67 -0
  118. package/src/internal/schemaIssuePath.ts +65 -0
  119. package/docker-compose.otel.yml +0 -104
  120. package/grafana/dashboards/smithers-dashboard.json +0 -453
  121. package/grafana/provisioning/dashboards/dashboards.yml +0 -12
  122. package/grafana/provisioning/datasources/datasources.yml +0 -49
  123. package/loki/loki-config.yaml +0 -35
  124. package/otel-collector-config.yml +0 -38
  125. package/prometheus/prometheus.yml +0 -8
  126. package/src/MetricName.ts +0 -1
  127. package/src/MetricsServiceLive.js +0 -9
  128. package/src/README.md +0 -28
  129. package/src/ResolvedSmithersObservabilityOptions.ts +0 -12
  130. package/src/SmithersEvent.ts +0 -798
  131. package/src/SmithersLogFormat.ts +0 -1
  132. package/src/SmithersMetricDefinition.ts +0 -15
  133. package/src/SmithersMetricType.ts +0 -1
  134. package/src/SmithersMetricUnit.ts +0 -1
  135. package/src/SmithersObservability.js +0 -15
  136. package/src/SmithersObservabilityOptions.ts +0 -12
  137. package/src/SmithersObservabilityService.ts +0 -13
  138. package/src/_coreCorrelation/CorrelationContext.ts +0 -10
  139. package/src/_coreCorrelation/CorrelationContextLive.js +0 -11
  140. package/src/_coreCorrelation/CorrelationContextService.js +0 -15
  141. package/src/_coreCorrelation/CorrelationContextServiceShape.ts +0 -12
  142. package/src/_coreCorrelation/CorrelationPatch.ts +0 -3
  143. package/src/_coreCorrelation/README.md +0 -20
  144. package/src/_coreCorrelation/_correlationStorage.js +0 -4
  145. package/src/_coreCorrelation/correlationContextFiberRef.js +0 -5
  146. package/src/_coreCorrelation/correlationContextToLogAnnotations.js +0 -18
  147. package/src/_coreCorrelation/getCurrentCorrelationContext.js +0 -9
  148. package/src/_coreCorrelation/getCurrentCorrelationContextEffect.js +0 -11
  149. package/src/_coreCorrelation/index.js +0 -14
  150. package/src/_coreCorrelation/mergeCorrelationContext.js +0 -51
  151. package/src/_coreCorrelation/runWithCorrelationContext.js +0 -14
  152. package/src/_coreCorrelation/updateCurrentCorrelationContext.js +0 -17
  153. package/src/_coreCorrelation/withCorrelationContext.js +0 -38
  154. package/src/_coreCorrelation/withCurrentCorrelationContext.js +0 -11
  155. package/src/_coreMetrics.js +0 -14
  156. package/src/_coreMetricsShape.ts +0 -44
  157. package/src/_corePrometheus.js +0 -91
  158. package/src/_corePrometheusShape.ts +0 -11
  159. package/src/_coreTracing.js +0 -132
  160. package/src/_coreTracingShape.ts +0 -17
  161. package/src/_otelLogBuilders.js +0 -102
  162. package/src/_sessionFileResolvers.js +0 -164
  163. package/src/_smithersSpanAttributeAliases.js +0 -19
  164. package/src/_smithersTraceSpanStorage.js +0 -3
  165. package/src/_traceEventNormalizers.js +0 -499
  166. package/src/_traceRedaction.js +0 -162
  167. package/src/agentSessionEventToOtelLogRecord.js +0 -55
  168. package/src/agentTrace.ts +0 -144
  169. package/src/agentTraceCapabilities.js +0 -151
  170. package/src/annotateSmithersTrace.js +0 -11
  171. package/src/canonicalTraceEventToOtelLogRecord.js +0 -55
  172. package/src/correlation.js +0 -56
  173. package/src/createSmithersObservabilityLayer.js +0 -59
  174. package/src/createSmithersOtelLayer.js +0 -23
  175. package/src/createSmithersRuntimeLayer.js +0 -2
  176. package/src/detectAgentFamily.js +0 -26
  177. package/src/detectCaptureMode.js +0 -29
  178. package/src/emitOtelLogRecord.js +0 -19
  179. package/src/getCurrentSmithersTraceAnnotations.js +0 -14
  180. package/src/getCurrentSmithersTraceSpan.js +0 -7
  181. package/src/index.d.ts +0 -1343
  182. package/src/index.js +0 -136
  183. package/src/kindPhase.js +0 -17
  184. package/src/logging.js +0 -248
  185. package/src/makeSmithersSpanAttributes.js +0 -20
  186. package/src/metrics/README.md +0 -22
  187. package/src/metrics/SmithersMetricDefinition.ts +0 -17
  188. package/src/metrics/SmithersMetricType.ts +0 -1
  189. package/src/metrics/SmithersMetricUnit.ts +0 -1
  190. package/src/metrics/_asyncExternalWaitCounts.js +0 -4
  191. package/src/metrics/_buckets.js +0 -37
  192. package/src/metrics/_incrementGauge.js +0 -11
  193. package/src/metrics/_processStartMs.js +0 -1
  194. package/src/metrics/activeNodes.js +0 -2
  195. package/src/metrics/activeRuns.js +0 -2
  196. package/src/metrics/agentActionsTotal.js +0 -2
  197. package/src/metrics/agentDurationMs.js +0 -3
  198. package/src/metrics/agentErrorsTotal.js +0 -2
  199. package/src/metrics/agentEventsTotal.js +0 -2
  200. package/src/metrics/agentInvocationsTotal.js +0 -2
  201. package/src/metrics/agentRetriesTotal.js +0 -2
  202. package/src/metrics/agentSessionsTotal.js +0 -2
  203. package/src/metrics/agentTokensTotal.js +0 -2
  204. package/src/metrics/alertDeliveriesAttempted.js +0 -2
  205. package/src/metrics/alertDeliveriesSuppressed.js +0 -2
  206. package/src/metrics/alertsAcknowledgedTotal.js +0 -2
  207. package/src/metrics/alertsActive.js +0 -2
  208. package/src/metrics/alertsEscalatedTotal.js +0 -2
  209. package/src/metrics/alertsFiredTotal.js +0 -2
  210. package/src/metrics/alertsReopenedTotal.js +0 -2
  211. package/src/metrics/alertsResolvedTotal.js +0 -2
  212. package/src/metrics/alertsSilencedTotal.js +0 -2
  213. package/src/metrics/approvalPending.js +0 -2
  214. package/src/metrics/approvalWaitDuration.js +0 -5
  215. package/src/metrics/approvalsDenied.js +0 -2
  216. package/src/metrics/approvalsGranted.js +0 -2
  217. package/src/metrics/approvalsRequested.js +0 -2
  218. package/src/metrics/attemptDuration.js +0 -3
  219. package/src/metrics/attentionBacklog.js +0 -2
  220. package/src/metrics/cacheHits.js +0 -2
  221. package/src/metrics/cacheMisses.js +0 -2
  222. package/src/metrics/dbQueryDuration.js +0 -3
  223. package/src/metrics/dbRetries.js +0 -2
  224. package/src/metrics/dbTransactionDuration.js +0 -3
  225. package/src/metrics/dbTransactionRetries.js +0 -2
  226. package/src/metrics/dbTransactionRollbacks.js +0 -2
  227. package/src/metrics/devtoolsActiveSubscribers.js +0 -2
  228. package/src/metrics/devtoolsBackpressureDisconnectTotal.js +0 -2
  229. package/src/metrics/devtoolsDeltaBuildMs.js +0 -3
  230. package/src/metrics/devtoolsEventBytes.js +0 -3
  231. package/src/metrics/devtoolsEventTotal.js +0 -2
  232. package/src/metrics/devtoolsSnapshotBuildMs.js +0 -5
  233. package/src/metrics/devtoolsSubscribeTotal.js +0 -2
  234. package/src/metrics/errorsTotal.js +0 -2
  235. package/src/metrics/eventsEmittedTotal.js +0 -2
  236. package/src/metrics/externalWaitAsyncPending.js +0 -2
  237. package/src/metrics/gatewayApprovalDecisionsTotal.js +0 -2
  238. package/src/metrics/gatewayAuthEventsTotal.js +0 -2
  239. package/src/metrics/gatewayConnectionsActive.js +0 -2
  240. package/src/metrics/gatewayConnectionsClosedTotal.js +0 -2
  241. package/src/metrics/gatewayConnectionsTotal.js +0 -2
  242. package/src/metrics/gatewayCronTriggersTotal.js +0 -2
  243. package/src/metrics/gatewayErrorsTotal.js +0 -2
  244. package/src/metrics/gatewayHeartbeatTicksTotal.js +0 -2
  245. package/src/metrics/gatewayMessagesReceivedTotal.js +0 -2
  246. package/src/metrics/gatewayMessagesSentTotal.js +0 -2
  247. package/src/metrics/gatewayRpcCallsTotal.js +0 -2
  248. package/src/metrics/gatewayRpcDuration.js +0 -3
  249. package/src/metrics/gatewayRunEventBackpressureDisconnectTotal.js +0 -4
  250. package/src/metrics/gatewayRunsCompletedTotal.js +0 -2
  251. package/src/metrics/gatewayRunsStartedTotal.js +0 -2
  252. package/src/metrics/gatewaySignalsTotal.js +0 -2
  253. package/src/metrics/gatewayWebhooksReceivedTotal.js +0 -2
  254. package/src/metrics/gatewayWebhooksRejectedTotal.js +0 -2
  255. package/src/metrics/gatewayWebhooksVerifiedTotal.js +0 -2
  256. package/src/metrics/heartbeatDataSizeBytes.js +0 -5
  257. package/src/metrics/heartbeatIntervalMs.js +0 -3
  258. package/src/metrics/hotReloadDuration.js +0 -3
  259. package/src/metrics/hotReloadFailures.js +0 -2
  260. package/src/metrics/hotReloads.js +0 -2
  261. package/src/metrics/httpRequestDuration.js +0 -3
  262. package/src/metrics/httpRequests.js +0 -2
  263. package/src/metrics/index.d.ts +0 -1185
  264. package/src/metrics/index.js +0 -168
  265. package/src/metrics/memoryFactReads.js +0 -3
  266. package/src/metrics/memoryFactWrites.js +0 -3
  267. package/src/metrics/memoryMessageSaves.js +0 -3
  268. package/src/metrics/memoryRecallDuration.js +0 -11
  269. package/src/metrics/memoryRecallQueries.js +0 -3
  270. package/src/metrics/metricsServiceAdapter.js +0 -181
  271. package/src/metrics/nodeDuration.js +0 -3
  272. package/src/metrics/nodeRetriesTotal.js +0 -2
  273. package/src/metrics/nodesFailed.js +0 -2
  274. package/src/metrics/nodesFinished.js +0 -2
  275. package/src/metrics/nodesStarted.js +0 -2
  276. package/src/metrics/openApiToolCallErrorsTotal.js +0 -3
  277. package/src/metrics/openApiToolCallsTotal.js +0 -3
  278. package/src/metrics/openApiToolDuration.js +0 -9
  279. package/src/metrics/processHeapUsedBytes.js +0 -2
  280. package/src/metrics/processMemoryRssBytes.js +0 -2
  281. package/src/metrics/processUptimeSeconds.js +0 -2
  282. package/src/metrics/promptSizeBytes.js +0 -3
  283. package/src/metrics/replaysStarted.js +0 -3
  284. package/src/metrics/responseSizeBytes.js +0 -3
  285. package/src/metrics/rewindDurationMs.js +0 -3
  286. package/src/metrics/rewindFramesDeleted.js +0 -3
  287. package/src/metrics/rewindRollbackTotal.js +0 -2
  288. package/src/metrics/rewindSandboxesReverted.js +0 -3
  289. package/src/metrics/rewindTotal.js +0 -2
  290. package/src/metrics/runDuration.js +0 -3
  291. package/src/metrics/runForksCreated.js +0 -3
  292. package/src/metrics/runsAncestryDepth.js +0 -3
  293. package/src/metrics/runsCancelledTotal.js +0 -2
  294. package/src/metrics/runsCarriedStateBytes.js +0 -5
  295. package/src/metrics/runsContinuedTotal.js +0 -2
  296. package/src/metrics/runsFailedTotal.js +0 -2
  297. package/src/metrics/runsFinishedTotal.js +0 -2
  298. package/src/metrics/runsResumedTotal.js +0 -2
  299. package/src/metrics/runsTotal.js +0 -2
  300. package/src/metrics/sandboxActive.js +0 -2
  301. package/src/metrics/sandboxBundleSizeBytes.js +0 -5
  302. package/src/metrics/sandboxCompletedTotal.js +0 -2
  303. package/src/metrics/sandboxCreatedTotal.js +0 -2
  304. package/src/metrics/sandboxDurationMs.js +0 -3
  305. package/src/metrics/sandboxPatchCount.js +0 -3
  306. package/src/metrics/sandboxTransportDurationMs.js +0 -5
  307. package/src/metrics/schedulerConcurrencyUtilization.js +0 -2
  308. package/src/metrics/schedulerQueueDepth.js +0 -2
  309. package/src/metrics/schedulerWaitDuration.js +0 -5
  310. package/src/metrics/scorerDuration.js +0 -9
  311. package/src/metrics/scorerEventsFailed.js +0 -2
  312. package/src/metrics/scorerEventsFinished.js +0 -2
  313. package/src/metrics/scorerEventsStarted.js +0 -2
  314. package/src/metrics/scorersFailed.js +0 -3
  315. package/src/metrics/scorersFinished.js +0 -3
  316. package/src/metrics/scorersStarted.js +0 -3
  317. package/src/metrics/smithersMetricCatalog.js +0 -893
  318. package/src/metrics/smithersMetricCatalogByKey.js +0 -2
  319. package/src/metrics/smithersMetricCatalogByName.js +0 -2
  320. package/src/metrics/smithersMetricCatalogByPrometheusName.js +0 -4
  321. package/src/metrics/snapshotDuration.js +0 -9
  322. package/src/metrics/snapshotsCaptured.js +0 -3
  323. package/src/metrics/supervisorPollDuration.js +0 -5
  324. package/src/metrics/supervisorPollsTotal.js +0 -2
  325. package/src/metrics/supervisorResumeLag.js +0 -5
  326. package/src/metrics/supervisorResumedTotal.js +0 -2
  327. package/src/metrics/supervisorSkippedTotal.js +0 -2
  328. package/src/metrics/supervisorStaleDetected.js +0 -2
  329. package/src/metrics/taskHeartbeatTimeoutTotal.js +0 -2
  330. package/src/metrics/taskHeartbeatsTotal.js +0 -2
  331. package/src/metrics/timerDelayDuration.js +0 -3
  332. package/src/metrics/timersCancelled.js +0 -2
  333. package/src/metrics/timersCreated.js +0 -2
  334. package/src/metrics/timersFired.js +0 -2
  335. package/src/metrics/timersPending.js +0 -2
  336. package/src/metrics/toPrometheusMetricName.js +0 -8
  337. package/src/metrics/tokensCacheReadTotal.js +0 -2
  338. package/src/metrics/tokensCacheWriteTotal.js +0 -2
  339. package/src/metrics/tokensContextWindowBucketTotal.js +0 -2
  340. package/src/metrics/tokensContextWindowPerCall.js +0 -5
  341. package/src/metrics/tokensInputPerCall.js +0 -3
  342. package/src/metrics/tokensInputTotal.js +0 -2
  343. package/src/metrics/tokensOutputPerCall.js +0 -3
  344. package/src/metrics/tokensOutputTotal.js +0 -2
  345. package/src/metrics/tokensReasoningTotal.js +0 -2
  346. package/src/metrics/toolCallErrorsTotal.js +0 -2
  347. package/src/metrics/toolCallsTotal.js +0 -2
  348. package/src/metrics/toolDuration.js +0 -3
  349. package/src/metrics/toolOutputTruncatedTotal.js +0 -2
  350. package/src/metrics/trackEvent.js +0 -608
  351. package/src/metrics/updateAsyncExternalWaitPending.js +0 -18
  352. package/src/metrics/updateProcessMetrics.js +0 -20
  353. package/src/metrics/vcsDuration.js +0 -3
  354. package/src/normalizeStructuredEvent.js +0 -15
  355. package/src/prometheusContentType.js +0 -1
  356. package/src/renderPrometheusMetrics.js +0 -212
  357. package/src/resolveAgentTraceCapabilities.js +0 -59
  358. package/src/resolveSmithersObservabilityOptions.js +0 -109
  359. package/src/smithersMetrics.js +0 -2
  360. package/src/smithersSpanNames.js +0 -6
  361. package/src/unsupportedKindsForCapabilities.js +0 -32
  362. package/src/withSmithersSpan.js +0 -17
  363. package/tempo/tempo.yml +0 -17
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Effect metric registry for flows runtime signals.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ import * as Metric from "effect/Metric";
7
+ /**
8
+ * Counts flow runs that reached a terminal state.
9
+ *
10
+ * @category metrics
11
+ * @since 0.1.0
12
+ */
13
+ export declare const runThroughput: Metric.Counter<number>;
14
+ /**
15
+ * The number of execution seats currently held.
16
+ *
17
+ * @category metrics
18
+ * @since 0.1.0
19
+ */
20
+ export declare const activeSeats: Metric.Gauge<number>;
21
+ /**
22
+ * Counts runs parked because a quota was exhausted.
23
+ *
24
+ * @category metrics
25
+ * @since 0.1.0
26
+ */
27
+ export declare const quotaParks: Metric.Counter<number>;
28
+ /**
29
+ * Counts agent answers refused by their declared output schema.
30
+ *
31
+ * @category metrics
32
+ * @since 1.0.0-rc.1
33
+ */
34
+ export declare const structuredOutputRejections: Metric.Counter<number>;
35
+ /**
36
+ * Counts agent steps that failed after spending every output correction.
37
+ *
38
+ * @category metrics
39
+ * @since 1.0.0-rc.1
40
+ */
41
+ export declare const structuredOutputExhausted: Metric.Counter<number>;
42
+ /**
43
+ * Counts operational log records lost before durable delivery.
44
+ *
45
+ * Advances once per record dropped by a saturated forwarding queue, once per
46
+ * journal delivery failure, and once per defect the forwarding worker recovers
47
+ * from, so telemetry loss is distinguishable from an idle logger.
48
+ *
49
+ * @category metrics
50
+ * @since 1.0.0-rc.0
51
+ */
52
+ export declare const droppedLogRecords: Metric.Counter<number>;
53
+ /**
54
+ * All metrics declared by this package.
55
+ *
56
+ * @category registry
57
+ * @since 0.1.0
58
+ */
59
+ export declare const registry: {
60
+ readonly runThroughput: Metric.Counter<number>;
61
+ readonly activeSeats: Metric.Gauge<number>;
62
+ readonly quotaParks: Metric.Counter<number>;
63
+ readonly structuredOutputRejections: Metric.Counter<number>;
64
+ readonly structuredOutputExhausted: Metric.Counter<number>;
65
+ readonly droppedLogRecords: Metric.Counter<number>;
66
+ };
67
+ //# sourceMappingURL=Metric.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metric.d.ts","sourceRoot":"","sources":["../../src/Metric.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC;;;;;GAKG;AACH,eAAO,MAAM,aAAa,wBAExB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,sBAEtB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,wBAErB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,wBAErC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,wBAEpC,CAAA;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,wBAE5B,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAA"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var Metric_exports = {};
30
+ __export(Metric_exports, {
31
+ activeSeats: () => activeSeats,
32
+ droppedLogRecords: () => droppedLogRecords,
33
+ quotaParks: () => quotaParks,
34
+ registry: () => registry,
35
+ runThroughput: () => runThroughput,
36
+ structuredOutputExhausted: () => structuredOutputExhausted,
37
+ structuredOutputRejections: () => structuredOutputRejections
38
+ });
39
+ module.exports = __toCommonJS(Metric_exports);
40
+ var Metric = __toESM(require("effect/Metric"), 1);
41
+ const prefix = "flows_";
42
+ const runThroughput = Metric.counter(`${prefix}run_throughput`, {
43
+ description: "Completed flow runs"
44
+ });
45
+ const activeSeats = Metric.gauge(`${prefix}seat_active`, {
46
+ description: "Currently active execution seats"
47
+ });
48
+ const quotaParks = Metric.counter(`${prefix}quota_park`, {
49
+ description: "Runs parked by quota enforcement"
50
+ });
51
+ const structuredOutputRejections = Metric.counter(`${prefix}agent_structured_output_rejections`, {
52
+ description: "Agent answers refused by their declared output schema"
53
+ });
54
+ const structuredOutputExhausted = Metric.counter(`${prefix}agent_structured_output_exhausted`, {
55
+ description: "Agent steps whose output corrections were exhausted"
56
+ });
57
+ const droppedLogRecords = Metric.counter(`${prefix}observability_log_dropped`, {
58
+ description: "Operational log records dropped before durable delivery"
59
+ });
60
+ const registry = {
61
+ runThroughput,
62
+ activeSeats,
63
+ quotaParks,
64
+ structuredOutputRejections,
65
+ structuredOutputExhausted,
66
+ droppedLogRecords
67
+ };
68
+ //# sourceMappingURL=Metric.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Metric.ts"],
4
+ "sourcesContent": ["/**\n * Effect metric registry for flows runtime signals.\n *\n * @since 0.1.0\n */\n\nimport * as Metric from \"effect/Metric\"\n\nconst prefix = \"flows_\"\n\n/**\n * Counts flow runs that reached a terminal state.\n *\n * @category metrics\n * @since 0.1.0\n */\nexport const runThroughput = Metric.counter(`${prefix}run_throughput`, {\n description: \"Completed flow runs\"\n})\n\n/**\n * The number of execution seats currently held.\n *\n * @category metrics\n * @since 0.1.0\n */\nexport const activeSeats = Metric.gauge(`${prefix}seat_active`, {\n description: \"Currently active execution seats\"\n})\n\n/**\n * Counts runs parked because a quota was exhausted.\n *\n * @category metrics\n * @since 0.1.0\n */\nexport const quotaParks = Metric.counter(`${prefix}quota_park`, {\n description: \"Runs parked by quota enforcement\"\n})\n\n/**\n * Counts agent answers refused by their declared output schema.\n *\n * @category metrics\n * @since 1.0.0-rc.1\n */\nexport const structuredOutputRejections = Metric.counter(`${prefix}agent_structured_output_rejections`, {\n description: \"Agent answers refused by their declared output schema\"\n})\n\n/**\n * Counts agent steps that failed after spending every output correction.\n *\n * @category metrics\n * @since 1.0.0-rc.1\n */\nexport const structuredOutputExhausted = Metric.counter(`${prefix}agent_structured_output_exhausted`, {\n description: \"Agent steps whose output corrections were exhausted\"\n})\n\n/**\n * Counts operational log records lost before durable delivery.\n *\n * Advances once per record dropped by a saturated forwarding queue, once per\n * journal delivery failure, and once per defect the forwarding worker recovers\n * from, so telemetry loss is distinguishable from an idle logger.\n *\n * @category metrics\n * @since 1.0.0-rc.0\n */\nexport const droppedLogRecords = Metric.counter(`${prefix}observability_log_dropped`, {\n description: \"Operational log records dropped before durable delivery\"\n})\n\n/**\n * All metrics declared by this package.\n *\n * @category registry\n * @since 0.1.0\n */\nexport const registry = {\n runThroughput,\n activeSeats,\n quotaParks,\n structuredOutputRejections,\n structuredOutputExhausted,\n droppedLogRecords\n} as const\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,aAAwB;AAExB,MAAM,SAAS;AAQR,MAAM,gBAAgB,OAAO,QAAQ,GAAG,MAAM,kBAAkB;AAAA,EACrE,aAAa;AACf,CAAC;AAQM,MAAM,cAAc,OAAO,MAAM,GAAG,MAAM,eAAe;AAAA,EAC9D,aAAa;AACf,CAAC;AAQM,MAAM,aAAa,OAAO,QAAQ,GAAG,MAAM,cAAc;AAAA,EAC9D,aAAa;AACf,CAAC;AAQM,MAAM,6BAA6B,OAAO,QAAQ,GAAG,MAAM,sCAAsC;AAAA,EACtG,aAAa;AACf,CAAC;AAQM,MAAM,4BAA4B,OAAO,QAAQ,GAAG,MAAM,qCAAqC;AAAA,EACpG,aAAa;AACf,CAAC;AAYM,MAAM,oBAAoB,OAAO,QAAQ,GAAG,MAAM,6BAA6B;AAAA,EACpF,aAAa;AACf,CAAC;AAQM,MAAM,WAAW;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Node-only OTLP/HTTP OpenTelemetry setup.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ import type * as Duration from "effect/Duration";
7
+ import * as Layer from "effect/Layer";
8
+ import * as Endpoint from "./Endpoint.ts";
9
+ import * as Resource from "./Resource.ts";
10
+ import type { Configuration as ResourceConfiguration } from "./Resource.ts";
11
+ /**
12
+ * Node OTLP/HTTP layer options.
13
+ *
14
+ * @category models
15
+ * @since 0.1.0
16
+ */
17
+ export interface Options {
18
+ /**
19
+ * The collector base URL. It must be an absolute `http:` or `https:` URL
20
+ * without credentials and free of spaces and control characters; anything
21
+ * else fails layer acquisition with
22
+ * {@link Endpoint.InvalidExporterEndpoint}.
23
+ */
24
+ readonly endpoint: string;
25
+ readonly resource: ResourceConfiguration;
26
+ readonly shutdownTimeout?: Duration.Input | undefined;
27
+ readonly exportIntervalMillis?: number | undefined;
28
+ }
29
+ /**
30
+ * Builds a scoped Node OTLP/HTTP layer for all three telemetry signals.
31
+ * Exporter objects are created only when this layer is built.
32
+ * Resource metadata is explicit: ambient OTEL resource configuration cannot
33
+ * enlarge it after validation. The OpenTelemetry exporters still read the
34
+ * standard `OTEL_EXPORTER_OTLP_*` transport variables (headers, timeout,
35
+ * compression, TLS files) from the process environment and send them to the
36
+ * explicit endpoint, which always wins over `OTEL_EXPORTER_OTLP_ENDPOINT`.
37
+ *
38
+ * @category layers
39
+ * @since 0.1.0
40
+ */
41
+ export declare const layerOtel: (options: Options) => Layer.Layer<never, Resource.InvalidResourceConfiguration | Endpoint.InvalidExporterEndpoint>;
42
+ //# sourceMappingURL=NodeOtel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeOtel.d.ts","sourceRoot":"","sources":["../../src/NodeOtel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAEhD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,IAAI,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE3E;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAA;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnD;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,OAAO,KACf,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,4BAA4B,GAAG,QAAQ,CAAC,uBAAuB,CAmC3F,CAAA"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var NodeOtel_exports = {};
30
+ __export(NodeOtel_exports, {
31
+ layerOtel: () => layerOtel
32
+ });
33
+ module.exports = __toCommonJS(NodeOtel_exports);
34
+ var NodeSdk = __toESM(require("@effect/opentelemetry/NodeSdk"), 1);
35
+ var import_exporter_logs_otlp_http = require("@opentelemetry/exporter-logs-otlp-http");
36
+ var import_exporter_metrics_otlp_http = require("@opentelemetry/exporter-metrics-otlp-http");
37
+ var import_exporter_trace_otlp_http = require("@opentelemetry/exporter-trace-otlp-http");
38
+ var import_sdk_logs = require("@opentelemetry/sdk-logs");
39
+ var import_sdk_metrics = require("@opentelemetry/sdk-metrics");
40
+ var import_sdk_trace_base = require("@opentelemetry/sdk-trace-base");
41
+ var ConfigProvider = __toESM(require("effect/ConfigProvider"), 1);
42
+ var Effect = __toESM(require("effect/Effect"), 1);
43
+ var Layer = __toESM(require("effect/Layer"), 1);
44
+ var Endpoint = __toESM(require("./Endpoint.js"), 1);
45
+ var Resource = __toESM(require("./Resource.js"), 1);
46
+ const layerOtel = (options) => Layer.unwrap(
47
+ Effect.map(
48
+ Effect.all([Resource.decode(options.resource), Endpoint.decode(options.endpoint, "endpoint")]),
49
+ ([decoded, endpoint]) => NodeSdk.layer(() => {
50
+ const resource = Resource.toOpenTelemetryConfiguration(decoded);
51
+ const spanProcessor = new import_sdk_trace_base.BatchSpanProcessor(
52
+ new import_exporter_trace_otlp_http.OTLPTraceExporter({ url: Endpoint.signalUrl(endpoint, "traces") })
53
+ );
54
+ const logRecordProcessor = new import_sdk_logs.BatchLogRecordProcessor({
55
+ exporter: new import_exporter_logs_otlp_http.OTLPLogExporter({ url: Endpoint.signalUrl(endpoint, "logs") })
56
+ });
57
+ const metricReader = options.exportIntervalMillis === void 0 ? new import_sdk_metrics.PeriodicExportingMetricReader({
58
+ exporter: new import_exporter_metrics_otlp_http.OTLPMetricExporter({ url: Endpoint.signalUrl(endpoint, "metrics") })
59
+ }) : new import_sdk_metrics.PeriodicExportingMetricReader({
60
+ exporter: new import_exporter_metrics_otlp_http.OTLPMetricExporter({ url: Endpoint.signalUrl(endpoint, "metrics") }),
61
+ exportIntervalMillis: options.exportIntervalMillis
62
+ });
63
+ return {
64
+ resource,
65
+ spanProcessor,
66
+ logRecordProcessor,
67
+ metricReader,
68
+ shutdownTimeout: options.shutdownTimeout
69
+ };
70
+ }).pipe(
71
+ // NodeSdk merges Resource.layerFromEnv after our admission check.
72
+ // Isolate that lookup so only the validated explicit resource and
73
+ // the SDK metadata already included in its budget reach exporters.
74
+ Layer.provide(ConfigProvider.layer(ConfigProvider.fromUnknown({})))
75
+ )
76
+ )
77
+ );
78
+ //# sourceMappingURL=NodeOtel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/NodeOtel.ts"],
4
+ "sourcesContent": ["/**\n * Node-only OTLP/HTTP OpenTelemetry setup.\n *\n * @since 0.1.0\n */\n\nimport * as NodeSdk from \"@effect/opentelemetry/NodeSdk\"\nimport { OTLPLogExporter } from \"@opentelemetry/exporter-logs-otlp-http\"\nimport { OTLPMetricExporter } from \"@opentelemetry/exporter-metrics-otlp-http\"\nimport { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\"\nimport { BatchLogRecordProcessor } from \"@opentelemetry/sdk-logs\"\nimport { PeriodicExportingMetricReader } from \"@opentelemetry/sdk-metrics\"\nimport { BatchSpanProcessor } from \"@opentelemetry/sdk-trace-base\"\nimport * as ConfigProvider from \"effect/ConfigProvider\"\nimport type * as Duration from \"effect/Duration\"\nimport * as Effect from \"effect/Effect\"\nimport * as Layer from \"effect/Layer\"\nimport * as Endpoint from \"./Endpoint.ts\"\nimport * as Resource from \"./Resource.ts\"\nimport type { Configuration as ResourceConfiguration } from \"./Resource.ts\"\n\n/**\n * Node OTLP/HTTP layer options.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Options {\n /**\n * The collector base URL. It must be an absolute `http:` or `https:` URL\n * without credentials and free of spaces and control characters; anything\n * else fails layer acquisition with\n * {@link Endpoint.InvalidExporterEndpoint}.\n */\n readonly endpoint: string\n readonly resource: ResourceConfiguration\n readonly shutdownTimeout?: Duration.Input | undefined\n readonly exportIntervalMillis?: number | undefined\n}\n\n/**\n * Builds a scoped Node OTLP/HTTP layer for all three telemetry signals.\n * Exporter objects are created only when this layer is built.\n * Resource metadata is explicit: ambient OTEL resource configuration cannot\n * enlarge it after validation. The OpenTelemetry exporters still read the\n * standard `OTEL_EXPORTER_OTLP_*` transport variables (headers, timeout,\n * compression, TLS files) from the process environment and send them to the\n * explicit endpoint, which always wins over `OTEL_EXPORTER_OTLP_ENDPOINT`.\n *\n * @category layers\n * @since 0.1.0\n */\nexport const layerOtel = (\n options: Options\n): Layer.Layer<never, Resource.InvalidResourceConfiguration | Endpoint.InvalidExporterEndpoint> =>\n Layer.unwrap(\n Effect.map(\n Effect.all([Resource.decode(options.resource), Endpoint.decode(options.endpoint, \"endpoint\")]),\n ([decoded, endpoint]) =>\n NodeSdk.layer(() => {\n const resource = Resource.toOpenTelemetryConfiguration(decoded)\n const spanProcessor = new BatchSpanProcessor(\n new OTLPTraceExporter({ url: Endpoint.signalUrl(endpoint, \"traces\") })\n )\n const logRecordProcessor = new BatchLogRecordProcessor({\n exporter: new OTLPLogExporter({ url: Endpoint.signalUrl(endpoint, \"logs\") })\n })\n const metricReader = options.exportIntervalMillis === undefined\n ? new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter({ url: Endpoint.signalUrl(endpoint, \"metrics\") })\n })\n : new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter({ url: Endpoint.signalUrl(endpoint, \"metrics\") }),\n exportIntervalMillis: options.exportIntervalMillis\n })\n return {\n resource,\n spanProcessor,\n logRecordProcessor,\n metricReader,\n shutdownTimeout: options.shutdownTimeout\n }\n }).pipe(\n // NodeSdk merges Resource.layerFromEnv after our admission check.\n // Isolate that lookup so only the validated explicit resource and\n // the SDK metadata already included in its budget reach exporters.\n Layer.provide(ConfigProvider.layer(ConfigProvider.fromUnknown({})))\n )\n )\n )\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAyB;AACzB,qCAAgC;AAChC,wCAAmC;AACnC,sCAAkC;AAClC,sBAAwC;AACxC,yBAA8C;AAC9C,4BAAmC;AACnC,qBAAgC;AAEhC,aAAwB;AACxB,YAAuB;AACvB,eAA0B;AAC1B,eAA0B;AAkCnB,MAAM,YAAY,CACvB,YAEA,MAAM;AAAA,EACJ,OAAO;AAAA,IACL,OAAO,IAAI,CAAC,SAAS,OAAO,QAAQ,QAAQ,GAAG,SAAS,OAAO,QAAQ,UAAU,UAAU,CAAC,CAAC;AAAA,IAC7F,CAAC,CAAC,SAAS,QAAQ,MACjB,QAAQ,MAAM,MAAM;AAClB,YAAM,WAAW,SAAS,6BAA6B,OAAO;AAC9D,YAAM,gBAAgB,IAAI;AAAA,QACxB,IAAI,kDAAkB,EAAE,KAAK,SAAS,UAAU,UAAU,QAAQ,EAAE,CAAC;AAAA,MACvE;AACA,YAAM,qBAAqB,IAAI,wCAAwB;AAAA,QACrD,UAAU,IAAI,+CAAgB,EAAE,KAAK,SAAS,UAAU,UAAU,MAAM,EAAE,CAAC;AAAA,MAC7E,CAAC;AACD,YAAM,eAAe,QAAQ,yBAAyB,SAClD,IAAI,iDAA8B;AAAA,QAClC,UAAU,IAAI,qDAAmB,EAAE,KAAK,SAAS,UAAU,UAAU,SAAS,EAAE,CAAC;AAAA,MACnF,CAAC,IACC,IAAI,iDAA8B;AAAA,QAClC,UAAU,IAAI,qDAAmB,EAAE,KAAK,SAAS,UAAU,UAAU,SAAS,EAAE,CAAC;AAAA,QACjF,sBAAsB,QAAQ;AAAA,MAChC,CAAC;AACH,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAiB,QAAQ;AAAA,MAC3B;AAAA,IACF,CAAC,EAAE;AAAA;AAAA;AAAA;AAAA,MAID,MAAM,QAAQ,eAAe,MAAM,eAAe,YAAY,CAAC,CAAC,CAAC,CAAC;AAAA,IACpE;AAAA,EACJ;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Provider-neutral composition for injected OpenTelemetry providers.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ import * as OtelMetrics from "@effect/opentelemetry/OtelMetrics";
7
+ import type * as Api from "@opentelemetry/api";
8
+ import type { LoggerProvider } from "@opentelemetry/sdk-logs";
9
+ import type { MetricReader } from "@opentelemetry/sdk-metrics";
10
+ import * as Layer from "effect/Layer";
11
+ import { type Configuration as ResourceConfiguration, type InvalidResourceConfiguration, Resource } from "./Resource.ts";
12
+ /**
13
+ * Injected providers used by the provider-neutral OTEL layer.
14
+ *
15
+ * @category models
16
+ * @since 0.1.0
17
+ */
18
+ export interface Options {
19
+ /** Validated resource for metrics and provider factories. */
20
+ readonly resource: ResourceConfiguration;
21
+ /**
22
+ * Borrowed: the layer bridges onto this provider and never flushes or shuts
23
+ * it down, including a provider a factory returns. Existing providers retain
24
+ * their resource. Factories must pass the supplied resource to the SDK.
25
+ */
26
+ readonly tracerProvider?: Api.TracerProvider | ((resource: typeof Resource.Service) => Api.TracerProvider) | undefined;
27
+ /** Borrowed on the same terms as `tracerProvider`. */
28
+ readonly loggerProvider?: LoggerProvider | ((resource: typeof Resource.Service) => LoggerProvider) | undefined;
29
+ /**
30
+ * Owned: the factory runs once during layer acquisition, after resource
31
+ * validation, and every reader it returns is shut down when the scope
32
+ * closes. Build the readers inside the factory rather than returning one a
33
+ * longer-lived composition still exports through, which that shutdown would
34
+ * disable. An empty array registers no reader at all.
35
+ */
36
+ readonly metricReader?: (() => MetricReader | ReadonlyArray<MetricReader>) | undefined;
37
+ readonly loggerMergeWithExisting?: boolean | undefined;
38
+ readonly metricTemporality?: OtelMetrics.TemporalityPreference | undefined;
39
+ }
40
+ /**
41
+ * Composes Effect tracer, logger, and metric bridges from already-created
42
+ * OpenTelemetry providers or provider factories, and from metric readers this
43
+ * layer acquires. Factories run during layer acquisition after resource
44
+ * validation, and the provider factories receive the metric resource.
45
+ * Already-created providers keep the resource captured at construction; the
46
+ * resource option only sets the metric resource for them. Spans and log
47
+ * records carry the instrumentation scope `effect` with the Effect version.
48
+ * Ownership splits: callers own provider flushing and shutdown, including
49
+ * factory-built providers, while the layer scope shuts down every reader the
50
+ * `metricReader` factory returned. No exporter is allocated by this module.
51
+ *
52
+ * @category layers
53
+ * @since 0.1.0
54
+ */
55
+ export declare const layerOtel: (options: Options) => Layer.Layer<never, InvalidResourceConfiguration>;
56
+ /**
57
+ * A no-op OTEL layer for callers that want an explicit optional slot.
58
+ *
59
+ * @category layers
60
+ * @since 0.1.0
61
+ */
62
+ export declare const layerNoop: Layer.Layer<never>;
63
+ //# sourceMappingURL=Otel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Otel.d.ts","sourceRoot":"","sources":["../../src/Otel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAA;AAEhE,OAAO,KAAK,KAAK,GAAG,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EACL,KAAK,aAAa,IAAI,qBAAqB,EAC3C,KAAK,4BAA4B,EAEjC,QAAQ,EACT,MAAM,eAAe,CAAA;AAEtB;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAA;IACxC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EACpB,GAAG,CAAC,cAAc,GAClB,CAAC,CAAC,QAAQ,EAAE,OAAO,QAAQ,CAAC,OAAO,KAAK,GAAG,CAAC,cAAc,CAAC,GAC3D,SAAS,CAAA;IACb,sDAAsD;IACtD,QAAQ,CAAC,cAAc,CAAC,EACpB,cAAc,GACd,CAAC,CAAC,QAAQ,EAAE,OAAO,QAAQ,CAAC,OAAO,KAAK,cAAc,CAAC,GACvD,SAAS,CAAA;IACb;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,SAAS,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,qBAAqB,GAAG,SAAS,CAAA;CAC3E;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,4BAA4B,CAsC3F,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAe,CAAA"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var Otel_exports = {};
30
+ __export(Otel_exports, {
31
+ layerNoop: () => layerNoop,
32
+ layerOtel: () => layerOtel
33
+ });
34
+ module.exports = __toCommonJS(Otel_exports);
35
+ var OtelLogger = __toESM(require("@effect/opentelemetry/OtelLogger"), 1);
36
+ var OtelMetrics = __toESM(require("@effect/opentelemetry/OtelMetrics"), 1);
37
+ var OtelTracer = __toESM(require("@effect/opentelemetry/OtelTracer"), 1);
38
+ var Effect = __toESM(require("effect/Effect"), 1);
39
+ var Layer = __toESM(require("effect/Layer"), 1);
40
+ var import_Resource = require("./Resource.js");
41
+ const layerOtel = (options) => {
42
+ const resource = (0, import_Resource.layer)(options.resource);
43
+ const tracerProvider = options.tracerProvider;
44
+ const loggerProvider = options.loggerProvider;
45
+ const tracer = tracerProvider === void 0 ? Layer.empty : Layer.provide(
46
+ OtelTracer.layer,
47
+ Layer.effect(
48
+ OtelTracer.OtelTracerProvider,
49
+ Effect.map(
50
+ import_Resource.Resource,
51
+ (resource2) => typeof tracerProvider === "function" ? tracerProvider(resource2) : tracerProvider
52
+ )
53
+ )
54
+ );
55
+ const logger = loggerProvider === void 0 ? Layer.empty : Layer.provide(
56
+ OtelLogger.layer({ mergeWithExisting: options.loggerMergeWithExisting }),
57
+ Layer.effect(
58
+ OtelLogger.OtelLoggerProvider,
59
+ Effect.map(
60
+ import_Resource.Resource,
61
+ (resource2) => typeof loggerProvider === "function" ? loggerProvider(resource2) : loggerProvider
62
+ )
63
+ )
64
+ );
65
+ const acquireMetricReader = options.metricReader;
66
+ const metrics = acquireMetricReader === void 0 ? Layer.empty : OtelMetrics.layer(
67
+ () => acquireMetricReader(),
68
+ {
69
+ temporality: options.metricTemporality
70
+ }
71
+ );
72
+ return Layer.mergeAll(tracer, logger, metrics).pipe(Layer.provideMerge(resource));
73
+ };
74
+ const layerNoop = Layer.empty;
75
+ //# sourceMappingURL=Otel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Otel.ts"],
4
+ "sourcesContent": ["/**\n * Provider-neutral composition for injected OpenTelemetry providers.\n *\n * @since 0.1.0\n */\n\nimport * as OtelLogger from \"@effect/opentelemetry/OtelLogger\"\nimport * as OtelMetrics from \"@effect/opentelemetry/OtelMetrics\"\nimport * as OtelTracer from \"@effect/opentelemetry/OtelTracer\"\nimport type * as Api from \"@opentelemetry/api\"\nimport type { LoggerProvider } from \"@opentelemetry/sdk-logs\"\nimport type { MetricReader } from \"@opentelemetry/sdk-metrics\"\nimport * as Effect from \"effect/Effect\"\nimport * as Layer from \"effect/Layer\"\nimport {\n type Configuration as ResourceConfiguration,\n type InvalidResourceConfiguration,\n layer as resourceLayer,\n Resource\n} from \"./Resource.ts\"\n\n/**\n * Injected providers used by the provider-neutral OTEL layer.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Options {\n /** Validated resource for metrics and provider factories. */\n readonly resource: ResourceConfiguration\n /**\n * Borrowed: the layer bridges onto this provider and never flushes or shuts\n * it down, including a provider a factory returns. Existing providers retain\n * their resource. Factories must pass the supplied resource to the SDK.\n */\n readonly tracerProvider?:\n | Api.TracerProvider\n | ((resource: typeof Resource.Service) => Api.TracerProvider)\n | undefined\n /** Borrowed on the same terms as `tracerProvider`. */\n readonly loggerProvider?:\n | LoggerProvider\n | ((resource: typeof Resource.Service) => LoggerProvider)\n | undefined\n /**\n * Owned: the factory runs once during layer acquisition, after resource\n * validation, and every reader it returns is shut down when the scope\n * closes. Build the readers inside the factory rather than returning one a\n * longer-lived composition still exports through, which that shutdown would\n * disable. An empty array registers no reader at all.\n */\n readonly metricReader?: (() => MetricReader | ReadonlyArray<MetricReader>) | undefined\n readonly loggerMergeWithExisting?: boolean | undefined\n readonly metricTemporality?: OtelMetrics.TemporalityPreference | undefined\n}\n\n/**\n * Composes Effect tracer, logger, and metric bridges from already-created\n * OpenTelemetry providers or provider factories, and from metric readers this\n * layer acquires. Factories run during layer acquisition after resource\n * validation, and the provider factories receive the metric resource.\n * Already-created providers keep the resource captured at construction; the\n * resource option only sets the metric resource for them. Spans and log\n * records carry the instrumentation scope `effect` with the Effect version.\n * Ownership splits: callers own provider flushing and shutdown, including\n * factory-built providers, while the layer scope shuts down every reader the\n * `metricReader` factory returned. No exporter is allocated by this module.\n *\n * @category layers\n * @since 0.1.0\n */\nexport const layerOtel = (options: Options): Layer.Layer<never, InvalidResourceConfiguration> => {\n const resource = resourceLayer(options.resource)\n const tracerProvider = options.tracerProvider\n const loggerProvider = options.loggerProvider\n const tracer = tracerProvider === undefined\n ? Layer.empty\n : Layer.provide(\n OtelTracer.layer,\n Layer.effect(\n OtelTracer.OtelTracerProvider,\n Effect.map(\n Resource,\n (resource) => typeof tracerProvider === \"function\" ? tracerProvider(resource) : tracerProvider\n )\n )\n )\n const logger = loggerProvider === undefined\n ? Layer.empty\n : Layer.provide(\n OtelLogger.layer({ mergeWithExisting: options.loggerMergeWithExisting }),\n Layer.effect(\n OtelLogger.OtelLoggerProvider,\n Effect.map(\n Resource,\n (resource) => typeof loggerProvider === \"function\" ? loggerProvider(resource) : loggerProvider\n )\n )\n )\n const acquireMetricReader = options.metricReader\n const metrics = acquireMetricReader === undefined\n ? Layer.empty\n : OtelMetrics.layer(\n () => acquireMetricReader() as unknown as MetricReader | readonly [MetricReader, ...Array<MetricReader>],\n {\n temporality: options.metricTemporality\n }\n )\n return Layer.mergeAll(tracer, logger, metrics).pipe(Layer.provideMerge(resource))\n}\n\n/**\n * A no-op OTEL layer for callers that want an explicit optional slot.\n *\n * @category layers\n * @since 0.1.0\n */\nexport const layerNoop: Layer.Layer<never> = Layer.empty\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,iBAA4B;AAC5B,kBAA6B;AAC7B,iBAA4B;AAI5B,aAAwB;AACxB,YAAuB;AACvB,sBAKO;AAoDA,MAAM,YAAY,CAAC,YAAuE;AAC/F,QAAM,eAAW,gBAAAA,OAAc,QAAQ,QAAQ;AAC/C,QAAM,iBAAiB,QAAQ;AAC/B,QAAM,iBAAiB,QAAQ;AAC/B,QAAM,SAAS,mBAAmB,SAC9B,MAAM,QACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,MACJ,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,QACA,CAACC,cAAa,OAAO,mBAAmB,aAAa,eAAeA,SAAQ,IAAI;AAAA,MAClF;AAAA,IACF;AAAA,EACF;AACF,QAAM,SAAS,mBAAmB,SAC9B,MAAM,QACN,MAAM;AAAA,IACN,WAAW,MAAM,EAAE,mBAAmB,QAAQ,wBAAwB,CAAC;AAAA,IACvE,MAAM;AAAA,MACJ,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,QACA,CAACA,cAAa,OAAO,mBAAmB,aAAa,eAAeA,SAAQ,IAAI;AAAA,MAClF;AAAA,IACF;AAAA,EACF;AACF,QAAM,sBAAsB,QAAQ;AACpC,QAAM,UAAU,wBAAwB,SACpC,MAAM,QACN,YAAY;AAAA,IACZ,MAAM,oBAAoB;AAAA,IAC1B;AAAA,MACE,aAAa,QAAQ;AAAA,IACvB;AAAA,EACF;AACF,SAAO,MAAM,SAAS,QAAQ,QAAQ,OAAO,EAAE,KAAK,MAAM,aAAa,QAAQ,CAAC;AAClF;AAQO,MAAM,YAAgC,MAAM;",
6
+ "names": ["resourceLayer", "resource"]
7
+ }