@oneuptime/common 10.8.1 → 11.0.0

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 (772) hide show
  1. package/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.ts +16 -18
  2. package/Models/AnalyticsModels/AuditLog.ts +3 -1
  3. package/Models/AnalyticsModels/ExceptionInstance.ts +200 -82
  4. package/Models/AnalyticsModels/Index.ts +7 -2
  5. package/Models/AnalyticsModels/Log.ts +197 -81
  6. package/Models/AnalyticsModels/Metric.ts +199 -86
  7. package/Models/AnalyticsModels/MetricBaselineHourly.ts +44 -25
  8. package/Models/AnalyticsModels/MetricItemAggMV1m.ts +23 -20
  9. package/Models/AnalyticsModels/{MetricItemAggMV1mByHost.ts → MetricItemAggMV1mByHostV2.ts} +58 -47
  10. package/Models/AnalyticsModels/MonitorLog.ts +5 -1
  11. package/Models/AnalyticsModels/Profile.ts +206 -85
  12. package/Models/AnalyticsModels/ProfileSample.ts +196 -83
  13. package/Models/AnalyticsModels/Span.ts +218 -85
  14. package/Models/DatabaseModels/CloudResourceInstance.ts +1 -2
  15. package/Models/DatabaseModels/CloudResourceOwnerTeam.ts +1 -2
  16. package/Models/DatabaseModels/CloudResourceOwnerUser.ts +1 -2
  17. package/Models/DatabaseModels/Index.ts +4 -0
  18. package/Models/DatabaseModels/Service.ts +29 -0
  19. package/Models/DatabaseModels/TelemetryEntity.ts +393 -0
  20. package/Models/DatabaseModels/TelemetryEntityRelationship.ts +294 -0
  21. package/Models/DatabaseModels/TelemetryException.ts +13 -12
  22. package/Models/DatabaseModels/TelemetryUsageBilling.ts +5 -5
  23. package/Server/API/AIAgentDataAPI.ts +13 -12
  24. package/Server/API/DashboardAPI.ts +2 -2
  25. package/Server/API/TelemetryAPI.ts +656 -141
  26. package/Server/API/TelemetryExceptionAPI.ts +2 -2
  27. package/Server/Infrastructure/ClickhouseConfig.ts +12 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.ts +1 -3
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.ts +6 -2
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.ts +18 -6
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1781011482945-MigrationName.ts +2317 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.ts +48 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.ts +70 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.ts +57 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.ts +207 -0
  36. package/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.ts +24 -0
  37. package/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.ts +25 -0
  38. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +14 -0
  39. package/Server/Infrastructure/Queue.ts +36 -3
  40. package/Server/Middleware/TelemetryIngest.ts +27 -22
  41. package/Server/Services/AlertService.ts +9 -9
  42. package/Server/Services/AnalyticsDatabaseService.ts +204 -35
  43. package/Server/Services/CloudResourceLabelRuleEngineService.ts +4 -1
  44. package/Server/Services/CloudResourceOwnerRuleEngineService.ts +4 -1
  45. package/Server/Services/ExceptionAggregationService.ts +41 -18
  46. package/Server/Services/HostService.ts +2 -1
  47. package/Server/Services/IncidentService.ts +19 -19
  48. package/Server/Services/Index.ts +6 -2
  49. package/Server/Services/LogAggregationService.ts +116 -43
  50. package/Server/Services/MetricAggregationService.ts +29 -14
  51. package/Server/Services/MetricBaselineService.ts +34 -34
  52. package/Server/Services/MetricItemAggMV1mByHostV2Service.ts +30 -0
  53. package/Server/Services/MetricService.ts +119 -31
  54. package/Server/Services/OpenTelemetryIngestService.ts +189 -51
  55. package/Server/Services/ProfileAggregationService.ts +904 -126
  56. package/Server/Services/RumApplicationLabelRuleEngineService.ts +4 -1
  57. package/Server/Services/RumApplicationOwnerRuleEngineService.ts +4 -1
  58. package/Server/Services/ServerlessFunctionInstanceService.ts +4 -2
  59. package/Server/Services/ServerlessFunctionLabelRuleEngineService.ts +7 -2
  60. package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +7 -2
  61. package/Server/Services/ServiceService.ts +6 -0
  62. package/Server/Services/SpanService.ts +274 -14
  63. package/Server/Services/TelemetryEntityRelationshipService.ts +71 -0
  64. package/Server/Services/TelemetryEntityService.ts +246 -0
  65. package/Server/Services/TelemetryExceptionService.ts +27 -23
  66. package/Server/Services/TelemetryUsageBillingService.ts +38 -31
  67. package/Server/Services/TraceAggregationService.ts +875 -43
  68. package/Server/Types/AnalyticsDatabase/ModelPermission.ts +43 -2
  69. package/Server/Types/Database/Permissions/AccessControlPermission.ts +47 -2
  70. package/Server/Types/Database/Permissions/BasePermission.ts +37 -1
  71. package/Server/Types/Database/Permissions/OwnedScopePermission.ts +21 -3
  72. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +1 -0
  73. package/Server/Types/Database/QueryHelper.ts +41 -0
  74. package/Server/Utils/Alert/AlertPrivacyFilter.ts +9 -2
  75. package/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.ts +9 -2
  76. package/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.ts +95 -0
  77. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +133 -0
  78. package/Server/Utils/Incident/IncidentPrivacyFilter.ts +9 -2
  79. package/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.ts +9 -2
  80. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +1 -1
  81. package/Server/Utils/Monitor/MonitorLogUtil.ts +1 -2
  82. package/Server/Utils/Monitor/MonitorMetricUtil.ts +3 -4
  83. package/Server/Utils/PrivacyFilterUtil.ts +72 -0
  84. package/Server/Utils/Profile/PprofEncoder.ts +135 -11
  85. package/Server/Utils/Telemetry/EntityRegistry.ts +316 -0
  86. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +9 -3
  87. package/Server/Utils/Telemetry/TelemetryEntity.ts +783 -0
  88. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +79 -4
  89. package/Tests/Server/Services/LogAggregationService.test.ts +7 -2
  90. package/Tests/Server/Services/ProfileAggregationService.test.ts +280 -0
  91. package/Tests/Server/Services/ProfileBreakdown.test.ts +161 -0
  92. package/Tests/Server/Services/ProfileFunctionFocus.test.ts +349 -0
  93. package/Tests/Server/Services/TelemetryAttributeService.test.ts +1 -1
  94. package/Tests/Server/Services/TraceAggregationService.test.ts +403 -0
  95. package/Tests/Server/Types/AnalyticsDatabase/ModelPermissionOwnedScope.test.ts +114 -0
  96. package/Tests/Server/Types/Database/Permissions/AccessControlPermission.test.ts +189 -0
  97. package/Tests/Server/Types/Database/Permissions/BasePermission.test.ts +118 -0
  98. package/Tests/Server/Types/Database/Permissions/OwnedScopePermission.test.ts +159 -0
  99. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +275 -8
  100. package/Tests/Server/Utils/PrivacyFilterUtil.test.ts +177 -0
  101. package/Tests/Server/Utils/Profile/PprofEncoder.test.ts +276 -0
  102. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +761 -0
  103. package/Tests/Types/Monitor/MonitorStepEntityScope.test.ts +275 -0
  104. package/Tests/Types/Text.test.ts +52 -0
  105. package/Tests/Utils/Telemetry/EntityKey.test.ts +150 -0
  106. package/Tests/Utils/Telemetry/EntityKeySqlParity.test.ts +40 -0
  107. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +150 -0
  108. package/Tests/Utils/UUID.test.ts +47 -0
  109. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +14 -9
  110. package/Types/AnalyticsDatabase/TableColumnType.ts +1 -0
  111. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  112. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +37 -0
  113. package/Types/Dashboard/DashboardTemplates.ts +4 -5
  114. package/Types/Log/LogQueryParser.ts +2 -2
  115. package/Types/Log/LogQueryToFilter.ts +2 -2
  116. package/Types/Monitor/MonitorStepExceptionMonitor.ts +19 -1
  117. package/Types/Monitor/MonitorStepLogMonitor.ts +20 -1
  118. package/Types/Monitor/MonitorStepMetricMonitor.ts +27 -0
  119. package/Types/Monitor/MonitorStepProfileMonitor.ts +19 -1
  120. package/Types/Monitor/MonitorStepTraceMonitor.ts +18 -1
  121. package/Types/Monitor/MonitorType.ts +8 -1
  122. package/Types/ObjectID.ts +10 -0
  123. package/Types/Permission.ts +4 -2
  124. package/Types/Telemetry/EntityRelationshipType.ts +31 -0
  125. package/Types/Telemetry/EntityType.ts +33 -0
  126. package/Types/Telemetry/TelemetrySavedViewState.ts +2 -0
  127. package/Types/Text.ts +34 -0
  128. package/Types/Trace/TraceAggregationType.ts +1 -0
  129. package/Types/Trace/TraceRecordingRuleDefinition.ts +74 -0
  130. package/UI/Components/BulkUpdate/BulkLabelActions.tsx +14 -14
  131. package/UI/Components/Forms/Fields/FormField.tsx +18 -12
  132. package/UI/Components/Input/Input.tsx +3 -1
  133. package/UI/Components/LogsViewer/LogsViewer.tsx +12 -9
  134. package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +10 -9
  135. package/UI/Components/LogsViewer/components/LogSearchBar.tsx +1 -1
  136. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +2 -2
  137. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +4 -4
  138. package/UI/Components/LogsViewer/components/LogsTable.tsx +5 -3
  139. package/UI/Components/Navbar/NavBarMenuModal.tsx +81 -44
  140. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +33 -10
  141. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +18 -3
  142. package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +91 -68
  143. package/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.tsx +9 -2
  144. package/UI/Components/TextArea/TextArea.tsx +3 -1
  145. package/UI/Components/Toast/Toast.tsx +4 -2
  146. package/UI/Utils/LogExport.ts +2 -2
  147. package/UI/Utils/TelemetryService.ts +20 -20
  148. package/Utils/Dashboard/Components/DashboardTraceChartComponent.ts +134 -0
  149. package/Utils/Dashboard/Components/Index.ts +7 -0
  150. package/Utils/Telemetry/EntityKey.ts +151 -0
  151. package/Utils/Telemetry/EntityRelationship.ts +113 -0
  152. package/Utils/Traces/CriticalPath.ts +7 -7
  153. package/Utils/UUID.ts +57 -0
  154. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js +14 -13
  155. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js.map +1 -1
  156. package/build/dist/Models/AnalyticsModels/AuditLog.js +2 -1
  157. package/build/dist/Models/AnalyticsModels/AuditLog.js.map +1 -1
  158. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +125 -22
  159. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  160. package/build/dist/Models/AnalyticsModels/Index.js +7 -2
  161. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  162. package/build/dist/Models/AnalyticsModels/Log.js +123 -22
  163. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  164. package/build/dist/Models/AnalyticsModels/Metric.js +125 -27
  165. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  166. package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js +38 -21
  167. package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js.map +1 -1
  168. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js +17 -16
  169. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js.map +1 -1
  170. package/build/dist/Models/AnalyticsModels/{MetricItemAggMV1mByHost.js → MetricItemAggMV1mByHostV2.js} +54 -42
  171. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHostV2.js.map +1 -0
  172. package/build/dist/Models/AnalyticsModels/MonitorLog.js +4 -1
  173. package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
  174. package/build/dist/Models/AnalyticsModels/Profile.js +132 -26
  175. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
  176. package/build/dist/Models/AnalyticsModels/ProfileSample.js +121 -23
  177. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
  178. package/build/dist/Models/AnalyticsModels/Span.js +144 -26
  179. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  180. package/build/dist/Models/DatabaseModels/CloudResourceInstance.js.map +1 -1
  181. package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js.map +1 -1
  182. package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js.map +1 -1
  183. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  184. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  185. package/build/dist/Models/DatabaseModels/Service.js +30 -0
  186. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  187. package/build/dist/Models/DatabaseModels/TelemetryEntity.js +419 -0
  188. package/build/dist/Models/DatabaseModels/TelemetryEntity.js.map +1 -0
  189. package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js +317 -0
  190. package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js.map +1 -0
  191. package/build/dist/Models/DatabaseModels/TelemetryException.js +12 -12
  192. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  193. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +7 -7
  194. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
  195. package/build/dist/Server/API/AIAgentDataAPI.js +14 -13
  196. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  197. package/build/dist/Server/API/DashboardAPI.js +2 -2
  198. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  199. package/build/dist/Server/API/TelemetryAPI.js +425 -129
  200. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  201. package/build/dist/Server/API/TelemetryExceptionAPI.js +2 -2
  202. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  203. package/build/dist/Server/Infrastructure/ClickhouseConfig.js +12 -0
  204. package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
  205. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.js.map +1 -1
  206. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.js.map +1 -1
  207. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.js.map +1 -1
  208. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781011482945-MigrationName.js +798 -0
  209. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781011482945-MigrationName.js.map +1 -0
  210. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js +29 -0
  211. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js.map +1 -0
  212. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js +38 -0
  213. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js.map +1 -0
  214. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js +33 -0
  215. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js.map +1 -0
  216. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js +78 -0
  217. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js.map +1 -0
  218. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js +19 -0
  219. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js.map +1 -0
  220. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js +18 -0
  221. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js.map +1 -0
  222. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +14 -0
  223. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  224. package/build/dist/Server/Infrastructure/Queue.js +14 -3
  225. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  226. package/build/dist/Server/Middleware/TelemetryIngest.js +16 -18
  227. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  228. package/build/dist/Server/Services/AlertService.js +9 -9
  229. package/build/dist/Server/Services/AlertService.js.map +1 -1
  230. package/build/dist/Server/Services/AnalyticsDatabaseService.js +115 -40
  231. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  232. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -1
  233. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
  234. package/build/dist/Server/Services/ExceptionAggregationService.js +38 -18
  235. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  236. package/build/dist/Server/Services/HostService.js +2 -1
  237. package/build/dist/Server/Services/HostService.js.map +1 -1
  238. package/build/dist/Server/Services/IncidentService.js +19 -19
  239. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  240. package/build/dist/Server/Services/Index.js +6 -2
  241. package/build/dist/Server/Services/Index.js.map +1 -1
  242. package/build/dist/Server/Services/LogAggregationService.js +100 -42
  243. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  244. package/build/dist/Server/Services/MetricAggregationService.js +27 -14
  245. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  246. package/build/dist/Server/Services/MetricBaselineService.js +28 -28
  247. package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
  248. package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js +28 -0
  249. package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js.map +1 -0
  250. package/build/dist/Server/Services/MetricService.js +116 -31
  251. package/build/dist/Server/Services/MetricService.js.map +1 -1
  252. package/build/dist/Server/Services/OpenTelemetryIngestService.js +103 -36
  253. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  254. package/build/dist/Server/Services/ProfileAggregationService.js +613 -105
  255. package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -1
  256. package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js.map +1 -1
  257. package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -1
  258. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js +4 -2
  259. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js.map +1 -1
  260. package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js +2 -1
  261. package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js.map +1 -1
  262. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +2 -1
  263. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -1
  264. package/build/dist/Server/Services/ServiceService.js +9 -5
  265. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  266. package/build/dist/Server/Services/SpanService.js +217 -15
  267. package/build/dist/Server/Services/SpanService.js.map +1 -1
  268. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +72 -0
  269. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -0
  270. package/build/dist/Server/Services/TelemetryEntityService.js +201 -0
  271. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -0
  272. package/build/dist/Server/Services/TelemetryExceptionService.js +18 -18
  273. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  274. package/build/dist/Server/Services/TelemetryUsageBillingService.js +27 -21
  275. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  276. package/build/dist/Server/Services/TraceAggregationService.js +568 -43
  277. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  278. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +38 -2
  279. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  280. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js +36 -2
  281. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js.map +1 -1
  282. package/build/dist/Server/Types/Database/Permissions/BasePermission.js +25 -1
  283. package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
  284. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js +17 -3
  285. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js.map +1 -1
  286. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +1 -0
  287. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  288. package/build/dist/Server/Types/Database/QueryHelper.js +31 -0
  289. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  290. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js +3 -2
  291. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js.map +1 -1
  292. package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js +3 -2
  293. package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js.map +1 -1
  294. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js +46 -0
  295. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js.map +1 -0
  296. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +97 -3
  297. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  298. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js +3 -2
  299. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js.map +1 -1
  300. package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js +3 -2
  301. package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js.map +1 -1
  302. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +1 -1
  303. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  304. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +1 -2
  305. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -1
  306. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +3 -4
  307. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  308. package/build/dist/Server/Utils/PrivacyFilterUtil.js +47 -0
  309. package/build/dist/Server/Utils/PrivacyFilterUtil.js.map +1 -0
  310. package/build/dist/Server/Utils/Profile/PprofEncoder.js +132 -4
  311. package/build/dist/Server/Utils/Profile/PprofEncoder.js.map +1 -1
  312. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +228 -0
  313. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -0
  314. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +5 -0
  315. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  316. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +569 -0
  317. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -0
  318. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +14 -9
  319. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  320. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js +1 -0
  321. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js.map +1 -1
  322. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  323. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  324. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.js +2 -0
  325. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.js.map +1 -0
  326. package/build/dist/Types/Dashboard/DashboardTemplates.js +4 -5
  327. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  328. package/build/dist/Types/Log/LogQueryParser.js +2 -2
  329. package/build/dist/Types/Log/LogQueryParser.js.map +1 -1
  330. package/build/dist/Types/Log/LogQueryToFilter.js +1 -1
  331. package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -1
  332. package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js +9 -1
  333. package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js.map +1 -1
  334. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js +9 -1
  335. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js.map +1 -1
  336. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js +13 -0
  337. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js.map +1 -1
  338. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js +9 -1
  339. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js.map +1 -1
  340. package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js +9 -1
  341. package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js.map +1 -1
  342. package/build/dist/Types/Monitor/MonitorType.js +8 -1
  343. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  344. package/build/dist/Types/ObjectID.js +9 -0
  345. package/build/dist/Types/ObjectID.js.map +1 -1
  346. package/build/dist/Types/Permission.js.map +1 -1
  347. package/build/dist/Types/Telemetry/EntityRelationshipType.js +32 -0
  348. package/build/dist/Types/Telemetry/EntityRelationshipType.js.map +1 -0
  349. package/build/dist/Types/Telemetry/EntityType.js +34 -0
  350. package/build/dist/Types/Telemetry/EntityType.js.map +1 -0
  351. package/build/dist/Types/Text.js +32 -1
  352. package/build/dist/Types/Text.js.map +1 -1
  353. package/build/dist/Types/Trace/TraceAggregationType.js +1 -0
  354. package/build/dist/Types/Trace/TraceAggregationType.js.map +1 -1
  355. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js +50 -1
  356. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js.map +1 -1
  357. package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
  358. package/build/dist/UI/Components/Forms/Fields/FormField.js +15 -12
  359. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  360. package/build/dist/UI/Components/Input/Input.js +3 -1
  361. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  362. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +10 -9
  363. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  364. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +8 -8
  365. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
  366. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +1 -1
  367. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
  368. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +2 -2
  369. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  370. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +4 -4
  371. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  372. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +3 -3
  373. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
  374. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +43 -30
  375. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  376. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +6 -2
  377. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  378. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +14 -3
  379. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  380. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +18 -10
  381. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
  382. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js +4 -2
  383. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js.map +1 -1
  384. package/build/dist/UI/Components/TextArea/TextArea.js +3 -1
  385. package/build/dist/UI/Components/TextArea/TextArea.js.map +1 -1
  386. package/build/dist/UI/Components/Toast/Toast.js +4 -2
  387. package/build/dist/UI/Components/Toast/Toast.js.map +1 -1
  388. package/build/dist/UI/Utils/LogExport.js +2 -2
  389. package/build/dist/UI/Utils/LogExport.js.map +1 -1
  390. package/build/dist/UI/Utils/TelemetryService.js +16 -16
  391. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  392. package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.js +110 -0
  393. package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.js.map +1 -0
  394. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  395. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  396. package/build/dist/Utils/Telemetry/EntityKey.js +115 -0
  397. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -0
  398. package/build/dist/Utils/Telemetry/EntityRelationship.js +71 -0
  399. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -0
  400. package/build/dist/Utils/Traces/CriticalPath.js +5 -5
  401. package/build/dist/Utils/Traces/CriticalPath.js.map +1 -1
  402. package/build/dist/Utils/UUID.js +50 -0
  403. package/build/dist/Utils/UUID.js.map +1 -1
  404. package/package.json +2 -1
  405. package/tsconfig.json +10 -1
  406. package/Server/Services/MetricItemAggMV1mByHostService.ts +0 -30
  407. package/Types/Profile/ProfileMetricType.ts +0 -16
  408. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHost.js.map +0 -1
  409. package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js +0 -28
  410. package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js.map +0 -1
  411. package/build/dist/Tests/MockType.js +0 -5
  412. package/build/dist/Tests/MockType.js.map +0 -1
  413. package/build/dist/Tests/Models/AnalyticsModels/Log.test.js +0 -12
  414. package/build/dist/Tests/Models/AnalyticsModels/Log.test.js.map +0 -1
  415. package/build/dist/Tests/Models/File.test.js +0 -10
  416. package/build/dist/Tests/Models/File.test.js.map +0 -1
  417. package/build/dist/Tests/Server/API/BaseAPI.test.js +0 -590
  418. package/build/dist/Tests/Server/API/BaseAPI.test.js.map +0 -1
  419. package/build/dist/Tests/Server/API/Helpers.js +0 -27
  420. package/build/dist/Tests/Server/API/Helpers.js.map +0 -1
  421. package/build/dist/Tests/Server/API/ProbeAPI.test.js +0 -84
  422. package/build/dist/Tests/Server/API/ProbeAPI.test.js.map +0 -1
  423. package/build/dist/Tests/Server/API/ProjectAPI.test.js +0 -170
  424. package/build/dist/Tests/Server/API/ProjectAPI.test.js.map +0 -1
  425. package/build/dist/Tests/Server/API/UserSmsApi.test.js +0 -177
  426. package/build/dist/Tests/Server/API/UserSmsApi.test.js.map +0 -1
  427. package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js +0 -63
  428. package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js.map +0 -1
  429. package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js +0 -58
  430. package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js.map +0 -1
  431. package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js +0 -101
  432. package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js.map +0 -1
  433. package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js +0 -160
  434. package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js.map +0 -1
  435. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +0 -410
  436. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +0 -1
  437. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js +0 -165
  438. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js.map +0 -1
  439. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js +0 -193
  440. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js.map +0 -1
  441. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js +0 -435
  442. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js.map +0 -1
  443. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js +0 -320
  444. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js.map +0 -1
  445. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js +0 -266
  446. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js.map +0 -1
  447. package/build/dist/Tests/Server/Services/BillingService.test.js +0 -910
  448. package/build/dist/Tests/Server/Services/BillingService.test.js.map +0 -1
  449. package/build/dist/Tests/Server/Services/LogAggregationService.test.js +0 -75
  450. package/build/dist/Tests/Server/Services/LogAggregationService.test.js.map +0 -1
  451. package/build/dist/Tests/Server/Services/ProbeService.test.js +0 -127
  452. package/build/dist/Tests/Server/Services/ProbeService.test.js.map +0 -1
  453. package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js +0 -114
  454. package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js.map +0 -1
  455. package/build/dist/Tests/Server/Services/TeamMemberService.test.js +0 -106
  456. package/build/dist/Tests/Server/Services/TeamMemberService.test.js.map +0 -1
  457. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js +0 -50
  458. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js.map +0 -1
  459. package/build/dist/Tests/Server/TestingUtils/Init.js +0 -4
  460. package/build/dist/Tests/Server/TestingUtils/Init.js.map +0 -1
  461. package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js +0 -9
  462. package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js.map +0 -1
  463. package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js +0 -16
  464. package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js.map +0 -1
  465. package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js +0 -125
  466. package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js.map +0 -1
  467. package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js +0 -39
  468. package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js.map +0 -1
  469. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js +0 -20
  470. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js.map +0 -1
  471. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js +0 -31
  472. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js.map +0 -1
  473. package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js +0 -14
  474. package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js.map +0 -1
  475. package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js +0 -21
  476. package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js.map +0 -1
  477. package/build/dist/Tests/Server/TestingUtils/Services/Types.js +0 -2
  478. package/build/dist/Tests/Server/TestingUtils/Services/Types.js.map +0 -1
  479. package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js +0 -37
  480. package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js.map +0 -1
  481. package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js +0 -13
  482. package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js.map +0 -1
  483. package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js +0 -22
  484. package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js.map +0 -1
  485. package/build/dist/Tests/Server/Types/Domain.test.js +0 -78
  486. package/build/dist/Tests/Server/Types/Domain.test.js.map +0 -1
  487. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js +0 -94
  488. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js.map +0 -1
  489. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js +0 -459
  490. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js.map +0 -1
  491. package/build/dist/Tests/Server/Utils/Cookie.test.js +0 -83
  492. package/build/dist/Tests/Server/Utils/Cookie.test.js.map +0 -1
  493. package/build/dist/Tests/Server/Utils/CronTab.test.js +0 -29
  494. package/build/dist/Tests/Server/Utils/CronTab.test.js.map +0 -1
  495. package/build/dist/Tests/Server/Utils/JsonToCsv.test.js +0 -114
  496. package/build/dist/Tests/Server/Utils/JsonToCsv.test.js.map +0 -1
  497. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js +0 -606
  498. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js.map +0 -1
  499. package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js +0 -255
  500. package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js.map +0 -1
  501. package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js +0 -142
  502. package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js.map +0 -1
  503. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js +0 -122
  504. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js.map +0 -1
  505. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js +0 -0
  506. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js.map +0 -1
  507. package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js +0 -205
  508. package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js.map +0 -1
  509. package/build/dist/Tests/Spy.js +0 -4
  510. package/build/dist/Tests/Spy.js.map +0 -1
  511. package/build/dist/Tests/Types/API/ErrorResponse.test.js +0 -13
  512. package/build/dist/Tests/Types/API/ErrorResponse.test.js.map +0 -1
  513. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js +0 -33
  514. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js.map +0 -1
  515. package/build/dist/Tests/Types/API/HTTPMethod.test.js +0 -16
  516. package/build/dist/Tests/Types/API/HTTPMethod.test.js.map +0 -1
  517. package/build/dist/Tests/Types/API/Headers.test.js +0 -14
  518. package/build/dist/Tests/Types/API/Headers.test.js.map +0 -1
  519. package/build/dist/Tests/Types/API/Hostname.test.js +0 -22
  520. package/build/dist/Tests/Types/API/Hostname.test.js.map +0 -1
  521. package/build/dist/Tests/Types/API/Protocal.test.js +0 -19
  522. package/build/dist/Tests/Types/API/Protocal.test.js.map +0 -1
  523. package/build/dist/Tests/Types/API/Response.test.js +0 -14
  524. package/build/dist/Tests/Types/API/Response.test.js.map +0 -1
  525. package/build/dist/Tests/Types/API/ResponseType.test.js +0 -13
  526. package/build/dist/Tests/Types/API/ResponseType.test.js.map +0 -1
  527. package/build/dist/Tests/Types/API/Route.test.js +0 -30
  528. package/build/dist/Tests/Types/API/Route.test.js.map +0 -1
  529. package/build/dist/Tests/Types/API/StatusCode.test.js +0 -26
  530. package/build/dist/Tests/Types/API/StatusCode.test.js.map +0 -1
  531. package/build/dist/Tests/Types/API/URL.test.js +0 -33
  532. package/build/dist/Tests/Types/API/URL.test.js.map +0 -1
  533. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js +0 -34
  534. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js.map +0 -1
  535. package/build/dist/Tests/Types/Alerts/AlertType.test.js +0 -19
  536. package/build/dist/Tests/Types/Alerts/AlertType.test.js.map +0 -1
  537. package/build/dist/Tests/Types/AppEnvironment.test.js +0 -13
  538. package/build/dist/Tests/Types/AppEnvironment.test.js.map +0 -1
  539. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js +0 -13
  540. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js.map +0 -1
  541. package/build/dist/Tests/Types/ArrayUtil.test.js +0 -71
  542. package/build/dist/Tests/Types/ArrayUtil.test.js.map +0 -1
  543. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js +0 -181
  544. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js.map +0 -1
  545. package/build/dist/Tests/Types/BrandColors.test.js +0 -124
  546. package/build/dist/Tests/Types/BrandColors.test.js.map +0 -1
  547. package/build/dist/Tests/Types/Char.test.js +0 -82
  548. package/build/dist/Tests/Types/Char.test.js.map +0 -1
  549. package/build/dist/Tests/Types/Code/CodeType.test.js +0 -13
  550. package/build/dist/Tests/Types/Code/CodeType.test.js.map +0 -1
  551. package/build/dist/Tests/Types/Color.test.js +0 -44
  552. package/build/dist/Tests/Types/Color.test.js.map +0 -1
  553. package/build/dist/Tests/Types/Company/CompanySize.test.js +0 -20
  554. package/build/dist/Tests/Types/Company/CompanySize.test.js.map +0 -1
  555. package/build/dist/Tests/Types/Company/JobRole.test.js +0 -22
  556. package/build/dist/Tests/Types/Company/JobRole.test.js.map +0 -1
  557. package/build/dist/Tests/Types/Countries.test.js +0 -249
  558. package/build/dist/Tests/Types/Countries.test.js.map +0 -1
  559. package/build/dist/Tests/Types/Database/ColumnLength.test.js +0 -43
  560. package/build/dist/Tests/Types/Database/ColumnLength.test.js.map +0 -1
  561. package/build/dist/Tests/Types/Database/ColumnType.test.js +0 -79
  562. package/build/dist/Tests/Types/Database/ColumnType.test.js.map +0 -1
  563. package/build/dist/Tests/Types/Database/Columns.test.js +0 -20
  564. package/build/dist/Tests/Types/Database/Columns.test.js.map +0 -1
  565. package/build/dist/Tests/Types/Database/CompareBase.test.js +0 -37
  566. package/build/dist/Tests/Types/Database/CompareBase.test.js.map +0 -1
  567. package/build/dist/Tests/Types/Database/Date.test.js +0 -62
  568. package/build/dist/Tests/Types/Database/Date.test.js.map +0 -1
  569. package/build/dist/Tests/Types/Database/EqualTo.test.js +0 -65
  570. package/build/dist/Tests/Types/Database/EqualTo.test.js.map +0 -1
  571. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js +0 -62
  572. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js.map +0 -1
  573. package/build/dist/Tests/Types/Database/InBetween.test.js +0 -72
  574. package/build/dist/Tests/Types/Database/InBetween.test.js.map +0 -1
  575. package/build/dist/Tests/Types/Database/LimitMax.test.js +0 -18
  576. package/build/dist/Tests/Types/Database/LimitMax.test.js.map +0 -1
  577. package/build/dist/Tests/Types/Database/NotEqual.test.js +0 -19
  578. package/build/dist/Tests/Types/Database/NotEqual.test.js.map +0 -1
  579. package/build/dist/Tests/Types/Database/Search.test.js +0 -10
  580. package/build/dist/Tests/Types/Database/Search.test.js.map +0 -1
  581. package/build/dist/Tests/Types/DatabaseType.test.js +0 -7
  582. package/build/dist/Tests/Types/DatabaseType.test.js.map +0 -1
  583. package/build/dist/Tests/Types/Date.test.js +0 -194
  584. package/build/dist/Tests/Types/Date.test.js.map +0 -1
  585. package/build/dist/Tests/Types/Dictionary.test.js +0 -25
  586. package/build/dist/Tests/Types/Dictionary.test.js.map +0 -1
  587. package/build/dist/Tests/Types/Domain.test.js +0 -54
  588. package/build/dist/Tests/Types/Domain.test.js.map +0 -1
  589. package/build/dist/Tests/Types/Email/Email.test.js +0 -51
  590. package/build/dist/Tests/Types/Email/Email.test.js.map +0 -1
  591. package/build/dist/Tests/Types/EmailWithName.test.js +0 -36
  592. package/build/dist/Tests/Types/EmailWithName.test.js.map +0 -1
  593. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js +0 -7
  594. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js.map +0 -1
  595. package/build/dist/Tests/Types/Exception/ApiException.test.js +0 -10
  596. package/build/dist/Tests/Types/Exception/ApiException.test.js.map +0 -1
  597. package/build/dist/Tests/Types/Exception/BadDataException.test.js +0 -12
  598. package/build/dist/Tests/Types/Exception/BadDataException.test.js.map +0 -1
  599. package/build/dist/Tests/Types/Exception/BadOperationException.test.js +0 -10
  600. package/build/dist/Tests/Types/Exception/BadOperationException.test.js.map +0 -1
  601. package/build/dist/Tests/Types/Exception/BadRequestException.test.js +0 -12
  602. package/build/dist/Tests/Types/Exception/BadRequestException.test.js.map +0 -1
  603. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js +0 -10
  604. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js.map +0 -1
  605. package/build/dist/Tests/Types/Exception/Exception.test.js +0 -15
  606. package/build/dist/Tests/Types/Exception/Exception.test.js.map +0 -1
  607. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js +0 -12
  608. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js.map +0 -1
  609. package/build/dist/Tests/Types/File.test.js +0 -22
  610. package/build/dist/Tests/Types/File.test.js.map +0 -1
  611. package/build/dist/Tests/Types/HashedString.test.js +0 -51
  612. package/build/dist/Tests/Types/HashedString.test.js.map +0 -1
  613. package/build/dist/Tests/Types/Html.test.js +0 -8
  614. package/build/dist/Tests/Types/Html.test.js.map +0 -1
  615. package/build/dist/Tests/Types/IP/IP.test.js +0 -65
  616. package/build/dist/Tests/Types/IP/IP.test.js.map +0 -1
  617. package/build/dist/Tests/Types/IP/IPType.test.js +0 -10
  618. package/build/dist/Tests/Types/IP/IPType.test.js.map +0 -1
  619. package/build/dist/Tests/Types/IP/IPv4.test.js +0 -17
  620. package/build/dist/Tests/Types/IP/IPv4.test.js.map +0 -1
  621. package/build/dist/Tests/Types/IP/IPv6.test.js +0 -17
  622. package/build/dist/Tests/Types/IP/IPv6.test.js.map +0 -1
  623. package/build/dist/Tests/Types/JSON.test.js +0 -37
  624. package/build/dist/Tests/Types/JSON.test.js.map +0 -1
  625. package/build/dist/Tests/Types/JSONFunctions.test.js +0 -38
  626. package/build/dist/Tests/Types/JSONFunctions.test.js.map +0 -1
  627. package/build/dist/Tests/Types/ListData.test.js +0 -34
  628. package/build/dist/Tests/Types/ListData.test.js.map +0 -1
  629. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js +0 -121
  630. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js.map +0 -1
  631. package/build/dist/Tests/Types/Name.test.js +0 -26
  632. package/build/dist/Tests/Types/Name.test.js.map +0 -1
  633. package/build/dist/Tests/Types/ObjectID.test.js +0 -12
  634. package/build/dist/Tests/Types/ObjectID.test.js.map +0 -1
  635. package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js +0 -530
  636. package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js.map +0 -1
  637. package/build/dist/Tests/Types/Permission.test.js +0 -99
  638. package/build/dist/Tests/Types/Permission.test.js.map +0 -1
  639. package/build/dist/Tests/Types/Phone.test.js +0 -37
  640. package/build/dist/Tests/Types/Phone.test.js.map +0 -1
  641. package/build/dist/Tests/Types/Port.test.js +0 -35
  642. package/build/dist/Tests/Types/Port.test.js.map +0 -1
  643. package/build/dist/Tests/Types/PositiveNumber.test.js +0 -101
  644. package/build/dist/Tests/Types/PositiveNumber.test.js.map +0 -1
  645. package/build/dist/Tests/Types/SecuritySeverity.test.js +0 -16
  646. package/build/dist/Tests/Types/SecuritySeverity.test.js.map +0 -1
  647. package/build/dist/Tests/Types/SerializableObject.test.js +0 -37
  648. package/build/dist/Tests/Types/SerializableObject.test.js.map +0 -1
  649. package/build/dist/Tests/Types/Sleep.test.js +0 -14
  650. package/build/dist/Tests/Types/Sleep.test.js.map +0 -1
  651. package/build/dist/Tests/Types/Text.test.js +0 -8
  652. package/build/dist/Tests/Types/Text.test.js.map +0 -1
  653. package/build/dist/Tests/Types/Timezone.test.js +0 -596
  654. package/build/dist/Tests/Types/Timezone.test.js.map +0 -1
  655. package/build/dist/Tests/Types/Typeof.test.js +0 -16
  656. package/build/dist/Tests/Types/Typeof.test.js.map +0 -1
  657. package/build/dist/Tests/Types/UserType.test.js +0 -16
  658. package/build/dist/Tests/Types/UserType.test.js.map +0 -1
  659. package/build/dist/Tests/Types/Version.test.js +0 -35
  660. package/build/dist/Tests/Types/Version.test.js.map +0 -1
  661. package/build/dist/Tests/Types/XML.test.js +0 -35
  662. package/build/dist/Tests/Types/XML.test.js.map +0 -1
  663. package/build/dist/Tests/UI/Components/404.test.js +0 -59
  664. package/build/dist/Tests/UI/Components/404.test.js.map +0 -1
  665. package/build/dist/Tests/UI/Components/Alert.test.js +0 -83
  666. package/build/dist/Tests/UI/Components/Alert.test.js.map +0 -1
  667. package/build/dist/Tests/UI/Components/Badge.test.js +0 -59
  668. package/build/dist/Tests/UI/Components/Badge.test.js.map +0 -1
  669. package/build/dist/Tests/UI/Components/BasicForm.test.js +0 -92
  670. package/build/dist/Tests/UI/Components/BasicForm.test.js.map +0 -1
  671. package/build/dist/Tests/UI/Components/Breadcrumbs.test.js +0 -69
  672. package/build/dist/Tests/UI/Components/Breadcrumbs.test.js.map +0 -1
  673. package/build/dist/Tests/UI/Components/Button.test.js +0 -104
  674. package/build/dist/Tests/UI/Components/Button.test.js.map +0 -1
  675. package/build/dist/Tests/UI/Components/Card.test.js +0 -81
  676. package/build/dist/Tests/UI/Components/Card.test.js.map +0 -1
  677. package/build/dist/Tests/UI/Components/ColorViewer.test.js +0 -42
  678. package/build/dist/Tests/UI/Components/ColorViewer.test.js.map +0 -1
  679. package/build/dist/Tests/UI/Components/ComponentsModal.test.js +0 -233
  680. package/build/dist/Tests/UI/Components/ComponentsModal.test.js.map +0 -1
  681. package/build/dist/Tests/UI/Components/ConfirmModal.test.js +0 -57
  682. package/build/dist/Tests/UI/Components/ConfirmModal.test.js.map +0 -1
  683. package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js +0 -84
  684. package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js.map +0 -1
  685. package/build/dist/Tests/UI/Components/Dropdown.test.js +0 -146
  686. package/build/dist/Tests/UI/Components/Dropdown.test.js.map +0 -1
  687. package/build/dist/Tests/UI/Components/DuplicateModel.test.js +0 -229
  688. package/build/dist/Tests/UI/Components/DuplicateModel.test.js.map +0 -1
  689. package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js +0 -26
  690. package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js.map +0 -1
  691. package/build/dist/Tests/UI/Components/ErrorBoundary.test.js +0 -32
  692. package/build/dist/Tests/UI/Components/ErrorBoundary.test.js.map +0 -1
  693. package/build/dist/Tests/UI/Components/FilePicker.test.js +0 -342
  694. package/build/dist/Tests/UI/Components/FilePicker.test.js.map +0 -1
  695. package/build/dist/Tests/UI/Components/HiddenText.test.js +0 -50
  696. package/build/dist/Tests/UI/Components/HiddenText.test.js.map +0 -1
  697. package/build/dist/Tests/UI/Components/Input.test.js +0 -223
  698. package/build/dist/Tests/UI/Components/Input.test.js.map +0 -1
  699. package/build/dist/Tests/UI/Components/Item.test.js +0 -58
  700. package/build/dist/Tests/UI/Components/Item.test.js.map +0 -1
  701. package/build/dist/Tests/UI/Components/List.test.js +0 -83
  702. package/build/dist/Tests/UI/Components/List.test.js.map +0 -1
  703. package/build/dist/Tests/UI/Components/Loader.test.js +0 -19
  704. package/build/dist/Tests/UI/Components/Loader.test.js.map +0 -1
  705. package/build/dist/Tests/UI/Components/MarkdownEditor.test.js +0 -85
  706. package/build/dist/Tests/UI/Components/MarkdownEditor.test.js.map +0 -1
  707. package/build/dist/Tests/UI/Components/MasterPage.test.js +0 -46
  708. package/build/dist/Tests/UI/Components/MasterPage.test.js.map +0 -1
  709. package/build/dist/Tests/UI/Components/Modal.test.js +0 -127
  710. package/build/dist/Tests/UI/Components/Modal.test.js.map +0 -1
  711. package/build/dist/Tests/UI/Components/NavBar.test.js +0 -52
  712. package/build/dist/Tests/UI/Components/NavBar.test.js.map +0 -1
  713. package/build/dist/Tests/UI/Components/OrderedStatesList.test.js +0 -86
  714. package/build/dist/Tests/UI/Components/OrderedStatesList.test.js.map +0 -1
  715. package/build/dist/Tests/UI/Components/Pagination.test.js +0 -137
  716. package/build/dist/Tests/UI/Components/Pagination.test.js.map +0 -1
  717. package/build/dist/Tests/UI/Components/Pill.test.js +0 -55
  718. package/build/dist/Tests/UI/Components/Pill.test.js.map +0 -1
  719. package/build/dist/Tests/UI/Components/Probe.test.js +0 -52
  720. package/build/dist/Tests/UI/Components/Probe.test.js.map +0 -1
  721. package/build/dist/Tests/UI/Components/ProgressBar.test.js +0 -41
  722. package/build/dist/Tests/UI/Components/ProgressBar.test.js.map +0 -1
  723. package/build/dist/Tests/UI/Components/RadioButtons.test.js +0 -66
  724. package/build/dist/Tests/UI/Components/RadioButtons.test.js.map +0 -1
  725. package/build/dist/Tests/UI/Components/SideMenuItem.test.js +0 -99
  726. package/build/dist/Tests/UI/Components/SideMenuItem.test.js.map +0 -1
  727. package/build/dist/Tests/UI/Components/SideOver.test.js +0 -77
  728. package/build/dist/Tests/UI/Components/SideOver.test.js.map +0 -1
  729. package/build/dist/Tests/UI/Components/Tabs.test.js +0 -56
  730. package/build/dist/Tests/UI/Components/Tabs.test.js.map +0 -1
  731. package/build/dist/Tests/UI/Components/Template/Template.test.js +0 -15
  732. package/build/dist/Tests/UI/Components/Template/Template.test.js.map +0 -1
  733. package/build/dist/Tests/UI/Components/TextArea.test.js +0 -112
  734. package/build/dist/Tests/UI/Components/TextArea.test.js.map +0 -1
  735. package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js +0 -352
  736. package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js.map +0 -1
  737. package/build/dist/Tests/UI/Components/Toast.test.js +0 -48
  738. package/build/dist/Tests/UI/Components/Toast.test.js.map +0 -1
  739. package/build/dist/Tests/UI/Components/Toggle.test.js +0 -95
  740. package/build/dist/Tests/UI/Components/Toggle.test.js.map +0 -1
  741. package/build/dist/Tests/UI/Components/TopSection.test.js +0 -33
  742. package/build/dist/Tests/UI/Components/TopSection.test.js.map +0 -1
  743. package/build/dist/Tests/UI/Components/XAxis.test.js +0 -21
  744. package/build/dist/Tests/UI/Components/XAxis.test.js.map +0 -1
  745. package/build/dist/Tests/UI/Index.js +0 -2
  746. package/build/dist/Tests/UI/Index.js.map +0 -1
  747. package/build/dist/Tests/UI/Mocks/FileMock.js +0 -3
  748. package/build/dist/Tests/UI/Mocks/FileMock.js.map +0 -1
  749. package/build/dist/Tests/Utils/API.test.js +0 -399
  750. package/build/dist/Tests/Utils/API.test.js.map +0 -1
  751. package/build/dist/Tests/Utils/Analytics.test.js +0 -67
  752. package/build/dist/Tests/Utils/Analytics.test.js.map +0 -1
  753. package/build/dist/Tests/Utils/CronTime.test.js +0 -22
  754. package/build/dist/Tests/Utils/CronTime.test.js.map +0 -1
  755. package/build/dist/Tests/Utils/Faker.test.js +0 -27
  756. package/build/dist/Tests/Utils/Faker.test.js.map +0 -1
  757. package/build/dist/Tests/Utils/MetricUnitUtil.test.js +0 -187
  758. package/build/dist/Tests/Utils/MetricUnitUtil.test.js.map +0 -1
  759. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js +0 -224
  760. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js.map +0 -1
  761. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js +0 -180
  762. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js.map +0 -1
  763. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js +0 -142
  764. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js.map +0 -1
  765. package/build/dist/Tests/Utils/Slug.test.js +0 -20
  766. package/build/dist/Tests/Utils/Slug.test.js.map +0 -1
  767. package/build/dist/Tests/Utils/UUID.test.js +0 -48
  768. package/build/dist/Tests/Utils/UUID.test.js.map +0 -1
  769. package/build/dist/Tests/jest.setup.js +0 -30
  770. package/build/dist/Tests/jest.setup.js.map +0 -1
  771. package/build/dist/Types/Profile/ProfileMetricType.js +0 -17
  772. package/build/dist/Types/Profile/ProfileMetricType.js.map +0 -1
@@ -6,6 +6,11 @@ import TraceAggregationType from "./TraceAggregationType";
6
6
  * match. Each source is aliased (A, B, C, ...) and referenced from the rule's
7
7
  * expression string.
8
8
  */
9
+ export interface TraceRecordingRuleAttributeFilter {
10
+ key: string;
11
+ value: string;
12
+ }
13
+
9
14
  export interface TraceRecordingRuleSource {
10
15
  alias: string;
11
16
  aggregationType: TraceAggregationType;
@@ -13,8 +18,16 @@ export interface TraceRecordingRuleSource {
13
18
  spanNameRegex?: string;
14
19
  spanKind?: string;
15
20
  onlyErrors?: boolean;
21
+ /*
22
+ * Legacy single attribute filter — superseded by `filterAttributes` but
23
+ * still honored for rules saved before multi-filter support. Use
24
+ * TraceRecordingRuleDefinitionUtil.getSourceAttributeFilters to read the
25
+ * combined set.
26
+ */
16
27
  filterAttributeKey?: string;
17
28
  filterAttributeValue?: string;
29
+ // Multiple attribute equality filters — ANDed (e.g. http.route AND url.host).
30
+ filterAttributes?: Array<TraceRecordingRuleAttributeFilter>;
18
31
  }
19
32
 
20
33
  /*
@@ -78,6 +91,11 @@ export class TraceRecordingRuleDefinitionUtil {
78
91
  label: "p50 Duration (s)",
79
92
  description: "Median span duration.",
80
93
  },
94
+ {
95
+ value: TraceAggregationType.P90DurationSeconds,
96
+ label: "p90 Duration (s)",
97
+ description: "90th percentile span duration.",
98
+ },
81
99
  {
82
100
  value: TraceAggregationType.P95DurationSeconds,
83
101
  label: "p95 Duration (s)",
@@ -112,6 +130,38 @@ export class TraceRecordingRuleDefinitionUtil {
112
130
  ];
113
131
  }
114
132
 
133
+ /*
134
+ * Combined attribute filters for a source: the multi-filter array plus the
135
+ * legacy single pair (deduplicated by key, array entries win).
136
+ */
137
+ public static getSourceAttributeFilters(
138
+ source: TraceRecordingRuleSource,
139
+ ): Array<TraceRecordingRuleAttributeFilter> {
140
+ const filters: Array<TraceRecordingRuleAttributeFilter> = [];
141
+ const seenKeys: Set<string> = new Set<string>();
142
+
143
+ for (const filter of source.filterAttributes || []) {
144
+ if (!filter || typeof filter !== "object") {
145
+ continue;
146
+ }
147
+ const key: string = (filter.key || "").trim();
148
+ const value: string = (filter.value || "").trim();
149
+ if (!key || !value || seenKeys.has(key)) {
150
+ continue;
151
+ }
152
+ seenKeys.add(key);
153
+ filters.push({ key, value });
154
+ }
155
+
156
+ const legacyKey: string = (source.filterAttributeKey || "").trim();
157
+ const legacyValue: string = (source.filterAttributeValue || "").trim();
158
+ if (legacyKey && legacyValue && !seenKeys.has(legacyKey)) {
159
+ filters.push({ key: legacyKey, value: legacyValue });
160
+ }
161
+
162
+ return filters;
163
+ }
164
+
115
165
  public static getNextAlias(
116
166
  sources: Array<TraceRecordingRuleSource> | undefined,
117
167
  ): string {
@@ -161,6 +211,12 @@ export class TraceRecordingRuleDefinitionUtil {
161
211
  const aliases: Set<string> = new Set<string>();
162
212
  for (let i: number = 0; i < sources.length; i++) {
163
213
  const source: TraceRecordingRuleSource = sources[i]!;
214
+
215
+ // Definitions arrive as JSON (deep links, API writes) — never throw.
216
+ if (!source || typeof source !== "object") {
217
+ return `Source #${i + 1}: Invalid source.`;
218
+ }
219
+
164
220
  const prefix: string = `Source ${source.alias || `#${i + 1}`}: `;
165
221
 
166
222
  if (!source.alias || !ALIAS_REGEX.test(source.alias)) {
@@ -184,6 +240,24 @@ export class TraceRecordingRuleDefinitionUtil {
184
240
  if (hasFilterKey !== hasFilterValue) {
185
241
  return `${prefix}Attribute filter needs both a key and a value (or leave both empty).`;
186
242
  }
243
+
244
+ if (
245
+ source.filterAttributes !== undefined &&
246
+ !Array.isArray(source.filterAttributes)
247
+ ) {
248
+ return `${prefix}Invalid attribute filters.`;
249
+ }
250
+
251
+ for (const filter of source.filterAttributes || []) {
252
+ if (!filter || typeof filter !== "object") {
253
+ return `${prefix}Invalid attribute filter row.`;
254
+ }
255
+ const hasKey: boolean = Boolean(filter.key?.trim());
256
+ const hasValue: boolean = Boolean(filter.value?.trim());
257
+ if (hasKey !== hasValue) {
258
+ return `${prefix}Attribute filter needs both a key and a value (or remove the row).`;
259
+ }
260
+ }
187
261
  }
188
262
 
189
263
  const expression: string = (definition.expression || "").trim();
@@ -208,9 +208,9 @@ function useBulkLabelActions<T extends BaseModel>(
208
208
  * modal offers only labels that can really be removed instead of every
209
209
  * label in the project.
210
210
  */
211
- const loadLabelsForSelectedItems: (
211
+ const loadLabelsForSelectedItems: (items: Array<T>) => Promise<void> = async (
212
212
  items: Array<T>,
213
- ) => Promise<void> = async (items: Array<T>): Promise<void> => {
213
+ ): Promise<void> => {
214
214
  setIsLoadingRemoveLabels(true);
215
215
 
216
216
  try {
@@ -259,20 +259,20 @@ function useBulkLabelActions<T extends BaseModel>(
259
259
  }
260
260
  }
261
261
 
262
- const options: Array<DropdownOption> = Array.from(
263
- labelById.values(),
264
- ).map((label: Label) => {
265
- const option: DropdownOption = {
266
- label: label.name || "",
267
- value: label._id?.toString() || "",
268
- };
262
+ const options: Array<DropdownOption> = Array.from(labelById.values()).map(
263
+ (label: Label) => {
264
+ const option: DropdownOption = {
265
+ label: label.name || "",
266
+ value: label._id?.toString() || "",
267
+ };
269
268
 
270
- if (label.color) {
271
- option.color = label.color;
272
- }
269
+ if (label.color) {
270
+ option.color = label.color;
271
+ }
273
272
 
274
- return option;
275
- });
273
+ return option;
274
+ },
275
+ );
276
276
 
277
277
  options.sort((a: DropdownOption, b: DropdownOption) => {
278
278
  return a.label.localeCompare(b.label);
@@ -40,6 +40,7 @@ import Radio, { RadioValue } from "../../Radio/Radio";
40
40
  import { BasicRadioButtonOption } from "../../RadioButtons/BasicRadioButtons";
41
41
  import HorizontalRule from "../../HorizontalRule/HorizontalRule";
42
42
  import MarkdownEditor from "../../Markdown.tsx/MarkdownEditor";
43
+ import useTranslateValue from "../../../Utils/Translation";
43
44
 
44
45
  export interface ComponentProps<T extends GenericObject> {
45
46
  field: Field<T>;
@@ -61,6 +62,11 @@ const FormField: <T extends GenericObject>(
61
62
  ) => ReactElement = <T extends GenericObject>(
62
63
  props: ComponentProps<T>,
63
64
  ): ReactElement => {
65
+ const { translateString } = useTranslateValue();
66
+ const translatedPlaceholder: string | undefined = translateString(
67
+ props.field.placeholder,
68
+ );
69
+
64
70
  type onChangeFunction = (value: JSONValue) => void;
65
71
 
66
72
  const onChange: onChangeFunction = (value: JSONValue): void => {
@@ -337,7 +343,7 @@ const FormField: <T extends GenericObject>(
337
343
  (props.field.defaultValue as any) ||
338
344
  undefined
339
345
  }
340
- placeholder={props.field.placeholder || undefined}
346
+ placeholder={translatedPlaceholder || undefined}
341
347
  />
342
348
  )}
343
349
 
@@ -351,7 +357,7 @@ const FormField: <T extends GenericObject>(
351
357
  props.setFieldTouched(props.fieldName, true);
352
358
  }}
353
359
  tabIndex={index}
354
- placeholder={props.field.placeholder || ""}
360
+ placeholder={translatedPlaceholder || ""}
355
361
  initialValue={
356
362
  props.currentValues &&
357
363
  (props.currentValues as any)[props.fieldName]
@@ -371,7 +377,7 @@ const FormField: <T extends GenericObject>(
371
377
  props.setFieldTouched(props.fieldName, true);
372
378
  }}
373
379
  tabIndex={index}
374
- placeholder={props.field.placeholder || ""}
380
+ placeholder={translatedPlaceholder || ""}
375
381
  initialValue={
376
382
  props.currentValues &&
377
383
  (props.currentValues as any)[props.fieldName]
@@ -414,7 +420,7 @@ const FormField: <T extends GenericObject>(
414
420
  labelField={props.field.dropdownModal.labelField}
415
421
  valueField={props.field.dropdownModal.valueField}
416
422
  options={props.field.dropdownOptions || []}
417
- placeholder={props.field.placeholder || ""}
423
+ placeholder={translatedPlaceholder || ""}
418
424
  value={
419
425
  props.currentValues &&
420
426
  (props.currentValues as any)[props.fieldName]
@@ -442,7 +448,7 @@ const FormField: <T extends GenericObject>(
442
448
  FormFieldSchemaType.MultiSelectDropdown
443
449
  }
444
450
  options={props.field.dropdownOptions || []}
445
- placeholder={props.field.placeholder || ""}
451
+ placeholder={translatedPlaceholder || ""}
446
452
  value={
447
453
  props.currentValues &&
448
454
  (props.currentValues as any)[props.fieldName]
@@ -585,7 +591,7 @@ const FormField: <T extends GenericObject>(
585
591
  ? (props.currentValues as any)[props.fieldName]
586
592
  : ""
587
593
  }
588
- placeholder={props.field.placeholder || ""}
594
+ placeholder={translatedPlaceholder || ""}
589
595
  />
590
596
  )}
591
597
 
@@ -614,7 +620,7 @@ const FormField: <T extends GenericObject>(
614
620
  ? (props.currentValues as any)[props.fieldName]
615
621
  : ""
616
622
  }
617
- placeholder={props.field.placeholder || ""}
623
+ placeholder={translatedPlaceholder || ""}
618
624
  />
619
625
  )}
620
626
 
@@ -637,7 +643,7 @@ const FormField: <T extends GenericObject>(
637
643
  ? (props.currentValues as any)[props.fieldName]
638
644
  : ""
639
645
  }
640
- placeholder={props.field.placeholder || ""}
646
+ placeholder={translatedPlaceholder || ""}
641
647
  />
642
648
  )}
643
649
 
@@ -660,7 +666,7 @@ const FormField: <T extends GenericObject>(
660
666
  ? (props.currentValues as any)[props.fieldName]
661
667
  : "",
662
668
 
663
- placeholder: props.field.placeholder || "",
669
+ placeholder: translatedPlaceholder || "",
664
670
  })}
665
671
 
666
672
  {(props.field.fieldType === FormFieldSchemaType.HTML ||
@@ -684,7 +690,7 @@ const FormField: <T extends GenericObject>(
684
690
  ? (props.currentValues as any)[props.fieldName]
685
691
  : ""
686
692
  }
687
- placeholder={props.field.placeholder || ""}
693
+ placeholder={translatedPlaceholder || ""}
688
694
  />
689
695
  )}
690
696
 
@@ -741,7 +747,7 @@ const FormField: <T extends GenericObject>(
741
747
  ? []
742
748
  : undefined
743
749
  }
744
- placeholder={props.field.placeholder || ""}
750
+ placeholder={translatedPlaceholder || ""}
745
751
  />
746
752
  )}
747
753
 
@@ -849,7 +855,7 @@ const FormField: <T extends GenericObject>(
849
855
  ? (props.currentValues as any)[props.fieldName]
850
856
  : props.field.defaultValue || ""
851
857
  }
852
- placeholder={props.field.placeholder || ""}
858
+ placeholder={translatedPlaceholder || ""}
853
859
  />
854
860
  )}
855
861
  </div>
@@ -1,5 +1,6 @@
1
1
  // Tailwind
2
2
  import { Logger } from "../../Utils/Logger";
3
+ import useTranslateValue from "../../Utils/Translation";
3
4
  import Icon from "../Icon/Icon";
4
5
  import OneUptimeDate from "../../../Types/Date";
5
6
  import IconProp from "../../../Types/Icon/IconProp";
@@ -46,6 +47,7 @@ export interface ComponentProps {
46
47
  const Input: FunctionComponent<ComponentProps> = (
47
48
  props: ComponentProps,
48
49
  ): ReactElement => {
50
+ const { translateString } = useTranslateValue();
49
51
  let className: string = "";
50
52
 
51
53
  if (!props.className) {
@@ -199,7 +201,7 @@ const Input: FunctionComponent<ComponentProps> = (
199
201
  ? "1"
200
202
  : undefined
201
203
  }
202
- placeholder={props.placeholder}
204
+ placeholder={translateString(props.placeholder)}
203
205
  className={className}
204
206
  onBlur={() => {
205
207
  if (props.onBlur) {
@@ -466,7 +466,7 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
466
466
  * Logs without a service.name are tagged with the projectId
467
467
  * (ServiceType.Unknown) and have no Service row. Register a
468
468
  * synthetic "Unknown Service" keyed by the projectId so the
469
- * serviceId -> name resolution and the serviceId facet render
469
+ * primaryEntityId -> name resolution and the service facet render
470
470
  * "Unknown Service" instead of a raw id. Harmless when no logs
471
471
  * are unattributed — nothing resolves against it.
472
472
  */
@@ -631,17 +631,17 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
631
631
 
632
632
  // Resolve human-readable service name to UUID if needed
633
633
  if (
634
- queryFilter["serviceId"] &&
635
- typeof queryFilter["serviceId"] === "string"
634
+ queryFilter["primaryEntityId"] &&
635
+ typeof queryFilter["primaryEntityId"] === "string"
636
636
  ) {
637
- const serviceName: string = queryFilter["serviceId"] as string;
637
+ const serviceName: string = queryFilter["primaryEntityId"] as string;
638
638
  const resolvedId: string | undefined = resolveServiceNameToId(
639
639
  serviceName,
640
640
  serviceMap,
641
641
  );
642
642
 
643
643
  if (resolvedId) {
644
- queryFilter["serviceId"] = resolvedId;
644
+ queryFilter["primaryEntityId"] = resolvedId;
645
645
  }
646
646
  }
647
647
 
@@ -824,7 +824,7 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
824
824
  }
825
825
 
826
826
  return props.activeFilters.map((filter: ActiveFilter): ActiveFilter => {
827
- if (filter.facetKey === "serviceId" && serviceMap[filter.value]) {
827
+ if (filter.facetKey === "primaryEntityId" && serviceMap[filter.value]) {
828
828
  const service: Service | undefined = serviceMap[filter.value];
829
829
  return {
830
830
  ...filter,
@@ -870,7 +870,7 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
870
870
  ]);
871
871
 
872
872
  /*
873
- * Replace serviceId UUIDs with human-readable names in value suggestions,
873
+ * Replace primaryEntityId UUIDs with human-readable names in value suggestions,
874
874
  * and merge in the lazily-fetched attribute value suggestions.
875
875
  * Must be before early returns to maintain consistent hook call order.
876
876
  */
@@ -889,8 +889,11 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
889
889
  ...attributeValueSuggestions,
890
890
  };
891
891
 
892
- if (suggestions["serviceId"] && Object.keys(serviceMap).length > 0) {
893
- suggestions["serviceId"] = suggestions["serviceId"].map(
892
+ if (
893
+ suggestions["primaryEntityId"] &&
894
+ Object.keys(serviceMap).length > 0
895
+ ) {
896
+ suggestions["primaryEntityId"] = suggestions["primaryEntityId"].map(
894
897
  (id: string) => {
895
898
  const service: Service | undefined = serviceMap[id];
896
899
  return service?.name || id;
@@ -65,7 +65,7 @@ interface ContextLog {
65
65
  time: string;
66
66
  severity: string;
67
67
  body: string;
68
- serviceId: string;
68
+ primaryEntityId: string;
69
69
  }
70
70
 
71
71
  const prepareBody: (body: string | undefined) => PreparedBody = (
@@ -106,7 +106,7 @@ function parseContextRow(row: JSONObject): ContextLog {
106
106
  time: String(row["time"] || ""),
107
107
  severity: String(row["severityText"] || "Unspecified"),
108
108
  body: String(row["body"] || ""),
109
- serviceId: String(row["serviceId"] || ""),
109
+ primaryEntityId: String(row["primaryEntityId"] || ""),
110
110
  };
111
111
  }
112
112
 
@@ -121,9 +121,10 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
121
121
  const [contextLoaded, setContextLoaded] = useState<boolean>(false);
122
122
 
123
123
  const variant: "floating" | "embedded" = props.variant || "floating";
124
- const serviceId: string = props.log.serviceId?.toString() || "";
125
- const service: Service | undefined = props.serviceMap[serviceId];
126
- const serviceName: string = service?.name || serviceId || "Unknown service";
124
+ const primaryEntityId: string = props.log.primaryEntityId?.toString() || "";
125
+ const service: Service | undefined = props.serviceMap[primaryEntityId];
126
+ const serviceName: string =
127
+ service?.name || primaryEntityId || "Unknown service";
127
128
  const serviceColor: string =
128
129
  (service?.serviceColor && service?.serviceColor.toString()) || "#64748b";
129
130
 
@@ -214,7 +215,7 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
214
215
 
215
216
  const loadContext: () => Promise<void> =
216
217
  useCallback(async (): Promise<void> => {
217
- if (!props.projectId || !serviceId || !props.log.time) {
218
+ if (!props.projectId || !primaryEntityId || !props.log.time) {
218
219
  setContextError("Missing project or service information for context.");
219
220
  return;
220
221
  }
@@ -230,7 +231,7 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
230
231
  ),
231
232
  data: {
232
233
  logId: props.log.getColumnValue("_id")?.toString() || "",
233
- serviceId: serviceId,
234
+ primaryEntityId: primaryEntityId,
234
235
  time: props.log.time
235
236
  ? OneUptimeDate.toString(props.log.time)
236
237
  : "",
@@ -260,7 +261,7 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
260
261
  } finally {
261
262
  setContextLoading(false);
262
263
  }
263
- }, [props.projectId, serviceId, props.log]);
264
+ }, [props.projectId, primaryEntityId, props.log]);
264
265
 
265
266
  useEffect(() => {
266
267
  if (activeTab === "context" && !contextLoaded && !contextLoading) {
@@ -622,7 +623,7 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
622
623
  time: props.log.time ? props.log.time.toString() : "",
623
624
  severity: props.log.severityText?.toString() || "Unspecified",
624
625
  body: props.log.body || "",
625
- serviceId: serviceId,
626
+ primaryEntityId: primaryEntityId,
626
627
  },
627
628
  true,
628
629
  )}
@@ -398,7 +398,7 @@ function extractCurrentWord(value: string): string {
398
398
  const FIELD_ALIAS_MAP: Record<string, string> = {
399
399
  severity: "severityText",
400
400
  level: "severityText",
401
- service: "serviceId",
401
+ service: "primaryEntityId",
402
402
  trace: "traceId",
403
403
  span: "spanId",
404
404
  };
@@ -85,7 +85,7 @@ const CHART_COLORS_MUTED: Array<string> = [
85
85
 
86
86
  const DIMENSION_OPTIONS: Array<{ value: string; label: string }> = [
87
87
  { value: "severityText", label: "Severity" },
88
- { value: "serviceId", label: "Service" },
88
+ { value: "primaryEntityId", label: "Service" },
89
89
  { value: "traceId", label: "Trace ID" },
90
90
  { value: "spanId", label: "Span ID" },
91
91
  ];
@@ -372,7 +372,7 @@ const LogsAnalyticsView: FunctionComponent<LogsAnalyticsViewProps> = (
372
372
  }
373
373
 
374
374
  const serviceFilterValues: Set<string> | undefined =
375
- props.appliedFacetFilters.get("serviceId");
375
+ props.appliedFacetFilters.get("primaryEntityId");
376
376
 
377
377
  if (serviceFilterValues && serviceFilterValues.size > 0) {
378
378
  (requestData as Record<string, unknown>)["serviceIds"] =
@@ -39,7 +39,7 @@ export interface LogsFacetSidebarProps {
39
39
  }
40
40
 
41
41
  const RESOURCE_FACET_KEYS: ReadonlySet<string> = new Set([
42
- "serviceId",
42
+ "primaryEntityId",
43
43
  "hostId",
44
44
  "dockerHostId",
45
45
  "kubernetesClusterId",
@@ -146,7 +146,7 @@ function buildClusterDisplayMap(
146
146
  function getFacetTitle(key: string): string {
147
147
  const titleMap: Record<string, string> = {
148
148
  severityText: "Severity",
149
- serviceId: "Service",
149
+ primaryEntityId: "Service",
150
150
  hostId: "Host",
151
151
  dockerHostId: "Docker Host",
152
152
  kubernetesClusterId: "Kubernetes Cluster",
@@ -187,7 +187,7 @@ const LogsFacetSidebar: FunctionComponent<LogsFacetSidebarProps> = (
187
187
  const facetKeys: Array<string> = useMemo(() => {
188
188
  const priorityKeys: Array<string> = [
189
189
  "severityText",
190
- "serviceId",
190
+ "primaryEntityId",
191
191
  "hostId",
192
192
  "dockerHostId",
193
193
  "kubernetesClusterId",
@@ -280,7 +280,7 @@ const LogsFacetSidebar: FunctionComponent<LogsFacetSidebarProps> = (
280
280
  let valueDisplayMap: Record<string, string> | undefined;
281
281
  let valueColorMap: Record<string, string> | undefined;
282
282
 
283
- if (key === "serviceId") {
283
+ if (key === "primaryEntityId") {
284
284
  valueDisplayMap = serviceDisplayMap;
285
285
  valueColorMap = serviceColorMap;
286
286
  } else if (key === "hostId") {
@@ -233,10 +233,12 @@ const LogsTable: FunctionComponent<LogsTableProps> = (
233
233
  <tbody className="divide-y divide-gray-100">
234
234
  {props.logs.map((log: Log, index: number) => {
235
235
  const rowId: string = resolveLogIdentifier(log, index);
236
- const serviceId: string = log.serviceId?.toString() || "";
237
- const service: Service | undefined = props.serviceMap[serviceId];
236
+ const primaryEntityId: string =
237
+ log.primaryEntityId?.toString() || "";
238
+ const service: Service | undefined =
239
+ props.serviceMap[primaryEntityId];
238
240
  const serviceName: string =
239
- service?.name || serviceId || "Unknown";
241
+ service?.name || primaryEntityId || "Unknown";
240
242
  const serviceColor: string =
241
243
  (service?.serviceColor && service?.serviceColor.toString()) ||
242
244
  "#94a3b8";