@oneuptime/common 12.0.2 → 12.0.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 (228) hide show
  1. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +14 -0
  2. package/Models/DatabaseModels/Index.ts +2 -0
  3. package/Models/DatabaseModels/LogDropFilter.ts +9 -20
  4. package/Models/DatabaseModels/StatusPageMonitorRule.ts +911 -0
  5. package/Models/DatabaseModels/StatusPageResource.ts +73 -0
  6. package/Models/DatabaseModels/TraceDropFilter.ts +9 -20
  7. package/Server/API/BaseAPI.ts +13 -2
  8. package/Server/API/DashboardAPI.ts +39 -0
  9. package/Server/EnvironmentConfig.ts +31 -1
  10. package/Server/Infrastructure/GlobalCache.ts +115 -0
  11. package/Server/Infrastructure/Postgres/DataSourceOptions.ts +16 -0
  12. package/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts +123 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  14. package/Server/Services/AlertStateTimelineService.ts +20 -0
  15. package/Server/Services/CephClusterService.ts +26 -86
  16. package/Server/Services/CloudResourceService.ts +23 -83
  17. package/Server/Services/DatabaseService.ts +111 -0
  18. package/Server/Services/DockerHostService.ts +19 -79
  19. package/Server/Services/DockerSwarmClusterService.ts +27 -88
  20. package/Server/Services/HostService.ts +46 -99
  21. package/Server/Services/IncidentStateTimelineService.ts +20 -0
  22. package/Server/Services/Index.ts +2 -0
  23. package/Server/Services/IoTFleetService.ts +19 -79
  24. package/Server/Services/KubernetesClusterService.ts +17 -78
  25. package/Server/Services/LabelService.ts +57 -10
  26. package/Server/Services/MetricTypeService.ts +84 -0
  27. package/Server/Services/MonitorService.ts +89 -14
  28. package/Server/Services/MonitorStatusTimelineService.ts +29 -0
  29. package/Server/Services/MonitorTemplateService.ts +65 -0
  30. package/Server/Services/PodmanHostService.ts +19 -79
  31. package/Server/Services/ProxmoxClusterService.ts +23 -83
  32. package/Server/Services/RumApplicationService.ts +19 -80
  33. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +21 -0
  34. package/Server/Services/ServerlessFunctionService.ts +24 -85
  35. package/Server/Services/ServiceService.ts +299 -73
  36. package/Server/Services/StatusPageMonitorRuleEngineService.ts +752 -0
  37. package/Server/Services/StatusPageMonitorRuleService.ts +471 -0
  38. package/Server/Services/TelemetryEntityRelationshipService.ts +1 -0
  39. package/Server/Services/TelemetryEntityService.ts +1 -0
  40. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +170 -39
  41. package/Server/Utils/Monitor/MonitorResource.ts +63 -36
  42. package/Server/Utils/Monitor/MonitorStatusTimeline.ts +36 -0
  43. package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +148 -127
  44. package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +434 -0
  45. package/Server/Utils/SingleFlight.ts +83 -0
  46. package/Server/Utils/StatusPage/MonitorRulePatternValidator.ts +46 -0
  47. package/Server/Utils/Telemetry/EntityRegistry.ts +107 -26
  48. package/Server/Utils/Telemetry/ResourceHeartbeat.ts +314 -0
  49. package/Server/Utils/Telemetry/Telemetry.ts +351 -122
  50. package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
  51. package/Tests/Models/DatabaseModels/ColumnTransformerInvariants.test.ts +306 -0
  52. package/Tests/Models/DatabaseModels/NumberColumnDeserialization.test.ts +333 -0
  53. package/Tests/Models/DatabaseModels/StatusPageMonitorRuleModel.test.ts +190 -0
  54. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +26 -0
  55. package/Tests/Server/Infrastructure/GlobalCache.test.ts +226 -0
  56. package/Tests/Server/Infrastructure/PostgresLockTimeoutOptions.test.ts +181 -0
  57. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlocked.test.ts +342 -0
  58. package/Tests/Server/Services/DropFilterSaveValidation.test.ts +245 -0
  59. package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +163 -15
  60. package/Tests/Server/Services/MetricTypeAttachServices.test.ts +222 -0
  61. package/Tests/Server/Services/MissingReferenceWriteGuard.test.ts +614 -0
  62. package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +23 -0
  63. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +305 -56
  64. package/Tests/Server/Services/ServiceUpdateLastSeenSplitGates.test.ts +705 -0
  65. package/Tests/Server/Services/StatusPageMonitorRuleEngineService.test.ts +1719 -0
  66. package/Tests/Server/Services/StatusPageMonitorRuleHooks.test.ts +1212 -0
  67. package/Tests/Server/Services/StatusPageMonitorRuleMonitorCreateHook.test.ts +228 -0
  68. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +267 -0
  69. package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +260 -13
  70. package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +302 -0
  71. package/Tests/Server/Utils/MetricTypeIndexConvergence.test.ts +598 -0
  72. package/Tests/Server/Utils/Monitor/MonitorStatusTimelineUnusableStatus.test.ts +154 -0
  73. package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +638 -92
  74. package/Tests/Server/Utils/Monitor/MonitorStepsReferenceExtractor.test.ts +724 -0
  75. package/Tests/Server/Utils/SingleFlight.test.ts +221 -0
  76. package/Tests/Types/Dashboard/NetworkDashboardTemplate.test.ts +793 -0
  77. package/Tests/Types/Database/BigIntColumnTransformer.test.ts +147 -0
  78. package/Tests/Types/Database/DatabasePropertyTransformer.test.ts +140 -0
  79. package/Tests/Types/Database/NumericColumnValue.test.ts +127 -0
  80. package/Tests/Types/Decimal.test.ts +37 -0
  81. package/Tests/Types/Monitor/SnmpVersionParsing.test.ts +152 -0
  82. package/Tests/Types/Port.test.ts +38 -0
  83. package/Tests/UI/Components/LogsHistogram.test.tsx +276 -0
  84. package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +489 -0
  85. package/Tests/UI/Components/UseLogsHistogram.test.tsx +500 -0
  86. package/Tests/Utils/Dashboard/Components/DashboardComponentsUtil.test.ts +120 -0
  87. package/Tests/Utils/Dashboard/DashboardNetworkMapComponent.test.ts +327 -0
  88. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  89. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  90. package/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts +40 -0
  91. package/Types/Dashboard/DashboardTemplates.ts +397 -0
  92. package/Types/Database/BigIntColumnTransformer.ts +74 -0
  93. package/Types/Database/DatabaseProperty.ts +26 -0
  94. package/Types/Database/NumericColumnValue.ts +128 -0
  95. package/Types/Decimal.ts +16 -4
  96. package/Types/Permission.ts +48 -0
  97. package/Types/Port.ts +16 -4
  98. package/UI/Components/LogsViewer/useLiveLogsRefresh.ts +86 -0
  99. package/UI/Components/LogsViewer/useLogsHistogram.ts +113 -0
  100. package/Utils/Dashboard/Components/DashboardNetworkMapComponent.ts +136 -0
  101. package/Utils/Dashboard/Components/Index.ts +7 -0
  102. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +12 -0
  103. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  104. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  105. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  106. package/build/dist/Models/DatabaseModels/LogDropFilter.js +9 -20
  107. package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
  108. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +925 -0
  109. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -0
  110. package/build/dist/Models/DatabaseModels/StatusPageResource.js +72 -0
  111. package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
  112. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +9 -20
  113. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
  114. package/build/dist/Server/API/BaseAPI.js +11 -1
  115. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  116. package/build/dist/Server/API/DashboardAPI.js +39 -0
  117. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  118. package/build/dist/Server/EnvironmentConfig.js +27 -1
  119. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  120. package/build/dist/Server/Infrastructure/GlobalCache.js +91 -0
  121. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  122. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +5 -3
  123. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
  124. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js +48 -0
  125. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js.map +1 -0
  126. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  127. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  128. package/build/dist/Server/Services/AlertStateTimelineService.js +19 -0
  129. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  130. package/build/dist/Server/Services/CephClusterService.js +26 -76
  131. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  132. package/build/dist/Server/Services/CloudResourceService.js +23 -73
  133. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  134. package/build/dist/Server/Services/DatabaseService.js +86 -0
  135. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  136. package/build/dist/Server/Services/DockerHostService.js +19 -69
  137. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  138. package/build/dist/Server/Services/DockerSwarmClusterService.js +27 -78
  139. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  140. package/build/dist/Server/Services/HostService.js +58 -102
  141. package/build/dist/Server/Services/HostService.js.map +1 -1
  142. package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
  143. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  144. package/build/dist/Server/Services/Index.js +2 -0
  145. package/build/dist/Server/Services/Index.js.map +1 -1
  146. package/build/dist/Server/Services/IoTFleetService.js +19 -69
  147. package/build/dist/Server/Services/IoTFleetService.js.map +1 -1
  148. package/build/dist/Server/Services/KubernetesClusterService.js +17 -68
  149. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  150. package/build/dist/Server/Services/LabelService.js +42 -7
  151. package/build/dist/Server/Services/LabelService.js.map +1 -1
  152. package/build/dist/Server/Services/MetricTypeService.js +74 -0
  153. package/build/dist/Server/Services/MetricTypeService.js.map +1 -1
  154. package/build/dist/Server/Services/MonitorService.js +81 -9
  155. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  156. package/build/dist/Server/Services/MonitorStatusTimelineService.js +28 -0
  157. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  158. package/build/dist/Server/Services/MonitorTemplateService.js +60 -0
  159. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  160. package/build/dist/Server/Services/PodmanHostService.js +19 -69
  161. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  162. package/build/dist/Server/Services/ProxmoxClusterService.js +23 -73
  163. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  164. package/build/dist/Server/Services/RumApplicationService.js +19 -70
  165. package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
  166. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +20 -0
  167. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  168. package/build/dist/Server/Services/ServerlessFunctionService.js +24 -75
  169. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
  170. package/build/dist/Server/Services/ServiceService.js +236 -61
  171. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  172. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +603 -0
  173. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -0
  174. package/build/dist/Server/Services/StatusPageMonitorRuleService.js +401 -0
  175. package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -0
  176. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +1 -0
  177. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
  178. package/build/dist/Server/Services/TelemetryEntityService.js +1 -0
  179. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
  180. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +105 -29
  181. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  182. package/build/dist/Server/Utils/Monitor/MonitorResource.js +56 -32
  183. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  184. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +30 -3
  185. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
  186. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +110 -98
  187. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -1
  188. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +312 -0
  189. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -0
  190. package/build/dist/Server/Utils/SingleFlight.js +76 -0
  191. package/build/dist/Server/Utils/SingleFlight.js.map +1 -0
  192. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js +29 -0
  193. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js.map +1 -0
  194. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +78 -19
  195. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  196. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +160 -0
  197. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -0
  198. package/build/dist/Server/Utils/Telemetry/Telemetry.js +279 -104
  199. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  200. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  201. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  202. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  203. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  204. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js +2 -0
  205. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js.map +1 -0
  206. package/build/dist/Types/Dashboard/DashboardTemplates.js +368 -0
  207. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  208. package/build/dist/Types/Database/BigIntColumnTransformer.js +66 -0
  209. package/build/dist/Types/Database/BigIntColumnTransformer.js.map +1 -0
  210. package/build/dist/Types/Database/DatabaseProperty.js +25 -0
  211. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  212. package/build/dist/Types/Database/NumericColumnValue.js +97 -0
  213. package/build/dist/Types/Database/NumericColumnValue.js.map +1 -0
  214. package/build/dist/Types/Decimal.js +14 -3
  215. package/build/dist/Types/Decimal.js.map +1 -1
  216. package/build/dist/Types/Permission.js +42 -0
  217. package/build/dist/Types/Permission.js.map +1 -1
  218. package/build/dist/Types/Port.js +15 -5
  219. package/build/dist/Types/Port.js.map +1 -1
  220. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js +44 -0
  221. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js.map +1 -0
  222. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js +75 -0
  223. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js.map +1 -0
  224. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js +114 -0
  225. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js.map +1 -0
  226. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  227. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  228. package/package.json +1 -1
@@ -11,16 +11,129 @@ import CaptureSpan from "./CaptureSpan";
11
11
  import MetricType from "../../../Models/DatabaseModels/MetricType";
12
12
  import MetricTypeService from "../../Services/MetricTypeService";
13
13
  import Service from "../../../Models/DatabaseModels/Service";
14
+ import GlobalCache from "../../Infrastructure/GlobalCache";
15
+ import logger from "../Logger";
16
+ import crypto from "crypto";
17
+ /*
18
+ * Shares the namespace used by the OTLP maintenance fences so the metric
19
+ * catalog is throttled by the same machinery, with the same TTL, as every
20
+ * other per-batch reconcile on the ingest path.
21
+ */
22
+ const METRIC_TYPE_FENCE_NAMESPACE = "otel-maintenance-fence";
23
+ const METRIC_TYPE_FENCE_TTL_SECONDS = 5 * 60; // 5 minutes
14
24
  export default class TelemetryUtil {
25
+ /*
26
+ * Reconcile the metric catalog: one MetricType row per (project, metric
27
+ * name), carrying its description/unit/counter-semantics and the set of
28
+ * services that emit it.
29
+ *
30
+ * This runs on the ingest hot path, once per distinct metric name per batch,
31
+ * and it used to be the only per-batch Postgres writer with no fence, no
32
+ * cache and no dedup of any kind. It had two separate defects that together
33
+ * made it write on EVERY batch, forever:
34
+ *
35
+ * 1. Rows are created with `description || ""`, so the stored value is `""`
36
+ * whenever OTLP omits the field — but the INCOMING value is `undefined`
37
+ * for the same case (protobuf omits unset scalars). `"" !== undefined`
38
+ * is true, so the "has anything changed?" check answered yes on every
39
+ * batch for every metric without a description or unit. The counter
40
+ * semantics below already had the correct `!== undefined` guard;
41
+ * description and unit were simply left behind.
42
+ * 2. The write shipped the whole `services` array, which routes through
43
+ * `save()` — a multi-round-trip transaction holding the row's write lock
44
+ * — and deletes any association not present in the current batch.
45
+ *
46
+ * Both are fixed here. Absent now means "unknown", not "clear", and the two
47
+ * kinds of change are tracked separately so a scalar edit takes a single
48
+ * auto-committed UPDATE and an association takes an additive insert.
49
+ *
50
+ * A fence in front of the whole thing removes the SELECT as well as the
51
+ * write in the steady state. The fence key includes the batch's service set:
52
+ * `servicesInMap` holds only the services in THIS batch, so keying on the
53
+ * name alone would let a batch from service A satisfy the fence and suppress
54
+ * the association that a concurrent batch from service B still needs.
55
+ */
15
56
  static async indexMetricNameServiceNameMap(data) {
16
57
  var _a;
17
58
  for (const metricName of Object.keys(data.metricNameServiceNameMap)) {
18
- // fetch metric
19
- const metricType = await MetricTypeService.findOneBy({
20
- query: {
59
+ const metricTypeInMap = data.metricNameServiceNameMap[metricName];
60
+ // check if services are same as the ones in the map
61
+ const servicesInMap = ((_a = metricTypeInMap === null || metricTypeInMap === void 0 ? void 0 : metricTypeInMap.services) === null || _a === void 0 ? void 0 : _a.map((service) => {
62
+ return service.id;
63
+ })) || [];
64
+ const fenceKey = TelemetryUtil.buildMetricTypeFenceKey({
65
+ projectId: data.projectId,
66
+ metricName: metricName,
67
+ serviceIds: servicesInMap,
68
+ });
69
+ if (!(await TelemetryUtil.shouldIndexMetricType(fenceKey, TelemetryUtil.fingerprintMetricTypeScalars(metricTypeInMap)))) {
70
+ continue;
71
+ }
72
+ try {
73
+ await TelemetryUtil.reconcileMetricType({
21
74
  projectId: data.projectId,
22
- name: metricName,
23
- },
75
+ metricName: metricName,
76
+ metricTypeInMap: metricTypeInMap,
77
+ servicesInMap: servicesInMap,
78
+ });
79
+ }
80
+ catch (err) {
81
+ /*
82
+ * Per-metric isolation. This loop used to let any failure escape and
83
+ * abort indexing for every REMAINING metric name in the batch — and
84
+ * the only caller just logs, so a single bad row silently stopped the
85
+ * whole catalog from converging.
86
+ */
87
+ await TelemetryUtil.clearMetricTypeFence(fenceKey);
88
+ logger.warn(`TelemetryUtil.indexMetricNameServiceNameMap: failed to reconcile metric "${metricName}": ${err instanceof Error ? err.message : String(err)}`);
89
+ }
90
+ }
91
+ }
92
+ static async reconcileMetricType(data) {
93
+ const { projectId, metricName, metricTypeInMap, servicesInMap } = data;
94
+ const metricType = await MetricTypeService.findOneBy({
95
+ query: {
96
+ projectId: projectId,
97
+ name: metricName,
98
+ },
99
+ select: {
100
+ services: true,
101
+ name: true,
102
+ description: true,
103
+ unit: true,
104
+ isMonotonic: true,
105
+ aggregationTemporality: true,
106
+ },
107
+ props: {
108
+ isRoot: true,
109
+ },
110
+ });
111
+ if (metricType) {
112
+ await TelemetryUtil.updateExistingMetricType({
113
+ metricType,
114
+ metricTypeInMap,
115
+ servicesInMap,
116
+ });
117
+ return;
118
+ }
119
+ try {
120
+ await TelemetryUtil.createMetricType({
121
+ projectId,
122
+ metricName,
123
+ metricTypeInMap,
124
+ servicesInMap,
125
+ });
126
+ }
127
+ catch (err) {
128
+ /*
129
+ * Uniqueness on (projectId, name) is enforced in application code by a
130
+ * countBy, not by a database constraint, so two workers can both decide
131
+ * to create the same metric. Re-find to disambiguate: a row now means a
132
+ * concurrent worker won (harmless — reconcile against it); no row means
133
+ * the insert itself was invalid and must surface.
134
+ */
135
+ const winner = await MetricTypeService.findOneBy({
136
+ query: { projectId: projectId, name: metricName },
24
137
  select: {
25
138
  services: true,
26
139
  name: true,
@@ -29,107 +142,169 @@ export default class TelemetryUtil {
29
142
  isMonotonic: true,
30
143
  aggregationTemporality: true,
31
144
  },
32
- props: {
33
- isRoot: true,
34
- },
145
+ props: { isRoot: true },
35
146
  });
36
- const metricTypeInMap = data.metricNameServiceNameMap[metricName];
37
- // check if services are same as the ones in the map
38
- const servicesInMap = ((_a = metricTypeInMap === null || metricTypeInMap === void 0 ? void 0 : metricTypeInMap.services) === null || _a === void 0 ? void 0 : _a.map((service) => {
39
- return service.id;
40
- })) || [];
41
- if (metricType) {
42
- if (!metricType.services) {
43
- metricType.services = [];
44
- }
45
- const serviceIds = metricType.services.map((service) => {
46
- return service.id;
47
- });
48
- let isSame = true;
49
- // check if description is same
50
- if (metricType.description !== metricTypeInMap.description) {
51
- isSame = false;
52
- metricType.description = metricTypeInMap.description || "";
53
- }
54
- // check if unit is same
55
- if (metricType.unit !== metricTypeInMap.unit) {
56
- isSame = false;
57
- metricType.unit = metricTypeInMap.unit || "";
58
- }
59
- /*
60
- * Counter semantics (isMonotonic / aggregationTemporality) are only
61
- * known on OTel metric ingest paths — other callers (monitor
62
- * metrics, heartbeat metrics) never set them, so an undefined
63
- * incoming value means "unknown", not "clear the stored value".
64
- */
65
- if (metricTypeInMap.isMonotonic !== undefined &&
66
- metricType.isMonotonic !== metricTypeInMap.isMonotonic) {
67
- isSame = false;
68
- metricType.isMonotonic = metricTypeInMap.isMonotonic;
69
- }
70
- if (metricTypeInMap.aggregationTemporality !== undefined &&
71
- metricType.aggregationTemporality !==
72
- metricTypeInMap.aggregationTemporality) {
73
- isSame = false;
74
- metricType.aggregationTemporality =
75
- metricTypeInMap.aggregationTemporality;
76
- }
77
- // check if services are same
78
- for (const serviceId of servicesInMap) {
79
- if (serviceIds.filter((existingServiceId) => {
80
- return existingServiceId.toString() === serviceId.toString();
81
- }).length === 0) {
82
- isSame = false;
83
- // add the service id to the list
84
- const service = new Service();
85
- service.id = serviceId;
86
- metricType.services.push(service);
87
- }
88
- }
89
- // if its not the same then update the metric type
90
- if (!isSame) {
91
- // update metric type
92
- await MetricTypeService.updateOneById({
93
- id: metricType.id,
94
- data: Object.assign(Object.assign({ services: metricType.services || [], description: metricTypeInMap.description || "", unit: metricTypeInMap.unit || "" }, (metricType.isMonotonic !== undefined
95
- ? { isMonotonic: metricType.isMonotonic }
96
- : {})), (metricType.aggregationTemporality !== undefined
97
- ? { aggregationTemporality: metricType.aggregationTemporality }
98
- : {})),
99
- props: {
100
- isRoot: true,
101
- },
102
- });
103
- }
104
- }
105
- else {
106
- // create metric type
107
- const metricType = new MetricType();
108
- metricType.name = metricName;
109
- metricType.description = metricTypeInMap.description || "";
110
- metricType.unit = metricTypeInMap.unit || "";
111
- if (metricTypeInMap.isMonotonic !== undefined) {
112
- metricType.isMonotonic = metricTypeInMap.isMonotonic;
113
- }
114
- if (metricTypeInMap.aggregationTemporality !== undefined) {
115
- metricType.aggregationTemporality =
116
- metricTypeInMap.aggregationTemporality;
117
- }
118
- metricType.projectId = data.projectId;
119
- metricType.services = [];
120
- for (const serviceId of servicesInMap) {
121
- const service = new Service();
122
- service.id = serviceId;
123
- metricType.services.push(service);
124
- }
125
- // save metric type
126
- await MetricTypeService.create({
127
- data: metricType,
128
- props: {
129
- isRoot: true,
130
- },
131
- });
147
+ if (!winner) {
148
+ throw err;
132
149
  }
150
+ logger.debug(`TelemetryUtil: create raced for metric "${metricName}" (concurrent insert); reconciling against the winning row.`);
151
+ await TelemetryUtil.updateExistingMetricType({
152
+ metricType: winner,
153
+ metricTypeInMap,
154
+ servicesInMap,
155
+ });
156
+ }
157
+ }
158
+ static async updateExistingMetricType(data) {
159
+ var _a, _b;
160
+ const { metricType, metricTypeInMap, servicesInMap } = data;
161
+ if (!metricType.services) {
162
+ metricType.services = [];
163
+ }
164
+ const existingServiceIds = new Set(metricType.services.map((service) => {
165
+ return service.id.toString();
166
+ }));
167
+ /*
168
+ * Two flags, not one. A scalar edit and a new association need completely
169
+ * different statements, and conflating them is what forced every scalar
170
+ * edit through the relation-writing `save()` path.
171
+ */
172
+ let scalarsChanged = false;
173
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
174
+ const scalarUpdate = {};
175
+ /*
176
+ * An absent incoming value means "this producer didn't say", not "clear
177
+ * the stored value" — the same rule the counter-semantics block below has
178
+ * always used. Without the truthiness guard, a stored `""` compared
179
+ * against an incoming `undefined` reported a change on every single batch.
180
+ */
181
+ if (metricTypeInMap.description &&
182
+ ((_a = metricType.description) !== null && _a !== void 0 ? _a : "") !== metricTypeInMap.description) {
183
+ scalarsChanged = true;
184
+ scalarUpdate.description = metricTypeInMap.description;
185
+ }
186
+ if (metricTypeInMap.unit &&
187
+ ((_b = metricType.unit) !== null && _b !== void 0 ? _b : "") !== metricTypeInMap.unit) {
188
+ scalarsChanged = true;
189
+ scalarUpdate.unit = metricTypeInMap.unit;
190
+ }
191
+ /*
192
+ * Counter semantics (isMonotonic / aggregationTemporality) are only
193
+ * known on OTel metric ingest paths — other callers (monitor
194
+ * metrics, heartbeat metrics) never set them, so an undefined
195
+ * incoming value means "unknown", not "clear the stored value".
196
+ */
197
+ if (metricTypeInMap.isMonotonic !== undefined &&
198
+ metricType.isMonotonic !== metricTypeInMap.isMonotonic) {
199
+ scalarsChanged = true;
200
+ scalarUpdate.isMonotonic = metricTypeInMap.isMonotonic;
201
+ }
202
+ if (metricTypeInMap.aggregationTemporality !== undefined &&
203
+ metricType.aggregationTemporality !==
204
+ metricTypeInMap.aggregationTemporality) {
205
+ scalarsChanged = true;
206
+ scalarUpdate.aggregationTemporality =
207
+ metricTypeInMap.aggregationTemporality;
208
+ }
209
+ const servicesToAttach = servicesInMap.filter((serviceId) => {
210
+ return !existingServiceIds.has(serviceId.toString());
211
+ });
212
+ if (scalarsChanged) {
213
+ /*
214
+ * One auto-committed UPDATE. Deliberately NOT updateOneById: with
215
+ * `services` absent from the payload that path still opens a transaction
216
+ * and bumps `version`, and MetricType declares no update workflow, no
217
+ * realtime events and no audit log, so the full pipeline buys nothing
218
+ * here. Nothing in the codebase uses TypeORM optimistic locking, so the
219
+ * skipped version bump has no consumer.
220
+ */
221
+ await MetricTypeService.updateColumnsByIdWithoutHooks({
222
+ id: metricType.id,
223
+ data: scalarUpdate,
224
+ });
225
+ }
226
+ if (servicesToAttach.length > 0) {
227
+ await MetricTypeService.attachServices({
228
+ metricTypeId: metricType.id,
229
+ serviceIds: servicesToAttach,
230
+ });
231
+ }
232
+ }
233
+ static async createMetricType(data) {
234
+ const metricType = new MetricType();
235
+ metricType.name = data.metricName;
236
+ metricType.description = data.metricTypeInMap.description || "";
237
+ metricType.unit = data.metricTypeInMap.unit || "";
238
+ if (data.metricTypeInMap.isMonotonic !== undefined) {
239
+ metricType.isMonotonic = data.metricTypeInMap.isMonotonic;
240
+ }
241
+ if (data.metricTypeInMap.aggregationTemporality !== undefined) {
242
+ metricType.aggregationTemporality =
243
+ data.metricTypeInMap.aggregationTemporality;
244
+ }
245
+ metricType.projectId = data.projectId;
246
+ metricType.services = [];
247
+ for (const serviceId of data.servicesInMap) {
248
+ const service = new Service();
249
+ service.id = serviceId;
250
+ metricType.services.push(service);
251
+ }
252
+ /*
253
+ * Creates stay on the ORM path: a raw INSERT would bypass tenant stamping,
254
+ * slug generation and the uniqueness check. Creates are also rare — this
255
+ * runs once per metric name in a project's lifetime.
256
+ */
257
+ await MetricTypeService.create({
258
+ data: metricType,
259
+ props: {
260
+ isRoot: true,
261
+ },
262
+ });
263
+ }
264
+ static buildMetricTypeFenceKey(data) {
265
+ const services = data.serviceIds
266
+ .map((serviceId) => {
267
+ return serviceId.toString();
268
+ })
269
+ .sort()
270
+ .join(",");
271
+ return `metric-type:${data.projectId.toString()}:${data.metricName}:${crypto.createHash("sha1").update(services).digest("hex")}`;
272
+ }
273
+ static fingerprintMetricTypeScalars(metricType) {
274
+ var _a, _b, _c, _d;
275
+ return crypto
276
+ .createHash("sha1")
277
+ .update(JSON.stringify({
278
+ description: (_a = metricType.description) !== null && _a !== void 0 ? _a : null,
279
+ unit: (_b = metricType.unit) !== null && _b !== void 0 ? _b : null,
280
+ isMonotonic: (_c = metricType.isMonotonic) !== null && _c !== void 0 ? _c : null,
281
+ aggregationTemporality: (_d = metricType.aggregationTemporality) !== null && _d !== void 0 ? _d : null,
282
+ }))
283
+ .digest("hex");
284
+ }
285
+ /*
286
+ * Compare-and-claim rather than plain set-if-absent: a metric whose
287
+ * description or unit genuinely changed must be written promptly, not wait
288
+ * out the window. Atomic, so concurrent workers cannot all pass the gate the
289
+ * way a read-then-write lets them.
290
+ */
291
+ static async shouldIndexMetricType(fenceKey, fingerprint) {
292
+ try {
293
+ return await GlobalCache.setStringIfChanged(METRIC_TYPE_FENCE_NAMESPACE, fenceKey, fingerprint, {
294
+ expiresInSeconds: GlobalCache.withJitter(METRIC_TYPE_FENCE_TTL_SECONDS),
295
+ });
296
+ }
297
+ catch (_a) {
298
+ // If the cache is down, default to running the reconcile.
299
+ return true;
300
+ }
301
+ }
302
+ static async clearMetricTypeFence(fenceKey) {
303
+ try {
304
+ await GlobalCache.deleteKey(METRIC_TYPE_FENCE_NAMESPACE, fenceKey);
305
+ }
306
+ catch (_a) {
307
+ // Best effort — losing the release costs one window of staleness.
133
308
  }
134
309
  }
135
310
  static getAttributesForServiceIdAndServiceName(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"Telemetry.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/Telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Telemetry.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/Telemetry.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ var DashboardComponentType;
40
40
  DashboardComponentType["DockerSwarmServiceList"] = "DockerSwarmServiceList";
41
41
  DashboardComponentType["CephOsdList"] = "CephOsdList";
42
42
  DashboardComponentType["CephPoolList"] = "CephPoolList";
43
+ DashboardComponentType["NetworkMap"] = "NetworkMap";
43
44
  DashboardComponentType["Html"] = "Html";
44
45
  })(DashboardComponentType || (DashboardComponentType = {}));
45
46
  export default DashboardComponentType;
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardComponentType.js","sourceRoot":"","sources":["../../../../Types/Dashboard/DashboardComponentType.ts"],"names":[],"mappings":"AAAA,IAAK,sBA0CJ;AA1CD,WAAK,sBAAsB;IACzB,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,uCAAa,CAAA;IACb,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,iDAAuB,CAAA;IACvB,+CAAqB,CAAA;IACrB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,mDAAyB,CAAA;IACzB,uDAA6B,CAAA;IAC7B,iDAAuB,CAAA;IACvB,qDAA2B,CAAA;IAC3B,qCAAW,CAAA;IACX,iEAAuC,CAAA;IACvC,mEAAyC,CAAA;IACzC,6EAAmD,CAAA;IACnD,+EAAqD,CAAA;IACrD,iFAAuD,CAAA;IACvD,6EAAmD,CAAA;IACnD,iEAAuC,CAAA;IACvC,yEAA+C,CAAA;IAC/C,2DAAiC,CAAA;IACjC,qEAA2C,CAAA;IAC3C,6DAAmC,CAAA;IACnC,iEAAuC,CAAA;IACvC,+DAAqC,CAAA;IACrC,2DAAiC,CAAA;IACjC,qEAA2C,CAAA;IAC3C,6DAAmC,CAAA;IACnC,iEAAuC,CAAA;IACvC,+DAAqC,CAAA;IACrC,+CAAqB,CAAA;IACrB,6DAAmC,CAAA;IACnC,+DAAqC,CAAA;IACrC,qEAA2C,CAAA;IAC3C,2EAAiD,CAAA;IACjD,qDAA2B,CAAA;IAC3B,uDAA6B,CAAA;IAC7B,uCAAa,CAAA;AACf,CAAC,EA1CI,sBAAsB,KAAtB,sBAAsB,QA0C1B;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"DashboardComponentType.js","sourceRoot":"","sources":["../../../../Types/Dashboard/DashboardComponentType.ts"],"names":[],"mappings":"AAAA,IAAK,sBA2CJ;AA3CD,WAAK,sBAAsB;IACzB,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,uCAAa,CAAA;IACb,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,iDAAuB,CAAA;IACvB,+CAAqB,CAAA;IACrB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,mDAAyB,CAAA;IACzB,uDAA6B,CAAA;IAC7B,iDAAuB,CAAA;IACvB,qDAA2B,CAAA;IAC3B,qCAAW,CAAA;IACX,iEAAuC,CAAA;IACvC,mEAAyC,CAAA;IACzC,6EAAmD,CAAA;IACnD,+EAAqD,CAAA;IACrD,iFAAuD,CAAA;IACvD,6EAAmD,CAAA;IACnD,iEAAuC,CAAA;IACvC,yEAA+C,CAAA;IAC/C,2DAAiC,CAAA;IACjC,qEAA2C,CAAA;IAC3C,6DAAmC,CAAA;IACnC,iEAAuC,CAAA;IACvC,+DAAqC,CAAA;IACrC,2DAAiC,CAAA;IACjC,qEAA2C,CAAA;IAC3C,6DAAmC,CAAA;IACnC,iEAAuC,CAAA;IACvC,+DAAqC,CAAA;IACrC,+CAAqB,CAAA;IACrB,6DAAmC,CAAA;IACnC,+DAAqC,CAAA;IACrC,qEAA2C,CAAA;IAC3C,2EAAiD,CAAA;IACjD,qDAA2B,CAAA;IAC3B,uDAA6B,CAAA;IAC7B,mDAAyB,CAAA;IACzB,uCAAa,CAAA;AACf,CAAC,EA3CI,sBAAsB,KAAtB,sBAAsB,QA2C1B;AAED,eAAe,sBAAsB,CAAC"}
@@ -37,5 +37,6 @@ export var EntityFilterModelType;
37
37
  EntityFilterModelType["ProxmoxCluster"] = "ProxmoxCluster";
38
38
  EntityFilterModelType["CephCluster"] = "CephCluster";
39
39
  EntityFilterModelType["DockerSwarmCluster"] = "DockerSwarmCluster";
40
+ EntityFilterModelType["NetworkSiteType"] = "NetworkSiteType";
40
41
  })(EntityFilterModelType || (EntityFilterModelType = {}));
41
42
  //# sourceMappingURL=ComponentArgument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentArgument.js","sourceRoot":"","sources":["../../../../../Types/Dashboard/DashboardComponents/ComponentArgument.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,kBAqBX;AArBD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,4CAAsB,CAAA;IACtB,+CAAyB,CAAA;IACzB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;IACnB,+DAAyC,CAAA;IACzC,iEAA2C,CAAA;IAC3C,qEAA+C,CAAA;IAC/C,mDAA6B,CAAA;IAC7B,mDAA6B,CAAA;IAC7B,4CAAsB,CAAA;IACtB,2CAAqB,CAAA;IACrB,iEAA2C,CAAA;IAC3C,uDAAiC,CAAA;IACjC,6EAAuD,CAAA;IACvD,yCAAyC;IACzC,mCAAa,CAAA;IACb,iCAAW,CAAA;IACX,+CAAyB,CAAA;AAC3B,CAAC,EArBW,kBAAkB,KAAlB,kBAAkB,QAqB7B;AAED,MAAM,CAAN,IAAY,qBAeX;AAfD,WAAY,qBAAqB;IAC/B,8DAAqC,CAAA;IACrC,wDAA+B,CAAA;IAC/B,wDAA+B,CAAA;IAC/B,kDAAyB,CAAA;IACzB,wDAA+B,CAAA;IAC/B,4CAAmB,CAAA;IACnB,wEAA+C,CAAA;IAC/C,wCAAe,CAAA;IACf,gEAAuC,CAAA;IACvC,kDAAyB,CAAA;IACzB,kDAAyB,CAAA;IACzB,0DAAiC,CAAA;IACjC,oDAA2B,CAAA;IAC3B,kEAAyC,CAAA;AAC3C,CAAC,EAfW,qBAAqB,KAArB,qBAAqB,QAehC"}
1
+ {"version":3,"file":"ComponentArgument.js","sourceRoot":"","sources":["../../../../../Types/Dashboard/DashboardComponents/ComponentArgument.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,kBAqBX;AArBD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,4CAAsB,CAAA;IACtB,+CAAyB,CAAA;IACzB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;IACnB,+DAAyC,CAAA;IACzC,iEAA2C,CAAA;IAC3C,qEAA+C,CAAA;IAC/C,mDAA6B,CAAA;IAC7B,mDAA6B,CAAA;IAC7B,4CAAsB,CAAA;IACtB,2CAAqB,CAAA;IACrB,iEAA2C,CAAA;IAC3C,uDAAiC,CAAA;IACjC,6EAAuD,CAAA;IACvD,yCAAyC;IACzC,mCAAa,CAAA;IACb,iCAAW,CAAA;IACX,+CAAyB,CAAA;AAC3B,CAAC,EArBW,kBAAkB,KAAlB,kBAAkB,QAqB7B;AAED,MAAM,CAAN,IAAY,qBAgBX;AAhBD,WAAY,qBAAqB;IAC/B,8DAAqC,CAAA;IACrC,wDAA+B,CAAA;IAC/B,wDAA+B,CAAA;IAC/B,kDAAyB,CAAA;IACzB,wDAA+B,CAAA;IAC/B,4CAAmB,CAAA;IACnB,wEAA+C,CAAA;IAC/C,wCAAe,CAAA;IACf,gEAAuC,CAAA;IACvC,kDAAyB,CAAA;IACzB,kDAAyB,CAAA;IACzB,0DAAiC,CAAA;IACjC,oDAA2B,CAAA;IAC3B,kEAAyC,CAAA;IACzC,4DAAmC,CAAA;AACrC,CAAC,EAhBW,qBAAqB,KAArB,qBAAqB,QAgBhC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DashboardNetworkMapComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardNetworkMapComponent.js","sourceRoot":"","sources":["../../../../../Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts"],"names":[],"mappings":""}