@smthrs/observability 0.34.0 → 1.0.0-rc.3

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 +84 -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 +388 -0
  15. package/dist/cjs/JournalLogger.js.map +7 -0
  16. package/dist/cjs/Logger.d.ts +55 -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 +62 -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 +200 -0
  33. package/dist/cjs/Otlp.d.ts.map +1 -0
  34. package/dist/cjs/Otlp.js +235 -0
  35. package/dist/cjs/Otlp.js.map +7 -0
  36. package/dist/cjs/Resource.d.ts +162 -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 +482 -0
  60. package/dist/esm/JournalLogger.js.map +1 -0
  61. package/dist/esm/Logger.d.ts +55 -0
  62. package/dist/esm/Logger.d.ts.map +1 -0
  63. package/dist/esm/Logger.js +60 -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 +62 -0
  74. package/dist/esm/Otel.d.ts.map +1 -0
  75. package/dist/esm/Otel.js +51 -0
  76. package/dist/esm/Otel.js.map +1 -0
  77. package/dist/esm/Otlp.d.ts +200 -0
  78. package/dist/esm/Otlp.d.ts.map +1 -0
  79. package/dist/esm/Otlp.js +350 -0
  80. package/dist/esm/Otlp.js.map +1 -0
  81. package/dist/esm/Resource.d.ts +162 -0
  82. package/dist/esm/Resource.d.ts.map +1 -0
  83. package/dist/esm/Resource.js +237 -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 +162 -0
  94. package/docs/api.md +768 -0
  95. package/docs/concepts/instrumentation-and-export.md +68 -0
  96. package/docs/concepts/layer-map.md +72 -0
  97. package/docs/concepts/validated-acquisition.md +105 -0
  98. package/docs/guides/export-to-a-collector.md +167 -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 +220 -0
  104. package/docs/installation.md +98 -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 +596 -0
  111. package/src/Logger.ts +106 -0
  112. package/src/Metric.ts +88 -0
  113. package/src/NodeOtel.ts +90 -0
  114. package/src/Otel.ts +117 -0
  115. package/src/Otlp.ts +477 -0
  116. package/src/Resource.ts +324 -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
package/src/index.js DELETED
@@ -1,136 +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").SmithersEvent} SmithersEvent */
9
- /** @typedef {import("./SmithersLogFormat.ts").SmithersLogFormat} SmithersLogFormat */
10
- /** @typedef {import("./SmithersMetricDefinition.ts").SmithersMetricDefinition} SmithersMetricDefinition */
11
- /** @typedef {import("./SmithersObservabilityOptions.ts").SmithersObservabilityOptions} SmithersObservabilityOptions */
12
- /** @typedef {import("./SmithersObservabilityService.ts").SmithersObservabilityService} SmithersObservabilityService */
13
-
14
- export { MetricsService } from "./_coreMetrics.js";
15
- export { TracingService, TracingServiceLive } from "./_coreTracing.js";
16
- export { SmithersObservability } from "./SmithersObservability.js";
17
- export { prometheusContentType } from "./prometheusContentType.js";
18
- export { smithersSpanNames } from "./smithersSpanNames.js";
19
- export { getCurrentSmithersTraceSpan } from "./getCurrentSmithersTraceSpan.js";
20
- export { getCurrentSmithersTraceAnnotations } from "./getCurrentSmithersTraceAnnotations.js";
21
- export { makeSmithersSpanAttributes } from "./makeSmithersSpanAttributes.js";
22
- export { annotateSmithersTrace } from "./annotateSmithersTrace.js";
23
- export { withSmithersSpan } from "./withSmithersSpan.js";
24
- export { renderPrometheusMetrics } from "./renderPrometheusMetrics.js";
25
- export { resolveSmithersObservabilityOptions } from "./resolveSmithersObservabilityOptions.js";
26
- export { smithersMetrics } from "./smithersMetrics.js";
27
- export { MetricsServiceLive } from "./MetricsServiceLive.js";
28
- export { createSmithersOtelLayer } from "./createSmithersOtelLayer.js";
29
- export { createSmithersObservabilityLayer } from "./createSmithersObservabilityLayer.js";
30
- export { createSmithersRuntimeLayer } from "./createSmithersRuntimeLayer.js";
31
- export {
32
- rewindTotal,
33
- rewindRollbackTotal,
34
- rewindDurationMs,
35
- rewindFramesDeleted,
36
- rewindSandboxesReverted,
37
- } from "./metrics/index.js";
38
- export {
39
- activeNodes,
40
- activeRuns,
41
- approvalPending,
42
- externalWaitAsyncPending,
43
- approvalsDenied,
44
- approvalsGranted,
45
- approvalsRequested,
46
- approvalWaitDuration,
47
- timerDelayDuration,
48
- timersCancelled,
49
- timersCreated,
50
- timersFired,
51
- timersPending,
52
- attemptDuration,
53
- cacheHits,
54
- cacheMisses,
55
- dbQueryDuration,
56
- dbRetries,
57
- dbTransactionDuration,
58
- dbTransactionRetries,
59
- dbTransactionRollbacks,
60
- errorsTotal,
61
- eventsEmittedTotal,
62
- hotReloadDuration,
63
- hotReloadFailures,
64
- hotReloads,
65
- httpRequestDuration,
66
- httpRequests,
67
- nodeDuration,
68
- nodeRetriesTotal,
69
- nodesFailed,
70
- nodesFinished,
71
- nodesStarted,
72
- processHeapUsedBytes,
73
- processMemoryRssBytes,
74
- processUptimeSeconds,
75
- promptSizeBytes,
76
- responseSizeBytes,
77
- runDuration,
78
- runsCancelledTotal,
79
- runsContinuedTotal,
80
- runsFailedTotal,
81
- runsFinishedTotal,
82
- runsResumedTotal,
83
- runsAncestryDepth,
84
- runsCarriedStateBytes,
85
- sandboxActive,
86
- sandboxBundleSizeBytes,
87
- sandboxCompletedTotal,
88
- sandboxCreatedTotal,
89
- sandboxDurationMs,
90
- sandboxPatchCount,
91
- sandboxTransportDurationMs,
92
- runsTotal,
93
- schedulerConcurrencyUtilization,
94
- schedulerQueueDepth,
95
- schedulerWaitDuration,
96
- tokensCacheReadTotal,
97
- tokensCacheWriteTotal,
98
- tokensContextWindowBucketTotal,
99
- tokensContextWindowPerCall,
100
- tokensInputPerCall,
101
- tokensInputTotal,
102
- tokensOutputPerCall,
103
- tokensOutputTotal,
104
- tokensReasoningTotal,
105
- toolCallErrorsTotal,
106
- toolCallsTotal,
107
- toolDuration,
108
- toolOutputTruncatedTotal,
109
- scorerEventsStarted,
110
- scorerEventsFinished,
111
- scorerEventsFailed,
112
- snapshotsCaptured,
113
- runForksCreated,
114
- replaysStarted,
115
- snapshotDuration,
116
- trackEvent as trackSmithersEvent,
117
- updateProcessMetrics,
118
- vcsDuration,
119
- toPrometheusMetricName,
120
- smithersMetricCatalog,
121
- metricsServiceAdapter,
122
- } from "./metrics/index.js";
123
- export {
124
- correlationContextFiberRef,
125
- correlationContextToLogAnnotations,
126
- CorrelationContextLive,
127
- CorrelationContextService,
128
- getCurrentCorrelationContext,
129
- getCurrentCorrelationContextEffect,
130
- mergeCorrelationContext,
131
- runWithCorrelationContext,
132
- withCorrelationContext,
133
- withCurrentCorrelationContext,
134
- } from "./correlation.js";
135
- export { updateCurrentCorrelationContext } from "./correlation.js";
136
- export { logDebug, logInfo, logWarning, logError, 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,248 +0,0 @@
1
- import { Effect, Logger, LogLevel } from "effect";
2
- import { getCurrentSmithersTraceAnnotations } from "./getCurrentSmithersTraceAnnotations.js";
3
- import {
4
- correlationContextToLogAnnotations,
5
- getCurrentCorrelationContext,
6
- withCurrentCorrelationContext,
7
- } from "./correlation.js";
8
- /**
9
- * @typedef {Record<string, unknown> | undefined} LogAnnotations
10
- */
11
-
12
- /** @type {number} */
13
- const LOG_LEVEL_NONE = 0;
14
- const LOG_LEVEL_DEBUG = 1;
15
- const LOG_LEVEL_INFO = 2;
16
- const LOG_LEVEL_WARNING = 3;
17
- const LOG_LEVEL_ERROR = 4;
18
- const LOG_RUNNER_KEY = Symbol.for("smithers.observability.logRunner");
19
- const defaultLoggerLayer = Logger.layer([Logger.consoleLogFmt]);
20
-
21
- /**
22
- * Resolve the minimum imperative log level. The environment value is an
23
- * injectable parameter (defaulting to `SMITHERS_LOG_LEVEL`) so the mapping is
24
- * testable without re-importing the module; module state still captures the
25
- * env-derived value once at load time.
26
- *
27
- * @param {string | undefined} [env]
28
- * @returns {number}
29
- */
30
- export function resolveMinLevel(env = process.env.SMITHERS_LOG_LEVEL?.toLowerCase()) {
31
- switch (env) {
32
- case "none":
33
- return Infinity;
34
- case "trace":
35
- case "debug":
36
- return LOG_LEVEL_DEBUG;
37
- case "warning":
38
- case "warn":
39
- return LOG_LEVEL_WARNING;
40
- case "error":
41
- return LOG_LEVEL_ERROR;
42
- case "fatal":
43
- return Infinity;
44
- case "all":
45
- return LOG_LEVEL_NONE;
46
- // Default to INFO so INFO/OTLP records flow without SMITHERS_LOG_LEVEL,
47
- // matching resolveSmithersObservabilityOptions' Effect-layer default.
48
- case "info":
49
- default:
50
- return LOG_LEVEL_INFO;
51
- }
52
- }
53
-
54
- const minLevel = resolveMinLevel();
55
-
56
- /**
57
- * @typedef {{
58
- * runFork: (effect: Effect.Effect<void, never, never>) => unknown;
59
- * runPromise: (effect: Effect.Effect<void, never, never>) => Promise<void>;
60
- * }} SmithersLogRunner
61
- */
62
-
63
- /** @returns {{ runner: SmithersLogRunner | null }} */
64
- function getRunnerState() {
65
- const globalState = /** @type {typeof globalThis & { [LOG_RUNNER_KEY]?: { runner: SmithersLogRunner | null } }} */ (
66
- globalThis
67
- );
68
- globalState[LOG_RUNNER_KEY] ??= { runner: null };
69
- return globalState[LOG_RUNNER_KEY];
70
- }
71
-
72
- /** @type {SmithersLogRunner} */
73
- const defaultRunner = {
74
- runFork: (effect) => Effect.runFork(effect.pipe(Effect.provide(defaultLoggerLayer))),
75
- runPromise: (effect) => Effect.runPromise(effect.pipe(Effect.provide(defaultLoggerLayer))),
76
- };
77
-
78
- /** @returns {SmithersLogRunner} */
79
- function getLogRunner() {
80
- return getRunnerState().runner ?? defaultRunner;
81
- }
82
-
83
- /**
84
- * Install the Effect runtime used by fire-and-forget observability logs.
85
- * Returns a restore function so tests and embedded hosts can scope overrides.
86
- *
87
- * @param {SmithersLogRunner | null} runner
88
- * @returns {() => void}
89
- */
90
- export function setSmithersLogRunner(runner) {
91
- const state = getRunnerState();
92
- const previous = state.runner;
93
- state.runner = runner;
94
- return () => {
95
- state.runner = previous;
96
- };
97
- }
98
-
99
- /**
100
- * Map an imperative smithers log level to the Effect log level used when
101
- * running the log program. Exported alongside {@link resolveMinLevel} so the
102
- * level mapping (including the catch-all `LogLevel.All` fallback) can be
103
- * exercised directly with injected level values.
104
- *
105
- * @param {number} level
106
- */
107
- export function toEffectLogLevel(level) {
108
- switch (level) {
109
- case LOG_LEVEL_DEBUG:
110
- return "Debug";
111
- case LOG_LEVEL_INFO:
112
- return "Info";
113
- case LOG_LEVEL_WARNING:
114
- return "Warn";
115
- case LOG_LEVEL_ERROR:
116
- return "Error";
117
- default:
118
- return "All";
119
- }
120
- }
121
-
122
- /**
123
- * @param {Effect.Effect<void, never, never>} effect
124
- * @param {LogAnnotations} [annotations]
125
- * @param {string} [span]
126
- * @returns {Effect.Effect<void, never, never>}
127
- */
128
- function buildLogProgram(effect, annotations, span) {
129
- const correlationAnnotations = correlationContextToLogAnnotations(getCurrentCorrelationContext());
130
- const traceAnnotations = getCurrentSmithersTraceAnnotations();
131
- const mergedAnnotations =
132
- correlationAnnotations || traceAnnotations || annotations
133
- ? {
134
- ...correlationAnnotations,
135
- ...traceAnnotations,
136
- ...annotations,
137
- }
138
- : undefined;
139
- let program = effect;
140
- if (mergedAnnotations) {
141
- program = program.pipe(Effect.annotateLogs(mergedAnnotations));
142
- }
143
- if (span) {
144
- program = program.pipe(Effect.withLogSpan(span));
145
- }
146
- return withCurrentCorrelationContext(program);
147
- }
148
-
149
- /**
150
- * @param {Effect.Effect<void, never, never>} effect
151
- * @param {LogAnnotations} [annotations]
152
- * @param {string} [span]
153
- * @param {number} [level]
154
- */
155
- function emitLog(effect, annotations, span, level = LOG_LEVEL_INFO) {
156
- if (level < minLevel) return;
157
- const program = buildLogProgram(effect, annotations, span);
158
- try {
159
- void getLogRunner().runFork(program);
160
- } catch {
161
- // Logging must never break the caller.
162
- }
163
- }
164
-
165
- /**
166
- * @param {Effect.Effect<void, never, never>} effect
167
- * @param {LogAnnotations} [annotations]
168
- * @param {string} [span]
169
- * @param {number} [level]
170
- * @returns {Promise<void>}
171
- */
172
- async function emitLogAwait(effect, annotations, span, level = LOG_LEVEL_INFO) {
173
- if (level < minLevel) return;
174
- const program = buildLogProgram(effect, annotations, span);
175
- try {
176
- await getLogRunner().runPromise(program);
177
- } catch {
178
- // Logging must never break the caller.
179
- }
180
- }
181
- /**
182
- * @param {string} message
183
- * @param {LogAnnotations} [annotations]
184
- * @param {string} [span]
185
- */
186
- export function logDebug(message, annotations, span) {
187
- emitLog(Effect.logDebug(message), annotations, span, LOG_LEVEL_DEBUG);
188
- }
189
- /**
190
- * @param {string} message
191
- * @param {LogAnnotations} [annotations]
192
- * @param {string} [span]
193
- */
194
- export function logInfo(message, annotations, span) {
195
- emitLog(Effect.logInfo(message), annotations, span, LOG_LEVEL_INFO);
196
- }
197
- /**
198
- * @param {string} message
199
- * @param {LogAnnotations} [annotations]
200
- * @param {string} [span]
201
- */
202
- export function logWarning(message, annotations, span) {
203
- emitLog(Effect.logWarning(message), annotations, span, LOG_LEVEL_WARNING);
204
- }
205
- /**
206
- * @param {string} message
207
- * @param {LogAnnotations} [annotations]
208
- * @param {string} [span]
209
- */
210
- export function logError(message, annotations, span) {
211
- emitLog(Effect.logError(message), annotations, span, LOG_LEVEL_ERROR);
212
- }
213
- /**
214
- * @param {string} message
215
- * @param {LogAnnotations} [annotations]
216
- * @param {string} [span]
217
- * @returns {Promise<void>}
218
- */
219
- export async function logDebugAwait(message, annotations, span) {
220
- await emitLogAwait(Effect.logDebug(message), annotations, span, LOG_LEVEL_DEBUG);
221
- }
222
- /**
223
- * @param {string} message
224
- * @param {LogAnnotations} [annotations]
225
- * @param {string} [span]
226
- * @returns {Promise<void>}
227
- */
228
- export async function logInfoAwait(message, annotations, span) {
229
- await emitLogAwait(Effect.logInfo(message), annotations, span, LOG_LEVEL_INFO);
230
- }
231
- /**
232
- * @param {string} message
233
- * @param {LogAnnotations} [annotations]
234
- * @param {string} [span]
235
- * @returns {Promise<void>}
236
- */
237
- export async function logWarningAwait(message, annotations, span) {
238
- await emitLogAwait(Effect.logWarning(message), annotations, span, LOG_LEVEL_WARNING);
239
- }
240
- /**
241
- * @param {string} message
242
- * @param {LogAnnotations} [annotations]
243
- * @param {string} [span]
244
- * @returns {Promise<void>}
245
- */
246
- export async function logErrorAwait(message, annotations, span) {
247
- await emitLogAwait(Effect.logError(message), annotations, span, LOG_LEVEL_ERROR);
248
- }
@@ -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");
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const cacheMisses = Metric.counter("smithers.cache.misses");
@@ -1,3 +0,0 @@
1
- import { Metric } from "effect";
2
- import { fastBuckets } from "./_buckets.js";
3
- export const dbQueryDuration = Metric.histogram("smithers.db.query_ms", { boundaries: fastBuckets });
@@ -1,2 +0,0 @@
1
- import { Metric } from "effect";
2
- export const dbRetries = Metric.counter("smithers.db.retries");