@marinoscar/platform-api 0.0.0-stage → 0.1.0-next.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 (616) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/LICENSE +21 -0
  3. package/README.md +106 -2
  4. package/dist/core/crypto/encryption-key-startup-check.d.ts +29 -0
  5. package/dist/core/crypto/encryption-key-startup-check.d.ts.map +1 -0
  6. package/dist/core/crypto/encryption-key-startup-check.js +221 -0
  7. package/dist/core/crypto/encryption-key-startup-check.js.map +1 -0
  8. package/dist/core/crypto/secret-cipher.d.ts +151 -0
  9. package/dist/core/crypto/secret-cipher.d.ts.map +1 -0
  10. package/dist/core/crypto/secret-cipher.js +452 -0
  11. package/dist/core/crypto/secret-cipher.js.map +1 -0
  12. package/dist/core/data-access/index.d.ts +6 -0
  13. package/dist/core/data-access/index.d.ts.map +1 -0
  14. package/dist/core/data-access/index.js +19 -0
  15. package/dist/core/data-access/index.js.map +1 -0
  16. package/dist/core/data-access/scoped-access.error.d.ts +35 -0
  17. package/dist/core/data-access/scoped-access.error.d.ts.map +1 -0
  18. package/dist/core/data-access/scoped-access.error.js +43 -0
  19. package/dist/core/data-access/scoped-access.error.js.map +1 -0
  20. package/dist/core/data-access/scoped-client.d.ts +104 -0
  21. package/dist/core/data-access/scoped-client.d.ts.map +1 -0
  22. package/dist/core/data-access/scoped-client.js +270 -0
  23. package/dist/core/data-access/scoped-client.js.map +1 -0
  24. package/dist/core/data-access/types.d.ts +85 -0
  25. package/dist/core/data-access/types.d.ts.map +1 -0
  26. package/dist/core/data-access/types.js +12 -0
  27. package/dist/core/data-access/types.js.map +1 -0
  28. package/dist/core/data-access/user-owned-data.registry.d.ts +60 -0
  29. package/dist/core/data-access/user-owned-data.registry.d.ts.map +1 -0
  30. package/dist/core/data-access/user-owned-data.registry.js +140 -0
  31. package/dist/core/data-access/user-owned-data.registry.js.map +1 -0
  32. package/dist/core/errors/database-seed.exception.d.ts +23 -0
  33. package/dist/core/errors/database-seed.exception.d.ts.map +1 -0
  34. package/dist/core/errors/database-seed.exception.js +49 -0
  35. package/dist/core/errors/database-seed.exception.js.map +1 -0
  36. package/dist/core/errors/error.dto.d.ts +47 -0
  37. package/dist/core/errors/error.dto.d.ts.map +1 -0
  38. package/dist/core/errors/error.dto.js +121 -0
  39. package/dist/core/errors/error.dto.js.map +1 -0
  40. package/dist/core/errors/http-exception.filter.d.ts +63 -0
  41. package/dist/core/errors/http-exception.filter.d.ts.map +1 -0
  42. package/dist/core/errors/http-exception.filter.js +234 -0
  43. package/dist/core/errors/http-exception.filter.js.map +1 -0
  44. package/dist/core/errors/verbatim-error-body.exception.d.ts +46 -0
  45. package/dist/core/errors/verbatim-error-body.exception.d.ts.map +1 -0
  46. package/dist/core/errors/verbatim-error-body.exception.js +135 -0
  47. package/dist/core/errors/verbatim-error-body.exception.js.map +1 -0
  48. package/dist/core/host/index.d.ts +7 -0
  49. package/dist/core/host/index.d.ts.map +1 -0
  50. package/dist/core/host/index.js +14 -0
  51. package/dist/core/host/index.js.map +1 -0
  52. package/dist/core/host/platform-host.d.ts +58 -0
  53. package/dist/core/host/platform-host.d.ts.map +1 -0
  54. package/dist/core/host/platform-host.js +104 -0
  55. package/dist/core/host/platform-host.js.map +1 -0
  56. package/dist/core/host/platform-host.module.d.ts +53 -0
  57. package/dist/core/host/platform-host.module.d.ts.map +1 -0
  58. package/dist/core/host/platform-host.module.js +90 -0
  59. package/dist/core/host/platform-host.module.js.map +1 -0
  60. package/dist/core/host/ports.d.ts +132 -0
  61. package/dist/core/host/ports.d.ts.map +1 -0
  62. package/dist/core/host/ports.js +48 -0
  63. package/dist/core/host/ports.js.map +1 -0
  64. package/dist/core/index.d.ts +15 -0
  65. package/dist/core/index.d.ts.map +1 -0
  66. package/dist/core/index.js +77 -0
  67. package/dist/core/index.js.map +1 -0
  68. package/dist/core/openapi/openapi-tag.registry.d.ts +80 -0
  69. package/dist/core/openapi/openapi-tag.registry.d.ts.map +1 -0
  70. package/dist/core/openapi/openapi-tag.registry.js +72 -0
  71. package/dist/core/openapi/openapi-tag.registry.js.map +1 -0
  72. package/dist/core/principal/index.d.ts +6 -0
  73. package/dist/core/principal/index.d.ts.map +1 -0
  74. package/dist/core/principal/index.js +3 -0
  75. package/dist/core/principal/index.js.map +1 -0
  76. package/dist/core/principal/principal.types.d.ts +222 -0
  77. package/dist/core/principal/principal.types.d.ts.map +1 -0
  78. package/dist/core/principal/principal.types.js +22 -0
  79. package/dist/core/principal/principal.types.js.map +1 -0
  80. package/dist/core/registry/index.d.ts +4 -0
  81. package/dist/core/registry/index.d.ts.map +1 -0
  82. package/dist/core/registry/index.js +19 -0
  83. package/dist/core/registry/index.js.map +1 -0
  84. package/dist/core/registry/registry-freeze.service.d.ts +14 -0
  85. package/dist/core/registry/registry-freeze.service.d.ts.map +1 -0
  86. package/dist/core/registry/registry-freeze.service.js +55 -0
  87. package/dist/core/registry/registry-freeze.service.js.map +1 -0
  88. package/dist/core/registry/registry.d.ts +268 -0
  89. package/dist/core/registry/registry.d.ts.map +1 -0
  90. package/dist/core/registry/registry.js +351 -0
  91. package/dist/core/registry/registry.js.map +1 -0
  92. package/dist/core/registry/testing.d.ts +29 -0
  93. package/dist/core/registry/testing.d.ts.map +1 -0
  94. package/dist/core/registry/testing.js +63 -0
  95. package/dist/core/registry/testing.js.map +1 -0
  96. package/dist/doctor/doctor-check.interface.d.ts +100 -0
  97. package/dist/doctor/doctor-check.interface.d.ts.map +1 -0
  98. package/dist/doctor/doctor-check.interface.js +95 -0
  99. package/dist/doctor/doctor-check.interface.js.map +1 -0
  100. package/dist/doctor/doctor-check.registry.d.ts +37 -0
  101. package/dist/doctor/doctor-check.registry.d.ts.map +1 -0
  102. package/dist/doctor/doctor-check.registry.js +96 -0
  103. package/dist/doctor/doctor-check.registry.js.map +1 -0
  104. package/dist/doctor/doctor.controller.factory.d.ts +29 -0
  105. package/dist/doctor/doctor.controller.factory.d.ts.map +1 -0
  106. package/dist/doctor/doctor.controller.factory.js +121 -0
  107. package/dist/doctor/doctor.controller.factory.js.map +1 -0
  108. package/dist/doctor/doctor.module.d.ts +78 -0
  109. package/dist/doctor/doctor.module.d.ts.map +1 -0
  110. package/dist/doctor/doctor.module.js +158 -0
  111. package/dist/doctor/doctor.module.js.map +1 -0
  112. package/dist/doctor/doctor.options.d.ts +39 -0
  113. package/dist/doctor/doctor.options.d.ts.map +1 -0
  114. package/dist/doctor/doctor.options.js +21 -0
  115. package/dist/doctor/doctor.options.js.map +1 -0
  116. package/dist/doctor/doctor.service.d.ts +80 -0
  117. package/dist/doctor/doctor.service.d.ts.map +1 -0
  118. package/dist/doctor/doctor.service.js +301 -0
  119. package/dist/doctor/doctor.service.js.map +1 -0
  120. package/dist/doctor/dto/doctor-query.dto.d.ts +15 -0
  121. package/dist/doctor/dto/doctor-query.dto.d.ts.map +1 -0
  122. package/dist/doctor/dto/doctor-query.dto.js +16 -0
  123. package/dist/doctor/dto/doctor-query.dto.js.map +1 -0
  124. package/dist/doctor/dto/doctor-report.dto.d.ts +27 -0
  125. package/dist/doctor/dto/doctor-report.dto.d.ts.map +1 -0
  126. package/dist/doctor/dto/doctor-report.dto.js +23 -0
  127. package/dist/doctor/dto/doctor-report.dto.js.map +1 -0
  128. package/dist/doctor/egress/classify-host.d.ts +73 -0
  129. package/dist/doctor/egress/classify-host.d.ts.map +1 -0
  130. package/dist/doctor/egress/classify-host.js +210 -0
  131. package/dist/doctor/egress/classify-host.js.map +1 -0
  132. package/dist/doctor/egress/egress.registry.d.ts +34 -0
  133. package/dist/doctor/egress/egress.registry.d.ts.map +1 -0
  134. package/dist/doctor/egress/egress.registry.js +70 -0
  135. package/dist/doctor/egress/egress.registry.js.map +1 -0
  136. package/dist/doctor/egress/egress.types.d.ts +135 -0
  137. package/dist/doctor/egress/egress.types.d.ts.map +1 -0
  138. package/dist/doctor/egress/egress.types.js +42 -0
  139. package/dist/doctor/egress/egress.types.js.map +1 -0
  140. package/dist/doctor/egress/index.d.ts +6 -0
  141. package/dist/doctor/egress/index.d.ts.map +1 -0
  142. package/dist/doctor/egress/index.js +23 -0
  143. package/dist/doctor/egress/index.js.map +1 -0
  144. package/dist/doctor/egress/network-egress.doctor-check.d.ts +78 -0
  145. package/dist/doctor/egress/network-egress.doctor-check.d.ts.map +1 -0
  146. package/dist/doctor/egress/network-egress.doctor-check.js +226 -0
  147. package/dist/doctor/egress/network-egress.doctor-check.js.map +1 -0
  148. package/dist/doctor/index.d.ts +19 -0
  149. package/dist/doctor/index.d.ts.map +1 -0
  150. package/dist/doctor/index.js +66 -0
  151. package/dist/doctor/index.js.map +1 -0
  152. package/dist/doctor/support-bundle/index.d.ts +12 -0
  153. package/dist/doctor/support-bundle/index.d.ts.map +1 -0
  154. package/dist/doctor/support-bundle/index.js +32 -0
  155. package/dist/doctor/support-bundle/index.js.map +1 -0
  156. package/dist/doctor/support-bundle/redact.d.ts +76 -0
  157. package/dist/doctor/support-bundle/redact.d.ts.map +1 -0
  158. package/dist/doctor/support-bundle/redact.js +236 -0
  159. package/dist/doctor/support-bundle/redact.js.map +1 -0
  160. package/dist/doctor/support-bundle/sections/doctor.section.d.ts +81 -0
  161. package/dist/doctor/support-bundle/sections/doctor.section.d.ts.map +1 -0
  162. package/dist/doctor/support-bundle/sections/doctor.section.js +83 -0
  163. package/dist/doctor/support-bundle/sections/doctor.section.js.map +1 -0
  164. package/dist/doctor/support-bundle/sections/egress.section.d.ts +73 -0
  165. package/dist/doctor/support-bundle/sections/egress.section.d.ts.map +1 -0
  166. package/dist/doctor/support-bundle/sections/egress.section.js +97 -0
  167. package/dist/doctor/support-bundle/sections/egress.section.js.map +1 -0
  168. package/dist/doctor/support-bundle/sections/meta.section.d.ts +39 -0
  169. package/dist/doctor/support-bundle/sections/meta.section.d.ts.map +1 -0
  170. package/dist/doctor/support-bundle/sections/meta.section.js +89 -0
  171. package/dist/doctor/support-bundle/sections/meta.section.js.map +1 -0
  172. package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts +100 -0
  173. package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts.map +1 -0
  174. package/dist/doctor/support-bundle/support-bundle-section.interface.js +59 -0
  175. package/dist/doctor/support-bundle/support-bundle-section.interface.js.map +1 -0
  176. package/dist/doctor/support-bundle/support-bundle.controller.d.ts +57 -0
  177. package/dist/doctor/support-bundle/support-bundle.controller.d.ts.map +1 -0
  178. package/dist/doctor/support-bundle/support-bundle.controller.js +141 -0
  179. package/dist/doctor/support-bundle/support-bundle.controller.js.map +1 -0
  180. package/dist/doctor/support-bundle/support-bundle.options.d.ts +92 -0
  181. package/dist/doctor/support-bundle/support-bundle.options.d.ts.map +1 -0
  182. package/dist/doctor/support-bundle/support-bundle.options.js +100 -0
  183. package/dist/doctor/support-bundle/support-bundle.options.js.map +1 -0
  184. package/dist/doctor/support-bundle/support-bundle.registry.d.ts +38 -0
  185. package/dist/doctor/support-bundle/support-bundle.registry.d.ts.map +1 -0
  186. package/dist/doctor/support-bundle/support-bundle.registry.js +90 -0
  187. package/dist/doctor/support-bundle/support-bundle.registry.js.map +1 -0
  188. package/dist/doctor/support-bundle/support-bundle.service.d.ts +63 -0
  189. package/dist/doctor/support-bundle/support-bundle.service.d.ts.map +1 -0
  190. package/dist/doctor/support-bundle/support-bundle.service.js +244 -0
  191. package/dist/doctor/support-bundle/support-bundle.service.js.map +1 -0
  192. package/dist/index.d.ts +11 -0
  193. package/dist/index.d.ts.map +1 -0
  194. package/dist/index.js +14 -0
  195. package/dist/index.js.map +1 -0
  196. package/dist/otel-core/index.d.ts +9 -0
  197. package/dist/otel-core/index.d.ts.map +1 -0
  198. package/dist/otel-core/index.js +58 -0
  199. package/dist/otel-core/index.js.map +1 -0
  200. package/dist/otel-core/metrics/gauge-provider.d.ts +44 -0
  201. package/dist/otel-core/metrics/gauge-provider.d.ts.map +1 -0
  202. package/dist/otel-core/metrics/gauge-provider.js +37 -0
  203. package/dist/otel-core/metrics/gauge-provider.js.map +1 -0
  204. package/dist/otel-core/metrics/labels.d.ts +79 -0
  205. package/dist/otel-core/metrics/labels.d.ts.map +1 -0
  206. package/dist/otel-core/metrics/labels.js +135 -0
  207. package/dist/otel-core/metrics/labels.js.map +1 -0
  208. package/dist/otel-core/metrics/metric-name.registry.d.ts +130 -0
  209. package/dist/otel-core/metrics/metric-name.registry.d.ts.map +1 -0
  210. package/dist/otel-core/metrics/metric-name.registry.js +134 -0
  211. package/dist/otel-core/metrics/metric-name.registry.js.map +1 -0
  212. package/dist/otel-core/metrics/metrics-host.service.d.ts +163 -0
  213. package/dist/otel-core/metrics/metrics-host.service.d.ts.map +1 -0
  214. package/dist/otel-core/metrics/metrics-host.service.js +344 -0
  215. package/dist/otel-core/metrics/metrics-host.service.js.map +1 -0
  216. package/dist/otel-core/metrics/otel-metrics.module.d.ts +54 -0
  217. package/dist/otel-core/metrics/otel-metrics.module.d.ts.map +1 -0
  218. package/dist/otel-core/metrics/otel-metrics.module.js +83 -0
  219. package/dist/otel-core/metrics/otel-metrics.module.js.map +1 -0
  220. package/dist/otel-core/sdk/index.d.ts +5 -0
  221. package/dist/otel-core/sdk/index.d.ts.map +1 -0
  222. package/dist/otel-core/sdk/index.js +27 -0
  223. package/dist/otel-core/sdk/index.js.map +1 -0
  224. package/dist/otel-core/sdk/initialize-otel.d.ts +126 -0
  225. package/dist/otel-core/sdk/initialize-otel.d.ts.map +1 -0
  226. package/dist/otel-core/sdk/initialize-otel.js +204 -0
  227. package/dist/otel-core/sdk/initialize-otel.js.map +1 -0
  228. package/dist/otel-core/sdk/instance-id.d.ts +29 -0
  229. package/dist/otel-core/sdk/instance-id.d.ts.map +1 -0
  230. package/dist/otel-core/sdk/instance-id.js +65 -0
  231. package/dist/otel-core/sdk/instance-id.js.map +1 -0
  232. package/dist/otel-core/sdk/service-name.d.ts +28 -0
  233. package/dist/otel-core/sdk/service-name.d.ts.map +1 -0
  234. package/dist/otel-core/sdk/service-name.js +63 -0
  235. package/dist/otel-core/sdk/service-name.js.map +1 -0
  236. package/dist/otel-core/sdk/telemetry-gate.d.ts +116 -0
  237. package/dist/otel-core/sdk/telemetry-gate.d.ts.map +1 -0
  238. package/dist/otel-core/sdk/telemetry-gate.js +297 -0
  239. package/dist/otel-core/sdk/telemetry-gate.js.map +1 -0
  240. package/dist/otel-core/spans/request-span-attributes.d.ts +58 -0
  241. package/dist/otel-core/spans/request-span-attributes.d.ts.map +1 -0
  242. package/dist/otel-core/spans/request-span-attributes.js +155 -0
  243. package/dist/otel-core/spans/request-span-attributes.js.map +1 -0
  244. package/dist/otel-core/spans/trace.decorator.d.ts +36 -0
  245. package/dist/otel-core/spans/trace.decorator.d.ts.map +1 -0
  246. package/dist/otel-core/spans/trace.decorator.js +74 -0
  247. package/dist/otel-core/spans/trace.decorator.js.map +1 -0
  248. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts +15 -0
  249. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts.map +1 -0
  250. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js +50 -0
  251. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js.map +1 -0
  252. package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts +14 -0
  253. package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts.map +1 -0
  254. package/dist/telemetry/assistant/telemetry-assistant.controller.js +178 -0
  255. package/dist/telemetry/assistant/telemetry-assistant.controller.js.map +1 -0
  256. package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts +147 -0
  257. package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts.map +1 -0
  258. package/dist/telemetry/assistant/telemetry-assistant.metrics.js +495 -0
  259. package/dist/telemetry/assistant/telemetry-assistant.metrics.js.map +1 -0
  260. package/dist/telemetry/assistant/telemetry-assistant.service.d.ts +216 -0
  261. package/dist/telemetry/assistant/telemetry-assistant.service.d.ts.map +1 -0
  262. package/dist/telemetry/assistant/telemetry-assistant.service.js +1256 -0
  263. package/dist/telemetry/assistant/telemetry-assistant.service.js.map +1 -0
  264. package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts +69 -0
  265. package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts.map +1 -0
  266. package/dist/telemetry/assistant/telemetry-assistant.sql.js +471 -0
  267. package/dist/telemetry/assistant/telemetry-assistant.sql.js.map +1 -0
  268. package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts +15 -0
  269. package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts.map +1 -0
  270. package/dist/telemetry/assistant/telemetry-assistant.sse.js +68 -0
  271. package/dist/telemetry/assistant/telemetry-assistant.sse.js.map +1 -0
  272. package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts +92 -0
  273. package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts.map +1 -0
  274. package/dist/telemetry/connection/dto/telemetry-connection.dto.js +41 -0
  275. package/dist/telemetry/connection/dto/telemetry-connection.dto.js.map +1 -0
  276. package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts +45 -0
  277. package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts.map +1 -0
  278. package/dist/telemetry/connection/telemetry-connection-admin.service.js +303 -0
  279. package/dist/telemetry/connection/telemetry-connection-admin.service.js.map +1 -0
  280. package/dist/telemetry/connection/telemetry-connection-test.service.d.ts +41 -0
  281. package/dist/telemetry/connection/telemetry-connection-test.service.d.ts.map +1 -0
  282. package/dist/telemetry/connection/telemetry-connection-test.service.js +187 -0
  283. package/dist/telemetry/connection/telemetry-connection-test.service.js.map +1 -0
  284. package/dist/telemetry/connection/telemetry-connection.controller.d.ts +14 -0
  285. package/dist/telemetry/connection/telemetry-connection.controller.d.ts.map +1 -0
  286. package/dist/telemetry/connection/telemetry-connection.controller.js +192 -0
  287. package/dist/telemetry/connection/telemetry-connection.controller.js.map +1 -0
  288. package/dist/telemetry/connection/telemetry-connection.schema.d.ts +28 -0
  289. package/dist/telemetry/connection/telemetry-connection.schema.d.ts.map +1 -0
  290. package/dist/telemetry/connection/telemetry-connection.schema.js +106 -0
  291. package/dist/telemetry/connection/telemetry-connection.schema.js.map +1 -0
  292. package/dist/telemetry/connection/telemetry-connection.service.d.ts +197 -0
  293. package/dist/telemetry/connection/telemetry-connection.service.d.ts.map +1 -0
  294. package/dist/telemetry/connection/telemetry-connection.service.js +461 -0
  295. package/dist/telemetry/connection/telemetry-connection.service.js.map +1 -0
  296. package/dist/telemetry/dashboard/sql-literals.d.ts +19 -0
  297. package/dist/telemetry/dashboard/sql-literals.d.ts.map +1 -0
  298. package/dist/telemetry/dashboard/sql-literals.js +75 -0
  299. package/dist/telemetry/dashboard/sql-literals.js.map +1 -0
  300. package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts +14 -0
  301. package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts.map +1 -0
  302. package/dist/telemetry/dashboard/telemetry-dashboard.controller.js +277 -0
  303. package/dist/telemetry/dashboard/telemetry-dashboard.controller.js.map +1 -0
  304. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +112 -0
  305. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -0
  306. package/dist/telemetry/dashboard/telemetry-dashboard.service.js +904 -0
  307. package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -0
  308. package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts +212 -0
  309. package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts.map +1 -0
  310. package/dist/telemetry/dashboard/telemetry-dashboard.sql.js +486 -0
  311. package/dist/telemetry/dashboard/telemetry-dashboard.sql.js.map +1 -0
  312. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +235 -0
  313. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -0
  314. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +269 -0
  315. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -0
  316. package/dist/telemetry/dashboard/verdict-policy.d.ts +51 -0
  317. package/dist/telemetry/dashboard/verdict-policy.d.ts.map +1 -0
  318. package/dist/telemetry/dashboard/verdict-policy.js +77 -0
  319. package/dist/telemetry/dashboard/verdict-policy.js.map +1 -0
  320. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts +21 -0
  321. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts.map +1 -0
  322. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js +59 -0
  323. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js.map +1 -0
  324. package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts +23 -0
  325. package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts.map +1 -0
  326. package/dist/telemetry/doctor/telemetry-connection.doctor-check.js +69 -0
  327. package/dist/telemetry/doctor/telemetry-connection.doctor-check.js.map +1 -0
  328. package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts +33 -0
  329. package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts.map +1 -0
  330. package/dist/telemetry/doctor/telemetry-export.doctor-check.js +105 -0
  331. package/dist/telemetry/doctor/telemetry-export.doctor-check.js.map +1 -0
  332. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts +38 -0
  333. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts.map +1 -0
  334. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js +104 -0
  335. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js.map +1 -0
  336. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts +23 -0
  337. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts.map +1 -0
  338. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js +65 -0
  339. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js.map +1 -0
  340. package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts +23 -0
  341. package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts.map +1 -0
  342. package/dist/telemetry/doctor/telemetry-tables.doctor-check.js +91 -0
  343. package/dist/telemetry/doctor/telemetry-tables.doctor-check.js.map +1 -0
  344. package/dist/telemetry/dto/telemetry-assistant.dto.d.ts +14 -0
  345. package/dist/telemetry/dto/telemetry-assistant.dto.d.ts.map +1 -0
  346. package/dist/telemetry/dto/telemetry-assistant.dto.js +29 -0
  347. package/dist/telemetry/dto/telemetry-assistant.dto.js.map +1 -0
  348. package/dist/telemetry/dto/telemetry-config.dto.d.ts +59 -0
  349. package/dist/telemetry/dto/telemetry-config.dto.d.ts.map +1 -0
  350. package/dist/telemetry/dto/telemetry-config.dto.js +18 -0
  351. package/dist/telemetry/dto/telemetry-config.dto.js.map +1 -0
  352. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +397 -0
  353. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts.map +1 -0
  354. package/dist/telemetry/dto/telemetry-dashboard.dto.js +118 -0
  355. package/dist/telemetry/dto/telemetry-dashboard.dto.js.map +1 -0
  356. package/dist/telemetry/dto/telemetry-query.dto.d.ts +44 -0
  357. package/dist/telemetry/dto/telemetry-query.dto.d.ts.map +1 -0
  358. package/dist/telemetry/dto/telemetry-query.dto.js +42 -0
  359. package/dist/telemetry/dto/telemetry-query.dto.js.map +1 -0
  360. package/dist/telemetry/dto/telemetry-status.dto.d.ts +22 -0
  361. package/dist/telemetry/dto/telemetry-status.dto.d.ts.map +1 -0
  362. package/dist/telemetry/dto/telemetry-status.dto.js +12 -0
  363. package/dist/telemetry/dto/telemetry-status.dto.js.map +1 -0
  364. package/dist/telemetry/export/parquet-writer.loader.d.ts +13 -0
  365. package/dist/telemetry/export/parquet-writer.loader.d.ts.map +1 -0
  366. package/dist/telemetry/export/parquet-writer.loader.js +29 -0
  367. package/dist/telemetry/export/parquet-writer.loader.js.map +1 -0
  368. package/dist/telemetry/export/telemetry-export.service.d.ts +39 -0
  369. package/dist/telemetry/export/telemetry-export.service.d.ts.map +1 -0
  370. package/dist/telemetry/export/telemetry-export.service.js +185 -0
  371. package/dist/telemetry/export/telemetry-export.service.js.map +1 -0
  372. package/dist/telemetry/greptime/greptime-host.d.ts +44 -0
  373. package/dist/telemetry/greptime/greptime-host.d.ts.map +1 -0
  374. package/dist/telemetry/greptime/greptime-host.js +114 -0
  375. package/dist/telemetry/greptime/greptime-host.js.map +1 -0
  376. package/dist/telemetry/greptime/greptime.client.d.ts +171 -0
  377. package/dist/telemetry/greptime/greptime.client.d.ts.map +1 -0
  378. package/dist/telemetry/greptime/greptime.client.js +352 -0
  379. package/dist/telemetry/greptime/greptime.client.js.map +1 -0
  380. package/dist/telemetry/greptime/greptime.errors.d.ts +59 -0
  381. package/dist/telemetry/greptime/greptime.errors.d.ts.map +1 -0
  382. package/dist/telemetry/greptime/greptime.errors.js +100 -0
  383. package/dist/telemetry/greptime/greptime.errors.js.map +1 -0
  384. package/dist/telemetry/handlers/telemetry-retention.handler.d.ts +27 -0
  385. package/dist/telemetry/handlers/telemetry-retention.handler.d.ts.map +1 -0
  386. package/dist/telemetry/handlers/telemetry-retention.handler.js +123 -0
  387. package/dist/telemetry/handlers/telemetry-retention.handler.js.map +1 -0
  388. package/dist/telemetry/index.d.ts +37 -0
  389. package/dist/telemetry/index.d.ts.map +1 -0
  390. package/dist/telemetry/index.js +97 -0
  391. package/dist/telemetry/index.js.map +1 -0
  392. package/dist/telemetry/internal/blank-secret.d.ts +3 -0
  393. package/dist/telemetry/internal/blank-secret.d.ts.map +1 -0
  394. package/dist/telemetry/internal/blank-secret.js +14 -0
  395. package/dist/telemetry/internal/blank-secret.js.map +1 -0
  396. package/dist/telemetry/internal/csv.d.ts +9 -0
  397. package/dist/telemetry/internal/csv.d.ts.map +1 -0
  398. package/dist/telemetry/internal/csv.js +23 -0
  399. package/dist/telemetry/internal/csv.js.map +1 -0
  400. package/dist/telemetry/internal/sse.d.ts +23 -0
  401. package/dist/telemetry/internal/sse.d.ts.map +1 -0
  402. package/dist/telemetry/internal/sse.js +43 -0
  403. package/dist/telemetry/internal/sse.js.map +1 -0
  404. package/dist/telemetry/metrics/groups/database.metric-group.d.ts +7 -0
  405. package/dist/telemetry/metrics/groups/database.metric-group.d.ts.map +1 -0
  406. package/dist/telemetry/metrics/groups/database.metric-group.js +159 -0
  407. package/dist/telemetry/metrics/groups/database.metric-group.js.map +1 -0
  408. package/dist/telemetry/metrics/groups/host.metric-group.d.ts +7 -0
  409. package/dist/telemetry/metrics/groups/host.metric-group.d.ts.map +1 -0
  410. package/dist/telemetry/metrics/groups/host.metric-group.js +146 -0
  411. package/dist/telemetry/metrics/groups/host.metric-group.js.map +1 -0
  412. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts +7 -0
  413. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -0
  414. package/dist/telemetry/metrics/groups/nodes.metric-group.js +159 -0
  415. package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -0
  416. package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts +7 -0
  417. package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts.map +1 -0
  418. package/dist/telemetry/metrics/groups/pipeline.metric-group.js +144 -0
  419. package/dist/telemetry/metrics/groups/pipeline.metric-group.js.map +1 -0
  420. package/dist/telemetry/metrics/groups/queue.metric-group.d.ts +7 -0
  421. package/dist/telemetry/metrics/groups/queue.metric-group.d.ts.map +1 -0
  422. package/dist/telemetry/metrics/groups/queue.metric-group.js +163 -0
  423. package/dist/telemetry/metrics/groups/queue.metric-group.js.map +1 -0
  424. package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts +7 -0
  425. package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts.map +1 -0
  426. package/dist/telemetry/metrics/groups/uptime.metric-group.js +103 -0
  427. package/dist/telemetry/metrics/groups/uptime.metric-group.js.map +1 -0
  428. package/dist/telemetry/metrics/metric-catalog.d.ts +324 -0
  429. package/dist/telemetry/metrics/metric-catalog.d.ts.map +1 -0
  430. package/dist/telemetry/metrics/metric-catalog.helpers.d.ts +30 -0
  431. package/dist/telemetry/metrics/metric-catalog.helpers.d.ts.map +1 -0
  432. package/dist/telemetry/metrics/metric-catalog.helpers.js +37 -0
  433. package/dist/telemetry/metrics/metric-catalog.helpers.js.map +1 -0
  434. package/dist/telemetry/metrics/metric-catalog.js +180 -0
  435. package/dist/telemetry/metrics/metric-catalog.js.map +1 -0
  436. package/dist/telemetry/metrics/metric-group-registry.service.d.ts +59 -0
  437. package/dist/telemetry/metrics/metric-group-registry.service.d.ts.map +1 -0
  438. package/dist/telemetry/metrics/metric-group-registry.service.js +99 -0
  439. package/dist/telemetry/metrics/metric-group-registry.service.js.map +1 -0
  440. package/dist/telemetry/metrics/metric-group.d.ts +113 -0
  441. package/dist/telemetry/metrics/metric-group.d.ts.map +1 -0
  442. package/dist/telemetry/metrics/metric-group.js +647 -0
  443. package/dist/telemetry/metrics/metric-group.js.map +1 -0
  444. package/dist/telemetry/metrics/metric-group.manifest.d.ts +2 -0
  445. package/dist/telemetry/metrics/metric-group.manifest.d.ts.map +1 -0
  446. package/dist/telemetry/metrics/metric-group.manifest.js +30 -0
  447. package/dist/telemetry/metrics/metric-group.manifest.js.map +1 -0
  448. package/dist/telemetry/metrics/metric-group.registry.d.ts +109 -0
  449. package/dist/telemetry/metrics/metric-group.registry.d.ts.map +1 -0
  450. package/dist/telemetry/metrics/metric-group.registry.js +181 -0
  451. package/dist/telemetry/metrics/metric-group.registry.js.map +1 -0
  452. package/dist/telemetry/metrics/metric-sql.d.ts +98 -0
  453. package/dist/telemetry/metrics/metric-sql.d.ts.map +1 -0
  454. package/dist/telemetry/metrics/metric-sql.js +259 -0
  455. package/dist/telemetry/metrics/metric-sql.js.map +1 -0
  456. package/dist/telemetry/metrics/metric-values.d.ts +19 -0
  457. package/dist/telemetry/metrics/metric-values.d.ts.map +1 -0
  458. package/dist/telemetry/metrics/metric-values.js +97 -0
  459. package/dist/telemetry/metrics/metric-values.js.map +1 -0
  460. package/dist/telemetry/metrics/metric-verdict.d.ts +20 -0
  461. package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -0
  462. package/dist/telemetry/metrics/metric-verdict.js +218 -0
  463. package/dist/telemetry/metrics/metric-verdict.js.map +1 -0
  464. package/dist/telemetry/ports.d.ts +575 -0
  465. package/dist/telemetry/ports.d.ts.map +1 -0
  466. package/dist/telemetry/ports.js +78 -0
  467. package/dist/telemetry/ports.js.map +1 -0
  468. package/dist/telemetry/query/sql-guard.d.ts +71 -0
  469. package/dist/telemetry/query/sql-guard.d.ts.map +1 -0
  470. package/dist/telemetry/query/sql-guard.js +258 -0
  471. package/dist/telemetry/query/sql-guard.js.map +1 -0
  472. package/dist/telemetry/query/telemetry-availability.d.ts +11 -0
  473. package/dist/telemetry/query/telemetry-availability.d.ts.map +1 -0
  474. package/dist/telemetry/query/telemetry-availability.js +55 -0
  475. package/dist/telemetry/query/telemetry-availability.js.map +1 -0
  476. package/dist/telemetry/query/telemetry-query.errors.d.ts +48 -0
  477. package/dist/telemetry/query/telemetry-query.errors.d.ts.map +1 -0
  478. package/dist/telemetry/query/telemetry-query.errors.js +100 -0
  479. package/dist/telemetry/query/telemetry-query.errors.js.map +1 -0
  480. package/dist/telemetry/query/telemetry-query.service.d.ts +57 -0
  481. package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -0
  482. package/dist/telemetry/query/telemetry-query.service.js +194 -0
  483. package/dist/telemetry/query/telemetry-query.service.js.map +1 -0
  484. package/dist/telemetry/query/telemetry-schema.service.d.ts +36 -0
  485. package/dist/telemetry/query/telemetry-schema.service.d.ts.map +1 -0
  486. package/dist/telemetry/query/telemetry-schema.service.js +154 -0
  487. package/dist/telemetry/query/telemetry-schema.service.js.map +1 -0
  488. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +29 -0
  489. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts.map +1 -0
  490. package/dist/telemetry/stack/dto/telemetry-stack.dto.js +27 -0
  491. package/dist/telemetry/stack/dto/telemetry-stack.dto.js.map +1 -0
  492. package/dist/telemetry/stack/stack-agent.client.d.ts +76 -0
  493. package/dist/telemetry/stack/stack-agent.client.d.ts.map +1 -0
  494. package/dist/telemetry/stack/stack-agent.client.js +208 -0
  495. package/dist/telemetry/stack/stack-agent.client.js.map +1 -0
  496. package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts +43 -0
  497. package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts.map +1 -0
  498. package/dist/telemetry/stack/telemetry-stack-deploy.handler.js +159 -0
  499. package/dist/telemetry/stack/telemetry-stack-deploy.handler.js.map +1 -0
  500. package/dist/telemetry/stack/telemetry-stack.controller.d.ts +14 -0
  501. package/dist/telemetry/stack/telemetry-stack.controller.d.ts.map +1 -0
  502. package/dist/telemetry/stack/telemetry-stack.controller.js +107 -0
  503. package/dist/telemetry/stack/telemetry-stack.controller.js.map +1 -0
  504. package/dist/telemetry/stack/telemetry-stack.service.d.ts +19 -0
  505. package/dist/telemetry/stack/telemetry-stack.service.d.ts.map +1 -0
  506. package/dist/telemetry/stack/telemetry-stack.service.js +122 -0
  507. package/dist/telemetry/stack/telemetry-stack.service.js.map +1 -0
  508. package/dist/telemetry/tasks/telemetry-retention.task.d.ts +8 -0
  509. package/dist/telemetry/tasks/telemetry-retention.task.d.ts.map +1 -0
  510. package/dist/telemetry/tasks/telemetry-retention.task.js +61 -0
  511. package/dist/telemetry/tasks/telemetry-retention.task.js.map +1 -0
  512. package/dist/telemetry/telemetry-admin.controller.d.ts +14 -0
  513. package/dist/telemetry/telemetry-admin.controller.d.ts.map +1 -0
  514. package/dist/telemetry/telemetry-admin.controller.js +148 -0
  515. package/dist/telemetry/telemetry-admin.controller.js.map +1 -0
  516. package/dist/telemetry/telemetry-config.controller.d.ts +14 -0
  517. package/dist/telemetry/telemetry-config.controller.d.ts.map +1 -0
  518. package/dist/telemetry/telemetry-config.controller.js +73 -0
  519. package/dist/telemetry/telemetry-config.controller.js.map +1 -0
  520. package/dist/telemetry/telemetry-explorer.controller.d.ts +14 -0
  521. package/dist/telemetry/telemetry-explorer.controller.d.ts.map +1 -0
  522. package/dist/telemetry/telemetry-explorer.controller.js +193 -0
  523. package/dist/telemetry/telemetry-explorer.controller.js.map +1 -0
  524. package/dist/telemetry/telemetry-settings.service.d.ts +85 -0
  525. package/dist/telemetry/telemetry-settings.service.d.ts.map +1 -0
  526. package/dist/telemetry/telemetry-settings.service.js +278 -0
  527. package/dist/telemetry/telemetry-settings.service.js.map +1 -0
  528. package/dist/telemetry/telemetry-status.service.d.ts +28 -0
  529. package/dist/telemetry/telemetry-status.service.d.ts.map +1 -0
  530. package/dist/telemetry/telemetry-status.service.js +185 -0
  531. package/dist/telemetry/telemetry-status.service.js.map +1 -0
  532. package/dist/telemetry/telemetry-support-bundle.section.d.ts +163 -0
  533. package/dist/telemetry/telemetry-support-bundle.section.d.ts.map +1 -0
  534. package/dist/telemetry/telemetry-support-bundle.section.js +187 -0
  535. package/dist/telemetry/telemetry-support-bundle.section.js.map +1 -0
  536. package/dist/telemetry/telemetry.module.d.ts +35 -0
  537. package/dist/telemetry/telemetry.module.d.ts.map +1 -0
  538. package/dist/telemetry/telemetry.module.js +210 -0
  539. package/dist/telemetry/telemetry.module.js.map +1 -0
  540. package/dist/telemetry/telemetry.options.d.ts +176 -0
  541. package/dist/telemetry/telemetry.options.d.ts.map +1 -0
  542. package/dist/telemetry/telemetry.options.js +246 -0
  543. package/dist/telemetry/telemetry.options.js.map +1 -0
  544. package/dist/telemetry/telemetry.permissions.d.ts +76 -0
  545. package/dist/telemetry/telemetry.permissions.d.ts.map +1 -0
  546. package/dist/telemetry/telemetry.permissions.js +85 -0
  547. package/dist/telemetry/telemetry.permissions.js.map +1 -0
  548. package/dist/telemetry/telemetry.settings.d.ts +79 -0
  549. package/dist/telemetry/telemetry.settings.d.ts.map +1 -0
  550. package/dist/telemetry/telemetry.settings.js +92 -0
  551. package/dist/telemetry/telemetry.settings.js.map +1 -0
  552. package/dist/telemetry/testing/coach-metric-group.fixture.d.ts +17 -0
  553. package/dist/telemetry/testing/coach-metric-group.fixture.d.ts.map +1 -0
  554. package/dist/telemetry/testing/coach-metric-group.fixture.js +128 -0
  555. package/dist/telemetry/testing/coach-metric-group.fixture.js.map +1 -0
  556. package/dist/telemetry/testing/conformance.d.ts +257 -0
  557. package/dist/telemetry/testing/conformance.d.ts.map +1 -0
  558. package/dist/telemetry/testing/conformance.js +626 -0
  559. package/dist/telemetry/testing/conformance.js.map +1 -0
  560. package/dist/telemetry/testing/index.d.ts +10 -0
  561. package/dist/telemetry/testing/index.d.ts.map +1 -0
  562. package/dist/telemetry/testing/index.js +41 -0
  563. package/dist/telemetry/testing/index.js.map +1 -0
  564. package/dist/telemetry/testing/metric-schema.fixture.d.ts +73 -0
  565. package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -0
  566. package/dist/telemetry/testing/metric-schema.fixture.js +362 -0
  567. package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -0
  568. package/dist/telemetry/testing/stub-ports.d.ts +46 -0
  569. package/dist/telemetry/testing/stub-ports.d.ts.map +1 -0
  570. package/dist/telemetry/testing/stub-ports.js +119 -0
  571. package/dist/telemetry/testing/stub-ports.js.map +1 -0
  572. package/dist/testing/conformance-suite.d.ts +106 -0
  573. package/dist/testing/conformance-suite.d.ts.map +1 -0
  574. package/dist/testing/conformance-suite.js +8 -0
  575. package/dist/testing/conformance-suite.js.map +1 -0
  576. package/dist/testing/conformance-suites.d.ts +14 -0
  577. package/dist/testing/conformance-suites.d.ts.map +1 -0
  578. package/dist/testing/conformance-suites.js +27 -0
  579. package/dist/testing/conformance-suites.js.map +1 -0
  580. package/dist/testing/host/in-memory-audit-sink.d.ts +23 -0
  581. package/dist/testing/host/in-memory-audit-sink.d.ts.map +1 -0
  582. package/dist/testing/host/in-memory-audit-sink.js +30 -0
  583. package/dist/testing/host/in-memory-audit-sink.js.map +1 -0
  584. package/dist/testing/host/in-memory-system-settings-store.d.ts +31 -0
  585. package/dist/testing/host/in-memory-system-settings-store.d.ts.map +1 -0
  586. package/dist/testing/host/in-memory-system-settings-store.js +54 -0
  587. package/dist/testing/host/in-memory-system-settings-store.js.map +1 -0
  588. package/dist/testing/host/index.d.ts +4 -0
  589. package/dist/testing/host/index.d.ts.map +1 -0
  590. package/dist/testing/host/index.js +13 -0
  591. package/dist/testing/host/index.js.map +1 -0
  592. package/dist/testing/host/test-platform-host.d.ts +35 -0
  593. package/dist/testing/host/test-platform-host.d.ts.map +1 -0
  594. package/dist/testing/host/test-platform-host.js +81 -0
  595. package/dist/testing/host/test-platform-host.js.map +1 -0
  596. package/dist/testing/index.d.ts +12 -0
  597. package/dist/testing/index.d.ts.map +1 -0
  598. package/dist/testing/index.js +32 -0
  599. package/dist/testing/index.js.map +1 -0
  600. package/dist/testing/prisma-schema.d.ts +99 -0
  601. package/dist/testing/prisma-schema.d.ts.map +1 -0
  602. package/dist/testing/prisma-schema.js +175 -0
  603. package/dist/testing/prisma-schema.js.map +1 -0
  604. package/dist/testing/run-platform-conformance.d.ts +70 -0
  605. package/dist/testing/run-platform-conformance.d.ts.map +1 -0
  606. package/dist/testing/run-platform-conformance.js +77 -0
  607. package/dist/testing/run-platform-conformance.js.map +1 -0
  608. package/dist/testing/suites/cron-enqueue-only.d.ts +46 -0
  609. package/dist/testing/suites/cron-enqueue-only.d.ts.map +1 -0
  610. package/dist/testing/suites/cron-enqueue-only.js +177 -0
  611. package/dist/testing/suites/cron-enqueue-only.js.map +1 -0
  612. package/dist/testing/suites/user-owned-data.d.ts +86 -0
  613. package/dist/testing/suites/user-owned-data.d.ts.map +1 -0
  614. package/dist/testing/suites/user-owned-data.js +329 -0
  615. package/dist/testing/suites/user-owned-data.js.map +1 -0
  616. package/package.json +129 -4
@@ -0,0 +1,235 @@
1
+ import { VERDICT_LEVELS, type VerdictLevel } from '@marinoscar/platform-contract/telemetry';
2
+ /**
3
+ * A `degraded` and a `critical` bound of one verdict rule.
4
+ *
5
+ * @stability experimental
6
+ */
7
+ export interface VerdictLevelThresholds {
8
+ /** The bound past which the rule reports `degraded`. */
9
+ readonly degraded: number;
10
+ /** The bound past which the rule reports `critical`. */
11
+ readonly critical: number;
12
+ }
13
+ /**
14
+ * The error-log rule: the current window against the previous one.
15
+ *
16
+ * @stability experimental
17
+ */
18
+ export interface VerdictErrorLogThresholds {
19
+ /** Error logs needed in the current window before the ratio rule may fire. */
20
+ readonly minCurrent: number;
21
+ /** Ratio to the previous window, `>=`, for degraded. */
22
+ readonly degradedRatio: number;
23
+ /** Ratio to the previous window, `>=`, for critical. */
24
+ readonly criticalRatio: number;
25
+ }
26
+ /**
27
+ * The unknown-API-route rule (bearer requests only): any is degraded; either
28
+ * bound, `>=`, is critical.
29
+ *
30
+ * @stability experimental
31
+ */
32
+ export interface VerdictUnknownRouteThresholds {
33
+ /** Bearer requests to unknown routes that make the rule critical. */
34
+ readonly criticalBearerRequests: number;
35
+ /** Distinct unknown `METHOD /path` that make the rule critical. */
36
+ readonly criticalDistinctRoutes: number;
37
+ }
38
+ /**
39
+ * The collector rule: any failed point is degraded.
40
+ *
41
+ * @stability experimental
42
+ */
43
+ export interface VerdictCollectorThresholds {
44
+ /** The share of attempted points that failed, %, `>=`, that makes the rule critical. */
45
+ readonly critical: number;
46
+ }
47
+ /**
48
+ * The thresholds of the dashboard's health verdict, as numbers. See
49
+ * {@link DEFAULT_VERDICT_THRESHOLDS} for the shipped values.
50
+ *
51
+ * @stability experimental
52
+ */
53
+ export interface VerdictThresholds {
54
+ /** Requests needed before the 5xx and p95 rules may fire. */
55
+ readonly minRequests: number;
56
+ /** 5xx rate, %, `>`. */
57
+ readonly errorRatePct: VerdictLevelThresholds;
58
+ /** Window p95, ms, `>`. */
59
+ readonly p95Ms: VerdictLevelThresholds;
60
+ /** Error logs against the previous window. */
61
+ readonly errorLogs: VerdictErrorLogThresholds;
62
+ /** Minutes without any trace or log after which the verdict is `no_data`. */
63
+ readonly noDataMinutes: number;
64
+ /** Unknown API routes, bearer requests only. */
65
+ readonly unknownRoutes: VerdictUnknownRouteThresholds;
66
+ /** Worst mountpoint, %, `>=`. */
67
+ readonly diskUtilizationPct: VerdictLevelThresholds;
68
+ /** Worst host, %, `>=`. */
69
+ readonly memoryUtilizationPct: VerdictLevelThresholds;
70
+ /** Backends against `max_connections`, %, worst server, `>=`. */
71
+ readonly dbConnectionsPct: VerdictLevelThresholds;
72
+ /** Oldest due pending job, minutes, worst job type, `>=`. */
73
+ readonly oldestPendingJobMinutes: VerdictLevelThresholds;
74
+ /** Certificate lifetime left, days, soonest URL, `<` (fewer is worse). */
75
+ readonly tlsDaysLeft: VerdictLevelThresholds;
76
+ /** Checks an uptime target must have in the lookback before "every check failed" may be critical. */
77
+ readonly uptimeMinChecksForCritical: number;
78
+ /** Share of attempted exporter points that failed, %, `>=`, for critical (any failure is degraded). */
79
+ readonly collectorFailedPct: VerdictCollectorThresholds;
80
+ /** Age of the last successful backup, hours, `>`. */
81
+ readonly backupAgeHours: VerdictLevelThresholds;
82
+ }
83
+ /**
84
+ * The shipped verdict thresholds (the values of the rules in this file's
85
+ * header). An app overrides any of them with
86
+ * `TelemetryModule.forRoot({ dashboard: { verdictThresholds } })`.
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * const resolved = resolveVerdictThresholds({ noDataMinutes: 10 }); // every other value is the default
91
+ * ```
92
+ *
93
+ * @extensionPoint option
94
+ * @stability stable
95
+ */
96
+ export declare const DEFAULT_VERDICT_THRESHOLDS: VerdictThresholds;
97
+ /**
98
+ * The shipped verdict thresholds, under their pre-#703 name.
99
+ *
100
+ * @deprecated Use {@link DEFAULT_VERDICT_THRESHOLDS}, or inject the resolved
101
+ * thresholds (`TELEMETRY_VERDICT_THRESHOLDS`) to honour an app's override.
102
+ *
103
+ * @stability experimental
104
+ */
105
+ export declare const DASHBOARD_VERDICT_THRESHOLDS: VerdictThresholds;
106
+ export { VERDICT_LEVELS, type VerdictLevel };
107
+ /**
108
+ * The summary's health verdict.
109
+ *
110
+ * @stability stable
111
+ */
112
+ export interface DashboardVerdict {
113
+ /** The worst rule that fired (`no_data` overrides every other rule). */
114
+ level: VerdictLevel;
115
+ /** One line per fired rule: its value, the threshold it crossed and the worst offender. */
116
+ reasons: string[];
117
+ }
118
+ /**
119
+ * The numbers the summary computed, which a {@link VerdictPolicy} judges. An
120
+ * infrastructure input left `undefined` or `null` skips its rule.
121
+ *
122
+ * @stability experimental
123
+ */
124
+ export interface VerdictInput {
125
+ /** The instant the summary was computed for. */
126
+ now: Date;
127
+ /** Latest trace or log timestamp seen (null when none in the lookback). */
128
+ lastDataAt: Date | null;
129
+ /** Server requests in the window. */
130
+ requests: number;
131
+ /** Of which answered 5xx. */
132
+ errors5xx: number;
133
+ /** Window p95, null without requests. */
134
+ p95Ms: number | null;
135
+ /** Error logs in the window. */
136
+ errorLogs: number;
137
+ /** Error logs in the previous window of equal length. */
138
+ previousErrorLogs: number;
139
+ /** `METHOD /path` with the most 5xx, if any. */
140
+ topErrorRoute?: string | null;
141
+ /** `METHOD /path` with the highest p95, if any. */
142
+ slowestRoute?: string | null;
143
+ /** The most frequent error message, if any. */
144
+ topErrorMessage?: string | null;
145
+ /**
146
+ * Requests WITH a bearer to an unknown route (#650): how many, over how
147
+ * many distinct `METHOD /path` (counted from the bounded top list, which is
148
+ * enough for the threshold), and the top one. Undefined/null when the store
149
+ * cannot tell (no `app.route.matched` column yet): the rule is skipped.
150
+ */
151
+ unknownRoutes?: {
152
+ /** Bearer requests to unknown routes. */
153
+ bearerRequests: number;
154
+ /** Distinct unknown `METHOD /path` among them. */
155
+ bearerRoutes: number;
156
+ /** The most requested one. */
157
+ topRoute: string | null;
158
+ } | null;
159
+ /** Highest filesystem utilization (%) and its mountpoint. */
160
+ disk?: {
161
+ /** Utilization, %. */
162
+ utilizationPct: number;
163
+ /** The mountpoint. */
164
+ mountpoint: string | null;
165
+ } | null;
166
+ /** Highest memory utilization (%) and its host. */
167
+ memory?: {
168
+ /** Utilization, %. */
169
+ utilizationPct: number;
170
+ /** The host. */
171
+ host: string | null;
172
+ } | null;
173
+ /** Highest backends / max_connections (%) and its server (`instance`). */
174
+ dbConnections?: {
175
+ /** Backends against `max_connections`, %. */
176
+ utilizationPct: number;
177
+ /** The server. */
178
+ instance: string | null;
179
+ } | null;
180
+ /** Oldest due pending job age (seconds) and its job type. */
181
+ oldestPendingJob?: {
182
+ /** Its age, seconds. */
183
+ ageSeconds: number;
184
+ /** Its job type. */
185
+ jobType: string | null;
186
+ } | null;
187
+ /** Worker nodes: how many are stale, and node-offered job types with pending work but no eligible node. */
188
+ nodes?: {
189
+ /** Nodes that missed heartbeats. */
190
+ stale: number;
191
+ /** Node-offered job types with pending work and no eligible node. */
192
+ noEligibleNodeTypes: readonly string[];
193
+ } | null;
194
+ /** Soonest certificate expiry (days) and its URL. */
195
+ tls?: {
196
+ /** Days until the certificate expires (negative: expired). */
197
+ daysLeft: number;
198
+ /** The URL. */
199
+ url: string | null;
200
+ } | null;
201
+ /** Uptime targets whose latest check failed; `allFailed` when every check in the lookback failed. */
202
+ uptimeFailures?: ReadonlyArray<{
203
+ /** The target URL. */
204
+ url: string;
205
+ /** Whether every check in the lookback failed. */
206
+ allFailed: boolean;
207
+ /** Checks in the lookback. */
208
+ checks: number;
209
+ }> | null;
210
+ /** Collector exporter points over the window: failed and sent, and the exporter with the most failures. */
211
+ collector?: {
212
+ /** Points that failed to export. */
213
+ failed: number;
214
+ /** Points sent. */
215
+ sent: number;
216
+ /** The exporter with the most failures. */
217
+ exporter: string | null;
218
+ } | null;
219
+ /** Hours since the last successful backup. */
220
+ backupAgeHours?: number | null;
221
+ }
222
+ /** Characters of an offender (route or message) a reason line keeps. */
223
+ export declare const VERDICT_OFFENDER_CHARS = 80;
224
+ /**
225
+ * The dashboard's health verdict: the worst rule that fired, with one reason
226
+ * per fired rule. The default {@link VerdictPolicy}'s rule set.
227
+ *
228
+ * @param input - the numbers the summary computed.
229
+ * @param thresholds - the resolved thresholds; defaults to {@link DEFAULT_VERDICT_THRESHOLDS}.
230
+ * @returns the level and the reasons.
231
+ *
232
+ * @stability stable
233
+ */
234
+ export declare function computeVerdict(input: VerdictInput, thresholds?: VerdictThresholds): DashboardVerdict;
235
+ //# sourceMappingURL=telemetry-dashboard.verdict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-dashboard.verdict.d.ts","sourceRoot":"","sources":["../../../src/telemetry/dashboard/telemetry-dashboard.verdict.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // The dashboard's health verdict (issue #577, epic #576)
4
+ // =============================================================================
5
+ //
6
+ // One pure function over numbers the summary already computed. Four rules,
7
+ // each with a VOLUME GUARD so a quiet deployment does not flap red on one
8
+ // failed request:
9
+ //
10
+ // 5xx rate > 2 % degraded, > 5 % critical (>= 20 requests)
11
+ // p95 latency > 1000 ms degraded, > 3000 ms critical (>= 20 requests)
12
+ // error logs >= 3x the previous window degraded,
13
+ // >= 10x critical (>= 10 errors now;
14
+ // previous 0 counts as 1)
15
+ // no data now - latest trace/log > 5 min → no_data, overriding
16
+ // every other rule
17
+ // unknown API any request WITH a bearer to an unknown route (#650)
18
+ // routes degraded; >= 20 such requests or >= 3 distinct
19
+ // METHOD /path critical. No volume guard: one request from
20
+ // our own client to a route this build lacks is already a
21
+ // defect (a deploy skew). Anonymous unknown-route requests
22
+ // (scanners) never fire; the summary tile still counts them.
23
+ // A 404 from a MATCHED route never counts here.
24
+ //
25
+ // The level is the worst rule that fired; `reasons` has one line per fired
26
+ // rule with its value, the threshold it crossed and the worst offender.
27
+ //
28
+ // INFRASTRUCTURE RULES (#601), each evaluated only when its input is present
29
+ // (the summary leaves an input undefined when the metric tables behind it do
30
+ // not exist, or hold no fresh rows). No volume guard: each input is already a
31
+ // level, not a rate over a sample.
32
+ //
33
+ // disk utilization >= 85 % degraded, >= 95 % critical (worst mountpoint)
34
+ // memory utilization >= 90 % degraded, >= 97 % critical (worst host)
35
+ // DB connections >= 80 % degraded, >= 95 % critical of max_connections
36
+ // oldest pending job >= 10 min degraded, >= 30 min critical (worst job type)
37
+ // worker nodes any stale node degraded; a node-offered job type with
38
+ // pending work and no eligible node critical
39
+ // TLS certificate < 14 days degraded, < 7 days critical (soonest URL)
40
+ // uptime check latest check failed degraded; every check in the
41
+ // lookback failed (>= 2 checks) critical
42
+ // collector exports any failed point degraded; >= 10 % of attempted
43
+ // points failed critical
44
+ // last backup > 26 h degraded, > 50 h critical
45
+ // =============================================================================
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.VERDICT_OFFENDER_CHARS = exports.VERDICT_LEVELS = exports.DASHBOARD_VERDICT_THRESHOLDS = exports.DEFAULT_VERDICT_THRESHOLDS = void 0;
48
+ exports.computeVerdict = computeVerdict;
49
+ const telemetry_1 = require("@marinoscar/platform-contract/telemetry");
50
+ Object.defineProperty(exports, "VERDICT_LEVELS", { enumerable: true, get: function () { return telemetry_1.VERDICT_LEVELS; } });
51
+ /**
52
+ * The shipped verdict thresholds (the values of the rules in this file's
53
+ * header). An app overrides any of them with
54
+ * `TelemetryModule.forRoot({ dashboard: { verdictThresholds } })`.
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * const resolved = resolveVerdictThresholds({ noDataMinutes: 10 }); // every other value is the default
59
+ * ```
60
+ *
61
+ * @extensionPoint option
62
+ * @stability stable
63
+ */
64
+ exports.DEFAULT_VERDICT_THRESHOLDS = {
65
+ /** Requests needed before the 5xx and p95 rules may fire. */
66
+ minRequests: 20,
67
+ errorRatePct: { degraded: 2, critical: 5 },
68
+ p95Ms: { degraded: 1000, critical: 3000 },
69
+ errorLogs: {
70
+ /** Error logs needed in the current window before the ratio rule may fire. */
71
+ minCurrent: 10,
72
+ degradedRatio: 3,
73
+ criticalRatio: 10,
74
+ },
75
+ /** Minutes without any trace or log after which the verdict is `no_data`. */
76
+ noDataMinutes: 5,
77
+ /**
78
+ * Unknown API routes (#650), bearer requests only. Any is degraded; either
79
+ * bound below (`>=`) is critical.
80
+ */
81
+ unknownRoutes: { criticalBearerRequests: 20, criticalDistinctRoutes: 3 },
82
+ // ---- infrastructure rules (#601) ----
83
+ /** Worst mountpoint, `>=`. */
84
+ diskUtilizationPct: { degraded: 85, critical: 95 },
85
+ /** Worst host, `>=`. */
86
+ memoryUtilizationPct: { degraded: 90, critical: 97 },
87
+ /** Backends against `max_connections`, worst server, `>=`. */
88
+ dbConnectionsPct: { degraded: 80, critical: 95 },
89
+ /** Oldest due pending job, worst job type, `>=`. */
90
+ oldestPendingJobMinutes: { degraded: 10, critical: 30 },
91
+ /** Certificate lifetime left, soonest URL, `<`. */
92
+ tlsDaysLeft: { degraded: 14, critical: 7 },
93
+ /** Checks an uptime target must have in the lookback before "every check failed" may be critical. */
94
+ uptimeMinChecksForCritical: 2,
95
+ /** Share of attempted exporter points that failed, `>=`, for critical (any failure is degraded). */
96
+ collectorFailedPct: { critical: 10 },
97
+ /** Age of the last successful backup, `>`. */
98
+ backupAgeHours: { degraded: 26, critical: 50 },
99
+ };
100
+ /**
101
+ * The shipped verdict thresholds, under their pre-#703 name.
102
+ *
103
+ * @deprecated Use {@link DEFAULT_VERDICT_THRESHOLDS}, or inject the resolved
104
+ * thresholds (`TELEMETRY_VERDICT_THRESHOLDS`) to honour an app's override.
105
+ *
106
+ * @stability experimental
107
+ */
108
+ exports.DASHBOARD_VERDICT_THRESHOLDS = exports.DEFAULT_VERDICT_THRESHOLDS;
109
+ const RANK = { healthy: 0, degraded: 1, critical: 2, no_data: 3 };
110
+ /** Characters of an offender (route or message) a reason line keeps. */
111
+ exports.VERDICT_OFFENDER_CHARS = 80;
112
+ /**
113
+ * The dashboard's health verdict: the worst rule that fired, with one reason
114
+ * per fired rule. The default {@link VerdictPolicy}'s rule set.
115
+ *
116
+ * @param input - the numbers the summary computed.
117
+ * @param thresholds - the resolved thresholds; defaults to {@link DEFAULT_VERDICT_THRESHOLDS}.
118
+ * @returns the level and the reasons.
119
+ *
120
+ * @stability stable
121
+ */
122
+ function computeVerdict(input, thresholds = exports.DEFAULT_VERDICT_THRESHOLDS) {
123
+ const t = thresholds;
124
+ // No data overrides everything: the other rules would be judging silence.
125
+ const staleMs = input.lastDataAt ? input.now.getTime() - input.lastDataAt.getTime() : Number.POSITIVE_INFINITY;
126
+ if (staleMs > t.noDataMinutes * 60_000) {
127
+ return {
128
+ level: 'no_data',
129
+ reasons: [
130
+ input.lastDataAt
131
+ ? `No telemetry received for ${Math.floor(staleMs / 60_000)} min`
132
+ : 'No telemetry received recently',
133
+ ],
134
+ };
135
+ }
136
+ let level = 'healthy';
137
+ const reasons = [];
138
+ const fire = (fired, reason) => {
139
+ if (RANK[fired] > RANK[level])
140
+ level = fired;
141
+ reasons.push(reason);
142
+ };
143
+ if (input.requests >= t.minRequests) {
144
+ const ratePct = (input.errors5xx / input.requests) * 100;
145
+ const at = ratePct > t.errorRatePct.critical ? 'critical' : ratePct > t.errorRatePct.degraded ? 'degraded' : null;
146
+ if (at) {
147
+ fire(at, `5xx rate ${formatNumber(ratePct)}% (> ${t.errorRatePct[at]}%)${offender('top', input.topErrorRoute)}`);
148
+ }
149
+ if (input.p95Ms !== null) {
150
+ const p95 = input.p95Ms;
151
+ const at95 = p95 > t.p95Ms.critical ? 'critical' : p95 > t.p95Ms.degraded ? 'degraded' : null;
152
+ if (at95) {
153
+ fire(at95, `p95 latency ${formatNumber(p95)} ms (> ${t.p95Ms[at95]} ms)${offender('slowest', input.slowestRoute)}`);
154
+ }
155
+ }
156
+ }
157
+ if (input.errorLogs >= t.errorLogs.minCurrent) {
158
+ const ratio = input.errorLogs / Math.max(input.previousErrorLogs, 1);
159
+ const at = ratio >= t.errorLogs.criticalRatio ? 'critical' : ratio >= t.errorLogs.degradedRatio ? 'degraded' : null;
160
+ if (at) {
161
+ const threshold = at === 'critical' ? t.errorLogs.criticalRatio : t.errorLogs.degradedRatio;
162
+ fire(at, `Error logs ${input.errorLogs} vs ${input.previousErrorLogs} in the previous window ` +
163
+ `(${formatNumber(ratio)}× ≥ ${threshold}×)${offender('top', input.topErrorMessage)}`);
164
+ }
165
+ }
166
+ if (input.unknownRoutes && input.unknownRoutes.bearerRequests > 0) {
167
+ const { bearerRequests, bearerRoutes, topRoute } = input.unknownRoutes;
168
+ const critical = bearerRequests >= t.unknownRoutes.criticalBearerRequests ||
169
+ bearerRoutes >= t.unknownRoutes.criticalDistinctRoutes;
170
+ fire(critical ? 'critical' : 'degraded', `${bearerRequests} ${bearerRequests === 1 ? 'request' : 'requests'} to unknown API routes` +
171
+ (bearerRoutes > 1 ? ` across ${bearerRoutes} routes` : '') +
172
+ (topRoute ? ` (${shorten(topRoute)})` : ''));
173
+ }
174
+ infrastructureRules(input, fire, t);
175
+ return { level, reasons };
176
+ }
177
+ /** `>=` thresholds: the level reached, or null. */
178
+ function atLeast(value, levels) {
179
+ return value >= levels.critical ? 'critical' : value >= levels.degraded ? 'degraded' : null;
180
+ }
181
+ /** The infrastructure rules (#601). Each runs only when its input is present. */
182
+ function infrastructureRules(input, fire, t) {
183
+ if (input.disk) {
184
+ const at = atLeast(input.disk.utilizationPct, t.diskUtilizationPct);
185
+ if (at) {
186
+ fire(at, `Disk ${formatNumber(input.disk.utilizationPct)}% full (≥ ${t.diskUtilizationPct[at]}%)` +
187
+ offender('mountpoint', input.disk.mountpoint));
188
+ }
189
+ }
190
+ if (input.memory) {
191
+ const at = atLeast(input.memory.utilizationPct, t.memoryUtilizationPct);
192
+ if (at) {
193
+ fire(at, `Memory ${formatNumber(input.memory.utilizationPct)}% used (≥ ${t.memoryUtilizationPct[at]}%)` +
194
+ offender('host', input.memory.host));
195
+ }
196
+ }
197
+ if (input.dbConnections) {
198
+ const at = atLeast(input.dbConnections.utilizationPct, t.dbConnectionsPct);
199
+ if (at) {
200
+ fire(at, `Database connections at ${formatNumber(input.dbConnections.utilizationPct)}% of max ` +
201
+ `(≥ ${t.dbConnectionsPct[at]}%)${offender('server', input.dbConnections.instance)}`);
202
+ }
203
+ }
204
+ if (input.oldestPendingJob) {
205
+ const minutes = input.oldestPendingJob.ageSeconds / 60;
206
+ const at = atLeast(minutes, t.oldestPendingJobMinutes);
207
+ if (at) {
208
+ fire(at, `Oldest pending job waiting ${formatNumber(minutes)} min (≥ ${t.oldestPendingJobMinutes[at]} min)` +
209
+ offender('type', input.oldestPendingJob.jobType));
210
+ }
211
+ }
212
+ if (input.nodes) {
213
+ const stuck = input.nodes.noEligibleNodeTypes;
214
+ if (stuck.length > 0) {
215
+ fire('critical', `${stuck.length} job type(s) have pending work and no eligible worker node` +
216
+ offender('type', [...stuck].sort().join(', ')));
217
+ }
218
+ if (input.nodes.stale > 0) {
219
+ fire('degraded', `${input.nodes.stale} worker node(s) stale (missed heartbeats)`);
220
+ }
221
+ }
222
+ if (input.tls) {
223
+ const days = input.tls.daysLeft;
224
+ const at = days < t.tlsDaysLeft.critical ? 'critical' : days < t.tlsDaysLeft.degraded ? 'degraded' : null;
225
+ if (at) {
226
+ fire(at, (days < 0
227
+ ? `TLS certificate expired ${formatNumber(-days)} days ago`
228
+ : `TLS certificate expires in ${formatNumber(days)} days`) +
229
+ ` (< ${t.tlsDaysLeft[at]} days)${offender('url', input.tls.url)}`);
230
+ }
231
+ }
232
+ if (input.uptimeFailures && input.uptimeFailures.length > 0) {
233
+ const failures = [...input.uptimeFailures].sort((a, b) => a.url.localeCompare(b.url));
234
+ const down = failures.filter((f) => f.allFailed && f.checks >= t.uptimeMinChecksForCritical);
235
+ const worst = down[0] ?? failures[0];
236
+ fire(down.length > 0 ? 'critical' : 'degraded', down.length > 0
237
+ ? `Uptime check failing for every check in the lookback (${down.length} URL(s))${offender('url', worst.url)}`
238
+ : `Uptime check failed on its latest run (${failures.length} URL(s))${offender('url', worst.url)}`);
239
+ }
240
+ if (input.collector && input.collector.failed > 0) {
241
+ const attempted = input.collector.failed + input.collector.sent;
242
+ const pct = attempted > 0 ? (input.collector.failed / attempted) * 100 : 100;
243
+ const at = pct >= t.collectorFailedPct.critical ? 'critical' : 'degraded';
244
+ fire(at, `Collector failed to export ${formatNumber(input.collector.failed)} points (${formatNumber(pct)}% of attempted` +
245
+ `${at === 'critical' ? `, ≥ ${t.collectorFailedPct.critical}%` : ''})${offender('exporter', input.collector.exporter)}`);
246
+ }
247
+ if (input.backupAgeHours !== undefined && input.backupAgeHours !== null) {
248
+ const hours = input.backupAgeHours;
249
+ const at = hours > t.backupAgeHours.critical ? 'critical' : hours > t.backupAgeHours.degraded ? 'degraded' : null;
250
+ if (at)
251
+ fire(at, `Last successful backup ${formatNumber(hours)} h ago (> ${t.backupAgeHours[at]} h)`);
252
+ }
253
+ }
254
+ function offender(label, value) {
255
+ if (!value)
256
+ return '';
257
+ return ` — ${label}: ${shorten(value)}`;
258
+ }
259
+ /** One line, at most `VERDICT_OFFENDER_CHARS`. */
260
+ function shorten(value) {
261
+ const oneLine = value.replace(/\s+/g, ' ').trim();
262
+ return oneLine.length > exports.VERDICT_OFFENDER_CHARS ? `${oneLine.slice(0, exports.VERDICT_OFFENDER_CHARS - 1)}…` : oneLine;
263
+ }
264
+ /** One decimal, without a trailing `.0`. */
265
+ function formatNumber(value) {
266
+ const rounded = Math.round(value * 10) / 10;
267
+ return Number.isInteger(rounded) ? String(rounded) : rounded.toFixed(1);
268
+ }
269
+ //# sourceMappingURL=telemetry-dashboard.verdict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-dashboard.verdict.js","sourceRoot":"","sources":["../../../src/telemetry/dashboard/telemetry-dashboard.verdict.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { type DashboardVerdict, type VerdictInput, type VerdictThresholds } from './telemetry-dashboard.verdict';
2
+ /**
3
+ * Computes the dashboard summary's health verdict.
4
+ *
5
+ * @stability experimental
6
+ */
7
+ export interface VerdictPolicy {
8
+ /**
9
+ * The verdict for one summary.
10
+ *
11
+ * @param input - the numbers the summary computed.
12
+ * @param thresholds - the resolved thresholds (`TELEMETRY_VERDICT_THRESHOLDS`).
13
+ * @returns the level and one reason per fired rule.
14
+ */
15
+ compute(input: VerdictInput, thresholds: VerdictThresholds): DashboardVerdict;
16
+ }
17
+ /**
18
+ * Injection token of the {@link VerdictPolicy} the dashboard uses. Bound by
19
+ * `TelemetryModule.forRoot()` to {@link DefaultVerdictPolicy}, or to the
20
+ * app's `dashboard.verdictPolicy`.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const moduleRef = await Test.createTestingModule({ imports: [AppModule] })
25
+ * .overrideProvider(VERDICT_POLICY)
26
+ * .useValue({ compute: () => ({ level: 'critical', reasons: ['test'] }) })
27
+ * .compile();
28
+ * ```
29
+ *
30
+ * @extensionPoint token
31
+ * @stability experimental
32
+ */
33
+ export declare const VERDICT_POLICY: unique symbol;
34
+ /**
35
+ * The platform's verdict rules (`computeVerdict`). Always provided by the
36
+ * telemetry module, so an app policy can inject it and delegate.
37
+ *
38
+ * @stability experimental
39
+ */
40
+ export declare class DefaultVerdictPolicy implements VerdictPolicy {
41
+ /**
42
+ * The platform rules: no data, 5xx rate, p95, error logs, unknown routes and
43
+ * the infrastructure rules.
44
+ *
45
+ * @param input - the numbers the summary computed.
46
+ * @param thresholds - the resolved thresholds.
47
+ * @returns the level and one reason per fired rule.
48
+ */
49
+ compute(input: VerdictInput, thresholds: VerdictThresholds): DashboardVerdict;
50
+ }
51
+ //# sourceMappingURL=verdict-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdict-policy.d.ts","sourceRoot":"","sources":["../../../src/telemetry/dashboard/verdict-policy.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEjI;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;CAC/E;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,MAAoE,CAAC;AAEzG;;;;;GAKG;AACH,qBACa,oBAAqB,YAAW,aAAa;IACxD;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,GAAG,gBAAgB;CAG9E"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // VERDICT_POLICY: the dashboard's health verdict as a seam (issue #703,
4
+ // Extension Contract rung 3)
5
+ // =============================================================================
6
+ //
7
+ // `TelemetryDashboardService` asks the policy bound to `VERDICT_POLICY` for
8
+ // the summary's verdict, with the resolved thresholds. The default is
9
+ // `DefaultVerdictPolicy`, which is exactly `computeVerdict`. An app that adds
10
+ // a metric group with a rule of its own binds its own policy and DELEGATES to
11
+ // the default for every platform rule:
12
+ //
13
+ // @Injectable()
14
+ // export class AppVerdictPolicy implements VerdictPolicy {
15
+ // constructor(private readonly platform: DefaultVerdictPolicy) {}
16
+ // compute(input: VerdictInput, thresholds: VerdictThresholds): DashboardVerdict {
17
+ // const verdict = this.platform.compute(input, thresholds);
18
+ // // ...add the app's own rule, never weaken a platform one
19
+ // return verdict;
20
+ // }
21
+ // }
22
+ //
23
+ // TelemetryModule.forRoot({ ..., dashboard: { verdictPolicy: { useClass: AppVerdictPolicy } } })
24
+ //
25
+ // and a test swaps it with `.overrideProvider(VERDICT_POLICY).useValue(...)`.
26
+ // =============================================================================
27
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
28
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
31
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
32
+ };
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.DefaultVerdictPolicy = exports.VERDICT_POLICY = void 0;
35
+ const common_1 = require("@nestjs/common");
36
+ const telemetry_dashboard_verdict_1 = require("./telemetry-dashboard.verdict");
37
+ /**
38
+ * Injection token of the {@link VerdictPolicy} the dashboard uses. Bound by
39
+ * `TelemetryModule.forRoot()` to {@link DefaultVerdictPolicy}, or to the
40
+ * app's `dashboard.verdictPolicy`.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * const moduleRef = await Test.createTestingModule({ imports: [AppModule] })
45
+ * .overrideProvider(VERDICT_POLICY)
46
+ * .useValue({ compute: () => ({ level: 'critical', reasons: ['test'] }) })
47
+ * .compile();
48
+ * ```
49
+ *
50
+ * @extensionPoint token
51
+ * @stability experimental
52
+ */
53
+ exports.VERDICT_POLICY = Symbol.for('@marinoscar/platform/telemetry/VERDICT_POLICY');
54
+ /**
55
+ * The platform's verdict rules (`computeVerdict`). Always provided by the
56
+ * telemetry module, so an app policy can inject it and delegate.
57
+ *
58
+ * @stability experimental
59
+ */
60
+ let DefaultVerdictPolicy = class DefaultVerdictPolicy {
61
+ /**
62
+ * The platform rules: no data, 5xx rate, p95, error logs, unknown routes and
63
+ * the infrastructure rules.
64
+ *
65
+ * @param input - the numbers the summary computed.
66
+ * @param thresholds - the resolved thresholds.
67
+ * @returns the level and one reason per fired rule.
68
+ */
69
+ compute(input, thresholds) {
70
+ return (0, telemetry_dashboard_verdict_1.computeVerdict)(input, thresholds);
71
+ }
72
+ };
73
+ exports.DefaultVerdictPolicy = DefaultVerdictPolicy;
74
+ exports.DefaultVerdictPolicy = DefaultVerdictPolicy = __decorate([
75
+ (0, common_1.Injectable)()
76
+ ], DefaultVerdictPolicy);
77
+ //# sourceMappingURL=verdict-policy.js.map