@smthrs/observability 0.35.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 -843
  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 -1392
  182. package/src/index.js +0 -137
  183. package/src/kindPhase.js +0 -17
  184. package/src/logging.js +0 -264
  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 -1222
  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
package/src/index.js DELETED
@@ -1,137 +0,0 @@
1
- /** @typedef {import("./_coreCorrelation/CorrelationContext.ts").CorrelationContext} CorrelationContext */
2
- /** @typedef {import("./_coreCorrelation/CorrelationPatch.ts").CorrelationPatch} CorrelationPatch */
3
- /** @typedef {CorrelationPatch} CorrelationContextPatch */
4
- /** @typedef {import("./_corePrometheusShape.ts").MetricLabels} MetricLabels */
5
- /** @typedef {import("./_coreMetricsShape.ts").MetricsServiceShape} MetricsServiceShape */
6
- /** @typedef {import("./_coreMetricsShape.ts").MetricsSnapshot} MetricsSnapshot */
7
- /** @typedef {import("./ResolvedSmithersObservabilityOptions.ts").ResolvedSmithersObservabilityOptions} ResolvedSmithersObservabilityOptions */
8
- /** @typedef {import("./SmithersEvent.ts").RunCancellationSource} RunCancellationSource */
9
- /** @typedef {import("./SmithersEvent.ts").SmithersEvent} SmithersEvent */
10
- /** @typedef {import("./SmithersLogFormat.ts").SmithersLogFormat} SmithersLogFormat */
11
- /** @typedef {import("./SmithersMetricDefinition.ts").SmithersMetricDefinition} SmithersMetricDefinition */
12
- /** @typedef {import("./SmithersObservabilityOptions.ts").SmithersObservabilityOptions} SmithersObservabilityOptions */
13
- /** @typedef {import("./SmithersObservabilityService.ts").SmithersObservabilityService} SmithersObservabilityService */
14
-
15
- export { MetricsService } from "./_coreMetrics.js";
16
- export { TracingService, TracingServiceLive } from "./_coreTracing.js";
17
- export { SmithersObservability } from "./SmithersObservability.js";
18
- export { prometheusContentType } from "./prometheusContentType.js";
19
- export { smithersSpanNames } from "./smithersSpanNames.js";
20
- export { getCurrentSmithersTraceSpan } from "./getCurrentSmithersTraceSpan.js";
21
- export { getCurrentSmithersTraceAnnotations } from "./getCurrentSmithersTraceAnnotations.js";
22
- export { makeSmithersSpanAttributes } from "./makeSmithersSpanAttributes.js";
23
- export { annotateSmithersTrace } from "./annotateSmithersTrace.js";
24
- export { withSmithersSpan } from "./withSmithersSpan.js";
25
- export { renderPrometheusMetrics } from "./renderPrometheusMetrics.js";
26
- export { resolveSmithersObservabilityOptions } from "./resolveSmithersObservabilityOptions.js";
27
- export { smithersMetrics } from "./smithersMetrics.js";
28
- export { MetricsServiceLive } from "./MetricsServiceLive.js";
29
- export { createSmithersOtelLayer } from "./createSmithersOtelLayer.js";
30
- export { createSmithersObservabilityLayer } from "./createSmithersObservabilityLayer.js";
31
- export { createSmithersRuntimeLayer } from "./createSmithersRuntimeLayer.js";
32
- export {
33
- rewindTotal,
34
- rewindRollbackTotal,
35
- rewindDurationMs,
36
- rewindFramesDeleted,
37
- rewindSandboxesReverted,
38
- } from "./metrics/index.js";
39
- export {
40
- activeNodes,
41
- activeRuns,
42
- approvalPending,
43
- externalWaitAsyncPending,
44
- approvalsDenied,
45
- approvalsGranted,
46
- approvalsRequested,
47
- approvalWaitDuration,
48
- timerDelayDuration,
49
- timersCancelled,
50
- timersCreated,
51
- timersFired,
52
- timersPending,
53
- attemptDuration,
54
- cacheHits,
55
- cacheMisses,
56
- dbQueryDuration,
57
- dbRetries,
58
- dbTransactionDuration,
59
- dbTransactionRetries,
60
- dbTransactionRollbacks,
61
- errorsTotal,
62
- eventsEmittedTotal,
63
- hotReloadDuration,
64
- hotReloadFailures,
65
- hotReloads,
66
- httpRequestDuration,
67
- httpRequests,
68
- nodeDuration,
69
- nodeRetriesTotal,
70
- nodesFailed,
71
- nodesFinished,
72
- nodesStarted,
73
- processHeapUsedBytes,
74
- processMemoryRssBytes,
75
- processUptimeSeconds,
76
- promptSizeBytes,
77
- responseSizeBytes,
78
- runDuration,
79
- runsCancelledTotal,
80
- runsContinuedTotal,
81
- runsFailedTotal,
82
- runsFinishedTotal,
83
- runsResumedTotal,
84
- runsAncestryDepth,
85
- runsCarriedStateBytes,
86
- sandboxActive,
87
- sandboxBundleSizeBytes,
88
- sandboxCompletedTotal,
89
- sandboxCreatedTotal,
90
- sandboxDurationMs,
91
- sandboxPatchCount,
92
- sandboxTransportDurationMs,
93
- runsTotal,
94
- schedulerConcurrencyUtilization,
95
- schedulerQueueDepth,
96
- schedulerWaitDuration,
97
- tokensCacheReadTotal,
98
- tokensCacheWriteTotal,
99
- tokensContextWindowBucketTotal,
100
- tokensContextWindowPerCall,
101
- tokensInputPerCall,
102
- tokensInputTotal,
103
- tokensOutputPerCall,
104
- tokensOutputTotal,
105
- tokensReasoningTotal,
106
- toolCallErrorsTotal,
107
- toolCallsTotal,
108
- toolDuration,
109
- toolOutputTruncatedTotal,
110
- scorerEventsStarted,
111
- scorerEventsFinished,
112
- scorerEventsFailed,
113
- snapshotsCaptured,
114
- runForksCreated,
115
- replaysStarted,
116
- snapshotDuration,
117
- trackEvent as trackSmithersEvent,
118
- updateProcessMetrics,
119
- vcsDuration,
120
- toPrometheusMetricName,
121
- smithersMetricCatalog,
122
- metricsServiceAdapter,
123
- } from "./metrics/index.js";
124
- export {
125
- correlationContextFiberRef,
126
- correlationContextToLogAnnotations,
127
- CorrelationContextLive,
128
- CorrelationContextService,
129
- getCurrentCorrelationContext,
130
- getCurrentCorrelationContextEffect,
131
- mergeCorrelationContext,
132
- runWithCorrelationContext,
133
- withCorrelationContext,
134
- withCurrentCorrelationContext,
135
- } from "./correlation.js";
136
- export { updateCurrentCorrelationContext } from "./correlation.js";
137
- export { logDebug, logInfo, logWarning, logError, runWithSmithersLogRunner, setSmithersLogRunner } from "./logging.js";
package/src/kindPhase.js DELETED
@@ -1,17 +0,0 @@
1
- /**
2
- * @typedef {import('./agentTrace.ts').CanonicalAgentTraceEventKind} CanonicalAgentTraceEventKind
3
- * @typedef {import('./agentTrace.ts').CanonicalAgentTraceEventPhase} CanonicalAgentTraceEventPhase
4
- */
5
-
6
- /**
7
- * @param {CanonicalAgentTraceEventKind} kind
8
- * @returns {CanonicalAgentTraceEventPhase}
9
- */
10
- export function kindPhase(kind) {
11
- if (kind.startsWith("session.")) return "session";
12
- if (kind.startsWith("turn.")) return "turn";
13
- if (kind.startsWith("message.") || kind.startsWith("assistant.")) return "message";
14
- if (kind.startsWith("tool.")) return "tool";
15
- if (kind.startsWith("artifact.")) return "artifact";
16
- return "capture";
17
- }
package/src/logging.js DELETED
@@ -1,264 +0,0 @@
1
- import { Effect, Logger, LogLevel } from "effect";
2
- import { AsyncLocalStorage } from "node:async_hooks";
3
- import { getCurrentSmithersTraceAnnotations } from "./getCurrentSmithersTraceAnnotations.js";
4
- import {
5
- correlationContextToLogAnnotations,
6
- getCurrentCorrelationContext,
7
- withCurrentCorrelationContext,
8
- } from "./correlation.js";
9
- /**
10
- * @typedef {Record<string, unknown> | undefined} LogAnnotations
11
- */
12
-
13
- /** @type {number} */
14
- const LOG_LEVEL_NONE = 0;
15
- const LOG_LEVEL_DEBUG = 1;
16
- const LOG_LEVEL_INFO = 2;
17
- const LOG_LEVEL_WARNING = 3;
18
- const LOG_LEVEL_ERROR = 4;
19
- const LOG_RUNNER_KEY = Symbol.for("smithers.observability.logRunner");
20
- const defaultLoggerLayer = Logger.layer([Logger.consoleLogFmt]);
21
- const runnerStorage = new AsyncLocalStorage();
22
-
23
- /**
24
- * Resolve the minimum imperative log level. The environment value is an
25
- * injectable parameter (defaulting to `SMITHERS_LOG_LEVEL`) so the mapping is
26
- * testable without re-importing the module; module state still captures the
27
- * env-derived value once at load time.
28
- *
29
- * @param {string | undefined} [env]
30
- * @returns {number}
31
- */
32
- export function resolveMinLevel(env = process.env.SMITHERS_LOG_LEVEL?.toLowerCase()) {
33
- switch (env) {
34
- case "none":
35
- return Infinity;
36
- case "trace":
37
- case "debug":
38
- return LOG_LEVEL_DEBUG;
39
- case "warning":
40
- case "warn":
41
- return LOG_LEVEL_WARNING;
42
- case "error":
43
- return LOG_LEVEL_ERROR;
44
- case "fatal":
45
- return Infinity;
46
- case "all":
47
- return LOG_LEVEL_NONE;
48
- // Default to INFO so INFO/OTLP records flow without SMITHERS_LOG_LEVEL,
49
- // matching resolveSmithersObservabilityOptions' Effect-layer default.
50
- case "info":
51
- default:
52
- return LOG_LEVEL_INFO;
53
- }
54
- }
55
-
56
- const minLevel = resolveMinLevel();
57
-
58
- /**
59
- * @typedef {{
60
- * runFork: (effect: Effect.Effect<void, never, never>) => unknown;
61
- * runPromise: (effect: Effect.Effect<void, never, never>) => Promise<void>;
62
- * }} SmithersLogRunner
63
- */
64
-
65
- /** @returns {{ runner: SmithersLogRunner | null }} */
66
- function getRunnerState() {
67
- const globalState = /** @type {typeof globalThis & { [LOG_RUNNER_KEY]?: { runner: SmithersLogRunner | null } }} */ (
68
- globalThis
69
- );
70
- globalState[LOG_RUNNER_KEY] ??= { runner: null };
71
- return globalState[LOG_RUNNER_KEY];
72
- }
73
-
74
- /** @type {SmithersLogRunner} */
75
- const defaultRunner = {
76
- runFork: (effect) => Effect.runFork(effect.pipe(Effect.provide(defaultLoggerLayer))),
77
- runPromise: (effect) => Effect.runPromise(effect.pipe(Effect.provide(defaultLoggerLayer))),
78
- };
79
-
80
- /** @returns {SmithersLogRunner} */
81
- function getLogRunner() {
82
- return runnerStorage.getStore() ?? getRunnerState().runner ?? defaultRunner;
83
- }
84
-
85
- /**
86
- * Scope imperative Smithers logs to one host-owned Effect runner. Unlike
87
- * {@link setSmithersLogRunner}, this is concurrency-safe: parallel embedded
88
- * engine instances keep their loggers isolated across awaits and timers.
89
- *
90
- * @template T
91
- * @param {SmithersLogRunner} runner
92
- * @param {() => T} execute
93
- * @returns {T}
94
- */
95
- export function runWithSmithersLogRunner(runner, execute) {
96
- return runnerStorage.run(runner, execute);
97
- }
98
-
99
- /**
100
- * Install the Effect runtime used by fire-and-forget observability logs.
101
- * Returns a restore function so tests and embedded hosts can scope overrides.
102
- *
103
- * @param {SmithersLogRunner | null} runner
104
- * @returns {() => void}
105
- */
106
- export function setSmithersLogRunner(runner) {
107
- const state = getRunnerState();
108
- const previous = state.runner;
109
- state.runner = runner;
110
- return () => {
111
- state.runner = previous;
112
- };
113
- }
114
-
115
- /**
116
- * Map an imperative smithers log level to the Effect log level used when
117
- * running the log program. Exported alongside {@link resolveMinLevel} so the
118
- * level mapping (including the catch-all `LogLevel.All` fallback) can be
119
- * exercised directly with injected level values.
120
- *
121
- * @param {number} level
122
- */
123
- export function toEffectLogLevel(level) {
124
- switch (level) {
125
- case LOG_LEVEL_DEBUG:
126
- return "Debug";
127
- case LOG_LEVEL_INFO:
128
- return "Info";
129
- case LOG_LEVEL_WARNING:
130
- return "Warn";
131
- case LOG_LEVEL_ERROR:
132
- return "Error";
133
- default:
134
- return "All";
135
- }
136
- }
137
-
138
- /**
139
- * @param {Effect.Effect<void, never, never>} effect
140
- * @param {LogAnnotations} [annotations]
141
- * @param {string} [span]
142
- * @returns {Effect.Effect<void, never, never>}
143
- */
144
- function buildLogProgram(effect, annotations, span) {
145
- const correlationAnnotations = correlationContextToLogAnnotations(getCurrentCorrelationContext());
146
- const traceAnnotations = getCurrentSmithersTraceAnnotations();
147
- const mergedAnnotations =
148
- correlationAnnotations || traceAnnotations || annotations
149
- ? {
150
- ...correlationAnnotations,
151
- ...traceAnnotations,
152
- ...annotations,
153
- }
154
- : undefined;
155
- let program = effect;
156
- if (mergedAnnotations) {
157
- program = program.pipe(Effect.annotateLogs(mergedAnnotations));
158
- }
159
- if (span) {
160
- program = program.pipe(Effect.withLogSpan(span));
161
- }
162
- return withCurrentCorrelationContext(program);
163
- }
164
-
165
- /**
166
- * @param {Effect.Effect<void, never, never>} effect
167
- * @param {LogAnnotations} [annotations]
168
- * @param {string} [span]
169
- * @param {number} [level]
170
- */
171
- function emitLog(effect, annotations, span, level = LOG_LEVEL_INFO) {
172
- if (level < minLevel) return;
173
- const program = buildLogProgram(effect, annotations, span);
174
- try {
175
- void getLogRunner().runFork(program);
176
- } catch {
177
- // Logging must never break the caller.
178
- }
179
- }
180
-
181
- /**
182
- * @param {Effect.Effect<void, never, never>} effect
183
- * @param {LogAnnotations} [annotations]
184
- * @param {string} [span]
185
- * @param {number} [level]
186
- * @returns {Promise<void>}
187
- */
188
- async function emitLogAwait(effect, annotations, span, level = LOG_LEVEL_INFO) {
189
- if (level < minLevel) return;
190
- const program = buildLogProgram(effect, annotations, span);
191
- try {
192
- await getLogRunner().runPromise(program);
193
- } catch {
194
- // Logging must never break the caller.
195
- }
196
- }
197
- /**
198
- * @param {string} message
199
- * @param {LogAnnotations} [annotations]
200
- * @param {string} [span]
201
- */
202
- export function logDebug(message, annotations, span) {
203
- emitLog(Effect.logDebug(message), annotations, span, LOG_LEVEL_DEBUG);
204
- }
205
- /**
206
- * @param {string} message
207
- * @param {LogAnnotations} [annotations]
208
- * @param {string} [span]
209
- */
210
- export function logInfo(message, annotations, span) {
211
- emitLog(Effect.logInfo(message), annotations, span, LOG_LEVEL_INFO);
212
- }
213
- /**
214
- * @param {string} message
215
- * @param {LogAnnotations} [annotations]
216
- * @param {string} [span]
217
- */
218
- export function logWarning(message, annotations, span) {
219
- emitLog(Effect.logWarning(message), annotations, span, LOG_LEVEL_WARNING);
220
- }
221
- /**
222
- * @param {string} message
223
- * @param {LogAnnotations} [annotations]
224
- * @param {string} [span]
225
- */
226
- export function logError(message, annotations, span) {
227
- emitLog(Effect.logError(message), annotations, span, LOG_LEVEL_ERROR);
228
- }
229
- /**
230
- * @param {string} message
231
- * @param {LogAnnotations} [annotations]
232
- * @param {string} [span]
233
- * @returns {Promise<void>}
234
- */
235
- export async function logDebugAwait(message, annotations, span) {
236
- await emitLogAwait(Effect.logDebug(message), annotations, span, LOG_LEVEL_DEBUG);
237
- }
238
- /**
239
- * @param {string} message
240
- * @param {LogAnnotations} [annotations]
241
- * @param {string} [span]
242
- * @returns {Promise<void>}
243
- */
244
- export async function logInfoAwait(message, annotations, span) {
245
- await emitLogAwait(Effect.logInfo(message), annotations, span, LOG_LEVEL_INFO);
246
- }
247
- /**
248
- * @param {string} message
249
- * @param {LogAnnotations} [annotations]
250
- * @param {string} [span]
251
- * @returns {Promise<void>}
252
- */
253
- export async function logWarningAwait(message, annotations, span) {
254
- await emitLogAwait(Effect.logWarning(message), annotations, span, LOG_LEVEL_WARNING);
255
- }
256
- /**
257
- * @param {string} message
258
- * @param {LogAnnotations} [annotations]
259
- * @param {string} [span]
260
- * @returns {Promise<void>}
261
- */
262
- export async function logErrorAwait(message, annotations, span) {
263
- await emitLogAwait(Effect.logError(message), annotations, span, LOG_LEVEL_ERROR);
264
- }
@@ -1,20 +0,0 @@
1
- import { smithersSpanAttributeAliases } from "./_smithersSpanAttributeAliases.js";
2
- /**
3
- * @typedef {Readonly<Record<string, unknown>>} SmithersSpanAttributesInput
4
- */
5
-
6
- /**
7
- * @param {SmithersSpanAttributesInput} [attributes]
8
- * @returns {Record<string, unknown>}
9
- */
10
- export function makeSmithersSpanAttributes(attributes = {}) {
11
- const spanAttributes = {};
12
- for (const [key, value] of Object.entries(attributes)) {
13
- if (value === undefined) {
14
- continue;
15
- }
16
- const nextKey = key.startsWith("smithers.") ? key : (smithersSpanAttributeAliases[key] ?? key);
17
- spanAttributes[nextKey] = value;
18
- }
19
- return spanAttributes;
20
- }
@@ -1,22 +0,0 @@
1
- # metrics/
2
-
3
- Every Smithers Effect `Metric` instance, one per file (so consumers can
4
- subpath-import a single counter without pulling the world), plus the catalog
5
- (`smithersMetricCatalog.js` and its `ByKey`/`ByName`/`ByPrometheusName` lookup
6
- maps), shared histogram boundaries (`_buckets.js`), the SmithersEvent → metric
7
- fan-out (`trackEvent.js`), the process / external-wait gauge updaters, and
8
- `metricsServiceAdapter.js`, which implements `MetricsServiceShape` on top of
9
- the global Effect metric registry.
10
-
11
- How it fits: leaf files define metrics; `smithersMetricCatalog.js` attaches
12
- names, types, labels, boundaries, and default zero-lines for Prometheus
13
- rendering; `../renderPrometheusMetrics.js` and `../MetricsServiceLive.js`
14
- consume the catalog and adapter; `index.js` is the `./metrics` subpath barrel.
15
-
16
- Gotchas: some metrics exist as files but are NOT in the catalog (`devtools*`,
17
- `rewind*`, `attentionBacklog`, most `alerts*`, several memory/openApi/scorer
18
- counters) — they only appear in Prometheus output after their first update and
19
- get no default HELP line. The catalog in this directory is the single source
20
- of truth (`../_coreMetrics.js` holds only the `MetricsService` tag).
21
- Underscore files (`_buckets.js`, `_processStartMs.js`,
22
- `_asyncExternalWaitCounts.js`) hold module-level mutable/shared state.
@@ -1,17 +0,0 @@
1
- import type { Metric } from "effect";
2
- import type { SmithersMetricType } from "./SmithersMetricType";
3
- import type { SmithersMetricUnit } from "./SmithersMetricUnit";
4
-
5
- export type SmithersMetricDefinition = {
6
- readonly key: string;
7
- readonly metric: Metric.Metric<any, any>;
8
- readonly name: string;
9
- readonly prometheusName: string;
10
- readonly type: SmithersMetricType;
11
- readonly label: string;
12
- readonly unit?: SmithersMetricUnit;
13
- readonly description?: string;
14
- readonly labels?: readonly string[];
15
- readonly boundaries?: readonly number[];
16
- readonly defaultLabels?: readonly Readonly<Record<string, string>>[];
17
- };
@@ -1 +0,0 @@
1
- export type SmithersMetricType = "counter" | "gauge" | "histogram";
@@ -1 +0,0 @@
1
- export type SmithersMetricUnit = "count" | "milliseconds" | "seconds" | "bytes" | "tokens" | "ratio" | "depth";
@@ -1,4 +0,0 @@
1
- export const asyncExternalWaitCounts = {
2
- approval: 0,
3
- event: 0,
4
- };
@@ -1,37 +0,0 @@
1
- import { Metric } from "effect";
2
- export const durationBuckets = Metric.exponentialBoundaries({
3
- start: 100,
4
- factor: 2,
5
- count: 12,
6
- }); // ~100ms to ~200s
7
- export const fastBuckets = Metric.exponentialBoundaries({
8
- start: 1,
9
- factor: 2,
10
- count: 12,
11
- }); // ~1ms to ~2s
12
- export const toolBuckets = Metric.exponentialBoundaries({
13
- start: 10,
14
- factor: 2,
15
- count: 14,
16
- }); // ~10ms to ~80s
17
- export const tokenBuckets = Metric.exponentialBoundaries({
18
- start: 10,
19
- factor: 2,
20
- count: 18,
21
- }); // ~10 to ~1.3M tokens
22
- export const contextWindowBuckets = Metric.boundariesFromIterable([50_000, 100_000, 200_000, 500_000, 1_000_000]);
23
- export const sizeBuckets = Metric.exponentialBoundaries({
24
- start: 100,
25
- factor: 2,
26
- count: 16,
27
- }); // ~100 bytes to ~3.2MB
28
- export const carriedStateSizeBuckets = Metric.exponentialBoundaries({
29
- start: 256,
30
- factor: 2,
31
- count: 17,
32
- }); // ~256 bytes to ~16MB
33
- export const ancestryDepthBuckets = Metric.exponentialBoundaries({
34
- start: 1,
35
- factor: 2,
36
- count: 12,
37
- }); // depth 1 to 2048
@@ -1,11 +0,0 @@
1
- import { Effect, Metric } from "effect";
2
-
3
- /**
4
- * Apply a delta to an Effect 4 gauge, whose native update operation is absolute.
5
- *
6
- * @param {Metric.Gauge<number>} metric
7
- * @param {number} delta
8
- */
9
- export function incrementGauge(metric, delta) {
10
- return Metric.value(metric).pipe(Effect.flatMap((state) => Metric.update(metric, Number(state.value) + delta)));
11
- }
@@ -1 +0,0 @@
1
- export const processStartMs = Date.now();
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const activeNodes = Metric.gauge("smithers.nodes.active");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const activeRuns = Metric.gauge("smithers.runs.active");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const agentActionsTotal = Metric.counter("smithers.agent_actions_total");
@@ -1,3 +0,0 @@
1
- import { Metric } from "effect";
2
- import { durationBuckets } from "./_buckets.js";
3
- export const agentDurationMs = Metric.histogram("smithers.agent_duration_ms", { boundaries: durationBuckets });
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const agentErrorsTotal = Metric.counter("smithers.agent_errors_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const agentEventsTotal = Metric.counter("smithers.agent_events_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const agentInvocationsTotal = Metric.counter("smithers.agent_invocations_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const agentRetriesTotal = Metric.counter("smithers.agent_retries_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const agentSessionsTotal = Metric.counter("smithers.agent_sessions_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const agentTokensTotal = Metric.counter("smithers.agent_tokens_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const alertDeliveriesAttempted = Metric.counter("smithers.alerts.deliveries_attempted");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const alertDeliveriesSuppressed = Metric.counter("smithers.alerts.deliveries_suppressed");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const alertsAcknowledgedTotal = Metric.counter("smithers.alerts.acknowledged_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const alertsActive = Metric.gauge("smithers.alerts.active");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const alertsEscalatedTotal = Metric.counter("smithers.alerts.escalated_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const alertsFiredTotal = Metric.counter("smithers.alerts.fired_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const alertsReopenedTotal = Metric.counter("smithers.alerts.reopened_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const alertsResolvedTotal = Metric.counter("smithers.alerts.resolved_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const alertsSilencedTotal = Metric.counter("smithers.alerts.silenced_total");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const approvalPending = Metric.gauge("smithers.approval.pending");
@@ -1,5 +0,0 @@
1
- import { Metric } from "effect";
2
- import { durationBuckets } from "./_buckets.js";
3
- export const approvalWaitDuration = Metric.histogram("smithers.approval.wait_duration_ms", {
4
- boundaries: durationBuckets,
5
- });
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const approvalsDenied = Metric.counter("smithers.approvals.denied");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const approvalsGranted = Metric.counter("smithers.approvals.granted");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const approvalsRequested = Metric.counter("smithers.approvals.requested");
@@ -1,3 +0,0 @@
1
- import { Metric } from "effect";
2
- import { durationBuckets } from "./_buckets.js";
3
- export const attemptDuration = Metric.histogram("smithers.attempt.duration_ms", { boundaries: durationBuckets });
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const attentionBacklog = Metric.gauge("smithers.attention.backlog");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const cacheHits = Metric.counter("smithers.cache.hits");