@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
@@ -1,453 +0,0 @@
1
- {
2
- "uid": "smithers-overview",
3
- "title": "Smithers Overview",
4
- "tags": ["smithers", "ai", "orchestration"],
5
- "timezone": "browser",
6
- "schemaVersion": 39,
7
- "version": 1,
8
- "refresh": "10s",
9
- "time": { "from": "now-1h", "to": "now" },
10
- "editable": true,
11
- "panels": [
12
- {
13
- "type": "row",
14
- "title": "Overview",
15
- "collapsed": false,
16
- "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 },
17
- "id": 1
18
- },
19
- {
20
- "type": "stat",
21
- "title": "Active Runs",
22
- "id": 2,
23
- "gridPos": { "h": 4, "w": 4, "x": 0, "y": 1 },
24
- "datasource": { "type": "prometheus", "uid": "prometheus" },
25
- "targets": [{ "expr": "smithers_smithers_runs_active", "refId": "A" }],
26
- "fieldConfig": {
27
- "defaults": {
28
- "thresholds": {
29
- "mode": "absolute",
30
- "steps": [
31
- { "color": "green", "value": null },
32
- { "color": "yellow", "value": 5 },
33
- { "color": "red", "value": 10 }
34
- ]
35
- },
36
- "color": { "mode": "thresholds" }
37
- }
38
- },
39
- "options": {
40
- "reduceOptions": { "calcs": ["lastNotNull"] },
41
- "colorMode": "background",
42
- "graphMode": "area"
43
- }
44
- },
45
- {
46
- "type": "stat",
47
- "title": "Total Runs",
48
- "id": 3,
49
- "gridPos": { "h": 4, "w": 4, "x": 4, "y": 1 },
50
- "datasource": { "type": "prometheus", "uid": "prometheus" },
51
- "targets": [{ "expr": "smithers_smithers_runs_total", "refId": "A" }],
52
- "fieldConfig": { "defaults": { "color": { "mode": "fixed", "fixedColor": "blue" } } },
53
- "options": {
54
- "reduceOptions": { "calcs": ["lastNotNull"] },
55
- "colorMode": "value",
56
- "graphMode": "area"
57
- }
58
- },
59
- {
60
- "type": "stat",
61
- "title": "Active Nodes",
62
- "id": 4,
63
- "gridPos": { "h": 4, "w": 4, "x": 8, "y": 1 },
64
- "datasource": { "type": "prometheus", "uid": "prometheus" },
65
- "targets": [{ "expr": "smithers_smithers_nodes_active", "refId": "A" }],
66
- "fieldConfig": {
67
- "defaults": {
68
- "thresholds": {
69
- "mode": "absolute",
70
- "steps": [
71
- { "color": "green", "value": null },
72
- { "color": "yellow", "value": 10 },
73
- { "color": "red", "value": 20 }
74
- ]
75
- },
76
- "color": { "mode": "thresholds" }
77
- }
78
- },
79
- "options": {
80
- "reduceOptions": { "calcs": ["lastNotNull"] },
81
- "colorMode": "background",
82
- "graphMode": "area"
83
- }
84
- },
85
- {
86
- "type": "stat",
87
- "title": "Node Success Rate",
88
- "id": 5,
89
- "gridPos": { "h": 4, "w": 4, "x": 12, "y": 1 },
90
- "datasource": { "type": "prometheus", "uid": "prometheus" },
91
- "targets": [{
92
- "expr": "(smithers_smithers_nodes_finished / (smithers_smithers_nodes_finished + smithers_smithers_nodes_failed > 0)) * 100 or vector(100)",
93
- "refId": "A"
94
- }],
95
- "fieldConfig": {
96
- "defaults": {
97
- "unit": "percent",
98
- "thresholds": {
99
- "mode": "absolute",
100
- "steps": [
101
- { "color": "red", "value": null },
102
- { "color": "yellow", "value": 90 },
103
- { "color": "green", "value": 99 }
104
- ]
105
- },
106
- "color": { "mode": "thresholds" },
107
- "min": 0,
108
- "max": 100
109
- }
110
- },
111
- "options": {
112
- "reduceOptions": { "calcs": ["lastNotNull"] },
113
- "colorMode": "background",
114
- "graphMode": "none"
115
- }
116
- },
117
- {
118
- "type": "stat",
119
- "title": "Cache Hit Rate",
120
- "id": 6,
121
- "gridPos": { "h": 4, "w": 4, "x": 16, "y": 1 },
122
- "datasource": { "type": "prometheus", "uid": "prometheus" },
123
- "targets": [{
124
- "expr": "(smithers_smithers_cache_hits / (smithers_smithers_cache_hits + smithers_smithers_cache_misses > 0)) * 100 or vector(0)",
125
- "refId": "A"
126
- }],
127
- "fieldConfig": {
128
- "defaults": {
129
- "unit": "percent",
130
- "thresholds": {
131
- "mode": "absolute",
132
- "steps": [
133
- { "color": "red", "value": null },
134
- { "color": "yellow", "value": 30 },
135
- { "color": "green", "value": 70 }
136
- ]
137
- },
138
- "color": { "mode": "thresholds" },
139
- "min": 0,
140
- "max": 100
141
- }
142
- },
143
- "options": {
144
- "reduceOptions": { "calcs": ["lastNotNull"] },
145
- "colorMode": "background",
146
- "graphMode": "none"
147
- }
148
- },
149
- {
150
- "type": "stat",
151
- "title": "DB Retries",
152
- "id": 7,
153
- "gridPos": { "h": 4, "w": 4, "x": 20, "y": 1 },
154
- "datasource": { "type": "prometheus", "uid": "prometheus" },
155
- "targets": [{ "expr": "smithers_smithers_db_retries", "refId": "A" }],
156
- "fieldConfig": {
157
- "defaults": {
158
- "thresholds": {
159
- "mode": "absolute",
160
- "steps": [
161
- { "color": "green", "value": null },
162
- { "color": "yellow", "value": 5 },
163
- { "color": "red", "value": 20 }
164
- ]
165
- },
166
- "color": { "mode": "thresholds" }
167
- }
168
- },
169
- "options": {
170
- "reduceOptions": { "calcs": ["lastNotNull"] },
171
- "colorMode": "value",
172
- "graphMode": "area"
173
- }
174
- },
175
-
176
- {
177
- "type": "row",
178
- "title": "Runs & Nodes",
179
- "collapsed": false,
180
- "gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 },
181
- "id": 10
182
- },
183
- {
184
- "type": "timeseries",
185
- "title": "Node Throughput",
186
- "id": 11,
187
- "gridPos": { "h": 8, "w": 12, "x": 0, "y": 6 },
188
- "datasource": { "type": "prometheus", "uid": "prometheus" },
189
- "targets": [
190
- { "expr": "rate(smithers_smithers_nodes_started[5m])", "legendFormat": "Started", "refId": "A" },
191
- { "expr": "rate(smithers_smithers_nodes_finished[5m])", "legendFormat": "Finished", "refId": "B" },
192
- { "expr": "rate(smithers_smithers_nodes_failed[5m])", "legendFormat": "Failed", "refId": "C" }
193
- ],
194
- "fieldConfig": {
195
- "defaults": {
196
- "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, "gradientMode": "scheme" },
197
- "color": { "mode": "palette-classic" },
198
- "unit": "ops"
199
- }
200
- },
201
- "options": {
202
- "tooltip": { "mode": "multi", "sort": "desc" },
203
- "legend": { "displayMode": "list", "placement": "bottom", "calcs": ["mean", "max"] }
204
- }
205
- },
206
- {
207
- "type": "heatmap",
208
- "title": "Node Duration",
209
- "id": 12,
210
- "gridPos": { "h": 8, "w": 12, "x": 12, "y": 6 },
211
- "datasource": { "type": "prometheus", "uid": "prometheus" },
212
- "targets": [{
213
- "expr": "sum(increase(smithers_smithers_node_duration_ms_bucket[5m])) by (le)",
214
- "legendFormat": "{{le}}",
215
- "refId": "A",
216
- "format": "heatmap"
217
- }],
218
- "options": {
219
- "calculate": false,
220
- "yAxis": { "unit": "ms" },
221
- "color": { "mode": "scheme", "scheme": "Oranges", "steps": 64 },
222
- "cellGap": 1
223
- }
224
- },
225
-
226
- {
227
- "type": "row",
228
- "title": "Tools",
229
- "collapsed": false,
230
- "gridPos": { "h": 1, "w": 24, "x": 0, "y": 14 },
231
- "id": 20
232
- },
233
- {
234
- "type": "timeseries",
235
- "title": "Tool Call Rate",
236
- "id": 21,
237
- "gridPos": { "h": 8, "w": 12, "x": 0, "y": 15 },
238
- "datasource": { "type": "prometheus", "uid": "prometheus" },
239
- "targets": [{
240
- "expr": "rate(smithers_smithers_tool_calls_total[5m])",
241
- "legendFormat": "Tool Calls / sec",
242
- "refId": "A"
243
- }],
244
- "fieldConfig": {
245
- "defaults": {
246
- "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10 },
247
- "color": { "mode": "fixed", "fixedColor": "purple" },
248
- "unit": "ops"
249
- }
250
- },
251
- "options": {
252
- "tooltip": { "mode": "single" },
253
- "legend": { "displayMode": "list", "placement": "bottom" }
254
- }
255
- },
256
- {
257
- "type": "heatmap",
258
- "title": "Tool Duration",
259
- "id": 22,
260
- "gridPos": { "h": 8, "w": 12, "x": 12, "y": 15 },
261
- "datasource": { "type": "prometheus", "uid": "prometheus" },
262
- "targets": [{
263
- "expr": "sum(increase(smithers_smithers_tool_duration_ms_bucket[5m])) by (le)",
264
- "legendFormat": "{{le}}",
265
- "refId": "A",
266
- "format": "heatmap"
267
- }],
268
- "options": {
269
- "calculate": false,
270
- "yAxis": { "unit": "ms" },
271
- "color": { "mode": "scheme", "scheme": "Blues", "steps": 64 },
272
- "cellGap": 1
273
- }
274
- },
275
-
276
- {
277
- "type": "row",
278
- "title": "Infrastructure",
279
- "collapsed": false,
280
- "gridPos": { "h": 1, "w": 24, "x": 0, "y": 23 },
281
- "id": 30
282
- },
283
- {
284
- "type": "timeseries",
285
- "title": "HTTP Request Latency",
286
- "id": 31,
287
- "gridPos": { "h": 8, "w": 8, "x": 0, "y": 24 },
288
- "datasource": { "type": "prometheus", "uid": "prometheus" },
289
- "targets": [
290
- {
291
- "expr": "histogram_quantile(0.50, sum(rate(smithers_smithers_http_request_duration_ms_bucket[5m])) by (le))",
292
- "legendFormat": "p50",
293
- "refId": "A"
294
- },
295
- {
296
- "expr": "histogram_quantile(0.95, sum(rate(smithers_smithers_http_request_duration_ms_bucket[5m])) by (le))",
297
- "legendFormat": "p95",
298
- "refId": "B"
299
- },
300
- {
301
- "expr": "histogram_quantile(0.99, sum(rate(smithers_smithers_http_request_duration_ms_bucket[5m])) by (le))",
302
- "legendFormat": "p99",
303
- "refId": "C"
304
- }
305
- ],
306
- "fieldConfig": {
307
- "defaults": {
308
- "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 5 },
309
- "color": { "mode": "palette-classic" },
310
- "unit": "ms"
311
- }
312
- },
313
- "options": {
314
- "tooltip": { "mode": "multi", "sort": "desc" },
315
- "legend": { "displayMode": "list", "placement": "bottom" }
316
- }
317
- },
318
- {
319
- "type": "heatmap",
320
- "title": "DB Query Duration",
321
- "id": 32,
322
- "gridPos": { "h": 8, "w": 8, "x": 8, "y": 24 },
323
- "datasource": { "type": "prometheus", "uid": "prometheus" },
324
- "targets": [{
325
- "expr": "sum(increase(smithers_smithers_db_query_ms_bucket[5m])) by (le)",
326
- "legendFormat": "{{le}}",
327
- "refId": "A",
328
- "format": "heatmap"
329
- }],
330
- "options": {
331
- "calculate": false,
332
- "yAxis": { "unit": "ms" },
333
- "color": { "mode": "scheme", "scheme": "Greens", "steps": 64 },
334
- "cellGap": 1
335
- }
336
- },
337
- {
338
- "type": "timeseries",
339
- "title": "VCS & Hot Reload",
340
- "id": 33,
341
- "gridPos": { "h": 8, "w": 8, "x": 16, "y": 24 },
342
- "datasource": { "type": "prometheus", "uid": "prometheus" },
343
- "targets": [
344
- {
345
- "expr": "rate(smithers_smithers_hot_reloads[5m])",
346
- "legendFormat": "Hot Reloads / sec",
347
- "refId": "A"
348
- },
349
- {
350
- "expr": "rate(smithers_smithers_hot_reload_failures[5m])",
351
- "legendFormat": "Reload Failures / sec",
352
- "refId": "B"
353
- },
354
- {
355
- "expr": "histogram_quantile(0.95, sum(rate(smithers_smithers_vcs_duration_ms_bucket[5m])) by (le))",
356
- "legendFormat": "VCS p95 (ms)",
357
- "refId": "C"
358
- }
359
- ],
360
- "fieldConfig": {
361
- "defaults": {
362
- "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10 },
363
- "color": { "mode": "palette-classic" }
364
- }
365
- },
366
- "options": {
367
- "tooltip": { "mode": "multi", "sort": "desc" },
368
- "legend": { "displayMode": "list", "placement": "bottom" }
369
- }
370
- },
371
-
372
- {
373
- "type": "row",
374
- "title": "Approvals",
375
- "collapsed": false,
376
- "gridPos": { "h": 1, "w": 24, "x": 0, "y": 32 },
377
- "id": 40
378
- },
379
- {
380
- "type": "timeseries",
381
- "title": "Approval Flow",
382
- "id": 41,
383
- "gridPos": { "h": 8, "w": 12, "x": 0, "y": 33 },
384
- "datasource": { "type": "prometheus", "uid": "prometheus" },
385
- "targets": [
386
- { "expr": "rate(smithers_smithers_approvals_requested[5m])", "legendFormat": "Requested", "refId": "A" },
387
- { "expr": "rate(smithers_smithers_approvals_granted[5m])", "legendFormat": "Granted", "refId": "B" },
388
- { "expr": "rate(smithers_smithers_approvals_denied[5m])", "legendFormat": "Denied", "refId": "C" }
389
- ],
390
- "fieldConfig": {
391
- "defaults": {
392
- "custom": { "drawStyle": "bars", "lineWidth": 1, "fillOpacity": 50 },
393
- "color": { "mode": "palette-classic" },
394
- "unit": "ops"
395
- }
396
- },
397
- "options": {
398
- "tooltip": { "mode": "multi" },
399
- "legend": { "displayMode": "list", "placement": "bottom" }
400
- }
401
- },
402
- {
403
- "type": "timeseries",
404
- "title": "HTTP Request Rate",
405
- "id": 42,
406
- "gridPos": { "h": 8, "w": 12, "x": 12, "y": 33 },
407
- "datasource": { "type": "prometheus", "uid": "prometheus" },
408
- "targets": [{
409
- "expr": "rate(smithers_smithers_http_requests[5m])",
410
- "legendFormat": "Requests / sec",
411
- "refId": "A"
412
- }],
413
- "fieldConfig": {
414
- "defaults": {
415
- "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 15, "gradientMode": "scheme" },
416
- "color": { "mode": "fixed", "fixedColor": "green" },
417
- "unit": "reqps"
418
- }
419
- },
420
- "options": {
421
- "tooltip": { "mode": "single" },
422
- "legend": { "displayMode": "list", "placement": "bottom" }
423
- }
424
- },
425
-
426
- {
427
- "type": "row",
428
- "title": "Traces",
429
- "collapsed": true,
430
- "gridPos": { "h": 1, "w": 24, "x": 0, "y": 41 },
431
- "id": 50,
432
- "panels": [
433
- {
434
- "type": "traces",
435
- "title": "Recent Traces",
436
- "id": 51,
437
- "gridPos": { "h": 12, "w": 24, "x": 0, "y": 42 },
438
- "datasource": { "type": "tempo", "uid": "tempo" },
439
- "targets": [{
440
- "datasource": { "type": "tempo", "uid": "tempo" },
441
- "queryType": "traceqlSearch",
442
- "limit": 20,
443
- "tableType": "traces",
444
- "filters": [
445
- { "id": "service-name", "tag": "service.name", "operator": "=", "value": ["smithers"], "scope": "resource" }
446
- ],
447
- "refId": "A"
448
- }]
449
- }
450
- ]
451
- }
452
- ]
453
- }
@@ -1,12 +0,0 @@
1
- apiVersion: 1
2
-
3
- providers:
4
- - name: default
5
- orgId: 1
6
- folder: ""
7
- type: file
8
- disableDeletion: false
9
- updateIntervalSeconds: 30
10
- allowUiUpdates: true
11
- options:
12
- path: /var/lib/grafana/dashboards
@@ -1,49 +0,0 @@
1
- apiVersion: 1
2
-
3
- datasources:
4
- - name: Prometheus
5
- type: prometheus
6
- uid: prometheus
7
- access: proxy
8
- url: http://prometheus:9090
9
- isDefault: true
10
- editable: false
11
- jsonData:
12
- httpMethod: POST
13
- exemplarTraceIdDestinations:
14
- - name: traceID
15
- datasourceUid: tempo
16
-
17
- - name: Loki
18
- type: loki
19
- uid: loki
20
- access: proxy
21
- url: http://loki:3100
22
- editable: false
23
- jsonData:
24
- maxLines: 1000
25
-
26
- - name: Tempo
27
- type: tempo
28
- uid: tempo
29
- access: proxy
30
- url: http://tempo:3200
31
- editable: false
32
- jsonData:
33
- tracesToLogs:
34
- datasourceUid: loki
35
- tags: ["service.name"]
36
- mappedTags:
37
- - key: service.name
38
- value: service.name
39
- mapTagNamesEnabled: false
40
- spanStartTimeShift: "-1h"
41
- spanEndTimeShift: "1h"
42
- filterByTraceID: false
43
- filterBySpanID: false
44
- tracesToMetrics:
45
- datasourceUid: prometheus
46
- spanStartTimeShift: "-1h"
47
- spanEndTimeShift: "1h"
48
- nodeGraph:
49
- enabled: true
@@ -1,35 +0,0 @@
1
- auth_enabled: false
2
-
3
- server:
4
- http_listen_port: 3100
5
-
6
- common:
7
- instance_addr: 127.0.0.1
8
- path_prefix: /loki
9
- storage:
10
- filesystem:
11
- chunks_directory: /loki/chunks
12
- rules_directory: /loki/rules
13
- replication_factor: 1
14
- ring:
15
- kvstore:
16
- store: inmemory
17
-
18
- schema_config:
19
- configs:
20
- - from: 2020-10-24
21
- store: tsdb
22
- object_store: filesystem
23
- schema: v13
24
- index:
25
- prefix: index_
26
- period: 24h
27
-
28
- limits_config:
29
- allow_structured_metadata: true
30
-
31
- ruler:
32
- alertmanager_url: http://localhost:9093
33
-
34
- analytics:
35
- reporting_enabled: false
@@ -1,38 +0,0 @@
1
- receivers:
2
- otlp:
3
- protocols:
4
- grpc:
5
- endpoint: "0.0.0.0:4317"
6
- http:
7
- endpoint: "0.0.0.0:4318"
8
-
9
- exporters:
10
- prometheus:
11
- endpoint: "0.0.0.0:8889"
12
- namespace: smithers
13
- otlp_grpc/tempo:
14
- endpoint: "tempo:4317"
15
- tls:
16
- insecure: true
17
- otlp_http/loki:
18
- endpoint: "http://loki:3100/otlp"
19
-
20
- processors:
21
- batch:
22
- timeout: 5s
23
- send_batch_size: 1024
24
-
25
- service:
26
- pipelines:
27
- metrics:
28
- receivers: [otlp]
29
- processors: [batch]
30
- exporters: [prometheus]
31
- traces:
32
- receivers: [otlp]
33
- processors: [batch]
34
- exporters: [otlp_grpc/tempo]
35
- logs:
36
- receivers: [otlp]
37
- processors: [batch]
38
- exporters: [otlp_http/loki]
@@ -1,8 +0,0 @@
1
- global:
2
- scrape_interval: 15s
3
- evaluation_interval: 15s
4
-
5
- scrape_configs:
6
- - job_name: "otel-collector"
7
- static_configs:
8
- - targets: ["otel-collector:8889"]
package/src/MetricName.ts DELETED
@@ -1 +0,0 @@
1
- export type MetricName = string;
@@ -1,9 +0,0 @@
1
- import { MetricsService } from "./_coreMetrics.js";
2
- import { Effect, Layer } from "effect";
3
- import { metricsServiceAdapter } from "./metrics/index.js";
4
- import { renderPrometheusMetrics } from "./renderPrometheusMetrics.js";
5
- /** @type {Layer.Layer<MetricsService, never, never>} */
6
- export const MetricsServiceLive = Layer.succeed(MetricsService, {
7
- ...metricsServiceAdapter,
8
- renderPrometheus: () => Effect.sync(renderPrometheusMetrics),
9
- });
package/src/README.md DELETED
@@ -1,28 +0,0 @@
1
- # @smthrs/observability — src
2
-
3
- The concrete observability implementation: Effect-based metrics, logging, and
4
- tracing services, OTLP layer wiring (`createSmithersObservabilityLayer`,
5
- `createSmithersOtelLayer`, `createSmithersRuntimeLayer`), the agent-trace
6
- pipeline (`detectAgentFamily`, `detectCaptureMode`, `_traceEventNormalizers`,
7
- `_traceRedaction`, the `*ToOtelLogRecord` builders, `_sessionFileResolvers`),
8
- and Prometheus text rendering.
9
-
10
- Conventions: one export per file, with type-only `.ts` sidecars next to the
11
- `.js` implementations. `package.json` exposes a `./*` wildcard onto `src/`, so
12
- EVERY file here is an importable public subpath — `packages/engine` imports the
13
- underscore modules directly (e.g. `observability/_traceEventNormalizers`). Do
14
- not rename, move, or delete files. `_core*` modules hold shared implementations
15
- behind the root shim files that `index.js` re-exports. The correlation context
16
- is dual-tracked (AsyncLocalStorage for imperative reads, FiberRef for Effect
17
- code) under `_coreCorrelation/`.
18
-
19
- Entry points: `index.js` (main export), `metrics/index.js` (the `./metrics`
20
- subpath), `createSmithersObservabilityLayer.js` (layer composition), and
21
- `logging.js` (fire-and-forget logs with a pluggable runtime via
22
- `setSmithersLogRunner`).
23
-
24
- Gotchas: `index.d.ts`, `metrics/index.d.ts`, and the hash-suffixed `*-*.d.ts`
25
- chunks are build artifacts of `tsup --dts-only` (the build script `rm`s them
26
- first) — never edit them. `correlation.js`'s `updateCurrentCorrelationContext`
27
- is a deliberately mutating legacy shim, distinct from the Effect version in
28
- `_coreCorrelation/`.
@@ -1,12 +0,0 @@
1
- import type { LogLevel } from "effect";
2
- import type { SmithersLogFormat } from "./SmithersLogFormat";
3
-
4
- export type ResolvedSmithersObservabilityOptions = {
5
- readonly enabled: boolean;
6
- readonly endpoint: string;
7
- readonly headers: Record<string, string> | undefined;
8
- readonly serviceName: string;
9
- readonly logFormat: SmithersLogFormat;
10
- readonly logLevel: LogLevel.LogLevel;
11
- readonly installLogger: boolean;
12
- };