@oneuptime/common 10.0.80 → 10.0.83

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 (66) hide show
  1. package/Models/AnalyticsModels/Metric.ts +296 -2
  2. package/Server/Services/MetricService.ts +228 -3
  3. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +43 -3
  4. package/Server/Utils/Express.ts +5 -0
  5. package/Types/AnalyticsDatabase/TableColumnType.ts +1 -0
  6. package/Types/BaseDatabase/AggregationType.ts +35 -0
  7. package/Types/Monitor/IncomingMonitor/IncomingMonitorRequest.ts +1 -0
  8. package/UI/Components/Banner/Banner.tsx +7 -2
  9. package/UI/Components/Breadcrumbs/Breadcrumbs.tsx +6 -2
  10. package/UI/Components/Button/Button.tsx +10 -4
  11. package/UI/Components/Card/Card.tsx +11 -4
  12. package/UI/Components/EmptyState/EmptyState.tsx +6 -2
  13. package/UI/Components/EventItem/EventItem.tsx +9 -5
  14. package/UI/Components/Modal/ConfirmModal.tsx +5 -1
  15. package/UI/Components/Modal/Modal.tsx +21 -5
  16. package/UI/Components/ModelTable/BaseModelTable.tsx +7 -1
  17. package/UI/Components/Navbar/NavBar.tsx +6 -3
  18. package/UI/Components/Page/Page.tsx +6 -2
  19. package/UI/Components/SideMenu/SideMenu.tsx +18 -6
  20. package/UI/Components/SideMenu/SideMenuItem.tsx +9 -2
  21. package/UI/Components/SideMenu/SideMenuSection.tsx +4 -1
  22. package/UI/Utils/Translation.tsx +53 -0
  23. package/UI/esbuild-config.js +8 -0
  24. package/build/dist/Models/AnalyticsModels/Metric.js +250 -2
  25. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  26. package/build/dist/Server/Services/MetricService.js +183 -2
  27. package/build/dist/Server/Services/MetricService.js.map +1 -1
  28. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +36 -2
  29. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  30. package/build/dist/Server/Utils/Express.js +3 -0
  31. package/build/dist/Server/Utils/Express.js.map +1 -1
  32. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js +1 -0
  33. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js.map +1 -1
  34. package/build/dist/Types/BaseDatabase/AggregationType.js +30 -0
  35. package/build/dist/Types/BaseDatabase/AggregationType.js.map +1 -1
  36. package/build/dist/UI/Components/Banner/Banner.js +6 -2
  37. package/build/dist/UI/Components/Banner/Banner.js.map +1 -1
  38. package/build/dist/UI/Components/Breadcrumbs/Breadcrumbs.js +5 -2
  39. package/build/dist/UI/Components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  40. package/build/dist/UI/Components/Button/Button.js +10 -4
  41. package/build/dist/UI/Components/Button/Button.js.map +1 -1
  42. package/build/dist/UI/Components/Card/Card.js +6 -2
  43. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  44. package/build/dist/UI/Components/EmptyState/EmptyState.js +4 -2
  45. package/build/dist/UI/Components/EmptyState/EmptyState.js.map +1 -1
  46. package/build/dist/UI/Components/EventItem/EventItem.js +9 -7
  47. package/build/dist/UI/Components/EventItem/EventItem.js.map +1 -1
  48. package/build/dist/UI/Components/Modal/ConfirmModal.js +4 -1
  49. package/build/dist/UI/Components/Modal/ConfirmModal.js.map +1 -1
  50. package/build/dist/UI/Components/Modal/Modal.js +13 -3
  51. package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
  52. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +7 -1
  53. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  54. package/build/dist/UI/Components/Navbar/NavBar.js +6 -3
  55. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  56. package/build/dist/UI/Components/Page/Page.js +5 -2
  57. package/build/dist/UI/Components/Page/Page.js.map +1 -1
  58. package/build/dist/UI/Components/SideMenu/SideMenu.js +12 -6
  59. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  60. package/build/dist/UI/Components/SideMenu/SideMenuItem.js +8 -2
  61. package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
  62. package/build/dist/UI/Components/SideMenu/SideMenuSection.js +4 -1
  63. package/build/dist/UI/Components/SideMenu/SideMenuSection.js.map +1 -1
  64. package/build/dist/UI/Utils/Translation.js +36 -0
  65. package/build/dist/UI/Utils/Translation.js.map +1 -0
  66. package/package.json +3 -1
@@ -0,0 +1,53 @@
1
+ import { ReactElement } from "react";
2
+ import { useTranslation } from "react-i18next";
3
+
4
+ export type TranslatableValue = string | ReactElement | undefined;
5
+
6
+ export interface UseTranslateValueResult {
7
+ translateValue: (value: TranslatableValue) => TranslatableValue;
8
+ translateString: (value: string | undefined) => string | undefined;
9
+ }
10
+
11
+ /**
12
+ * Hook that returns helpers to translate arbitrary user-facing strings using
13
+ * the active i18next instance.
14
+ *
15
+ * The translation lookup uses the entire string as a flat key (keySeparator and
16
+ * nsSeparator are disabled per call) so titles like "v1.0" or "Active Incidents"
17
+ * work without nested-key confusion. If no translation entry exists, the original
18
+ * string is returned.
19
+ */
20
+ const useTranslateValue: () => UseTranslateValueResult =
21
+ (): UseTranslateValueResult => {
22
+ const { t } = useTranslation();
23
+
24
+ const translateString: (value: string | undefined) => string | undefined = (
25
+ value: string | undefined,
26
+ ): string | undefined => {
27
+ if (typeof value !== "string" || value.length === 0) {
28
+ return value;
29
+ }
30
+ const translated: unknown = t(value, {
31
+ defaultValue: value,
32
+ keySeparator: false,
33
+ nsSeparator: false,
34
+ });
35
+ if (typeof translated !== "string") {
36
+ return value;
37
+ }
38
+ return translated;
39
+ };
40
+
41
+ const translateValue: (value: TranslatableValue) => TranslatableValue = (
42
+ value: TranslatableValue,
43
+ ): TranslatableValue => {
44
+ if (typeof value === "string") {
45
+ return translateString(value);
46
+ }
47
+ return value;
48
+ };
49
+
50
+ return { translateValue, translateString };
51
+ };
52
+
53
+ export default useTranslateValue;
@@ -230,6 +230,8 @@ function createConfig(options) {
230
230
  const isDev = process.env.NODE_ENV !== 'production';
231
231
  const isAnalyze = process.env.analyze === 'true';
232
232
  const reactRoot = resolvePackageRoot('react');
233
+ const reactI18nextRoot = resolvePackageRoot('react-i18next');
234
+ const i18nextRoot = resolvePackageRoot('i18next');
233
235
 
234
236
  return {
235
237
  entryPoints: [entryPoint],
@@ -252,6 +254,12 @@ function createConfig(options) {
252
254
  'react': reactRoot,
253
255
  'react/jsx-runtime': path.join(reactRoot, 'jsx-runtime.js'),
254
256
  'react/jsx-dev-runtime': path.join(reactRoot, 'jsx-dev-runtime.js'),
257
+ // Force a single instance of i18next/react-i18next so that translations
258
+ // initialized in the service entry are visible to Common UI components.
259
+ // Without this, Common's own node_modules copy gets a separate, never-
260
+ // initialized i18n singleton and useTranslation() returns the raw key.
261
+ 'react-i18next': reactI18nextRoot,
262
+ 'i18next': i18nextRoot,
255
263
  ...additionalAlias,
256
264
  },
257
265
  plugins: [createMermaidPlugin(), createRefractorCompatibilityPlugin(), createCSSPlugin(), createFileLoaderPlugin()],
@@ -16,6 +16,7 @@ export var MetricPointType;
16
16
  MetricPointType["Gauge"] = "Gauge";
17
17
  MetricPointType["Histogram"] = "Histogram";
18
18
  MetricPointType["ExponentialHistogram"] = "ExponentialHistogram";
19
+ MetricPointType["Summary"] = "Summary";
19
20
  })(MetricPointType || (MetricPointType = {}));
20
21
  export var ServiceType;
21
22
  (function (ServiceType) {
@@ -473,8 +474,147 @@ export default class Metric extends AnalyticsBaseModel {
473
474
  });
474
475
  const explicitBoundsColumn = new AnalyticsTableColumn({
475
476
  key: "explicitBounds",
476
- title: "Explicit Bonds",
477
- description: "Explicit Bonds",
477
+ title: "Explicit Bounds",
478
+ description: "Upper bounds (exclusive of the +inf overflow bucket) for each explicit-bucket histogram bucket. Stored as Float64 so sub-integer boundaries (e.g. 0.005, 0.01) survive ingest — the previous Array(Int64) representation silently truncated those to 0.",
479
+ required: true,
480
+ defaultValue: [],
481
+ type: TableColumnType.ArrayDecimal,
482
+ accessControl: {
483
+ read: [
484
+ Permission.ProjectOwner,
485
+ Permission.ProjectAdmin,
486
+ Permission.ProjectMember,
487
+ Permission.ReadTelemetryServiceLog,
488
+ ],
489
+ create: [
490
+ Permission.ProjectOwner,
491
+ Permission.ProjectAdmin,
492
+ Permission.ProjectMember,
493
+ Permission.CreateTelemetryServiceLog,
494
+ ],
495
+ update: [],
496
+ },
497
+ });
498
+ /*
499
+ * --- ExponentialHistogram-only columns ----------------------------------
500
+ * These are populated only when metricPointType = ExponentialHistogram.
501
+ * For other metric types they are left at their defaults (0 / []).
502
+ */
503
+ const scaleColumn = new AnalyticsTableColumn({
504
+ key: "scale",
505
+ title: "Scale",
506
+ description: "ExponentialHistogram resolution. base = 2^(2^-scale); bucket index `i` covers (base^i, base^(i+1)].",
507
+ required: false,
508
+ type: TableColumnType.Number,
509
+ accessControl: {
510
+ read: [
511
+ Permission.ProjectOwner,
512
+ Permission.ProjectAdmin,
513
+ Permission.ProjectMember,
514
+ Permission.ReadTelemetryServiceLog,
515
+ ],
516
+ create: [
517
+ Permission.ProjectOwner,
518
+ Permission.ProjectAdmin,
519
+ Permission.ProjectMember,
520
+ Permission.CreateTelemetryServiceLog,
521
+ ],
522
+ update: [],
523
+ },
524
+ });
525
+ const zeroCountColumn = new AnalyticsTableColumn({
526
+ key: "zeroCount",
527
+ title: "Zero Count",
528
+ description: "ExponentialHistogram count of values within the zero region (|v| <= zeroThreshold).",
529
+ required: false,
530
+ type: TableColumnType.BigNumber,
531
+ accessControl: {
532
+ read: [
533
+ Permission.ProjectOwner,
534
+ Permission.ProjectAdmin,
535
+ Permission.ProjectMember,
536
+ Permission.ReadTelemetryServiceLog,
537
+ ],
538
+ create: [
539
+ Permission.ProjectOwner,
540
+ Permission.ProjectAdmin,
541
+ Permission.ProjectMember,
542
+ Permission.CreateTelemetryServiceLog,
543
+ ],
544
+ update: [],
545
+ },
546
+ });
547
+ const positiveOffsetColumn = new AnalyticsTableColumn({
548
+ key: "positiveOffset",
549
+ title: "Positive Bucket Offset",
550
+ description: "Bucket index of the first entry in positiveBucketCounts (ExponentialHistogram).",
551
+ required: false,
552
+ type: TableColumnType.Number,
553
+ accessControl: {
554
+ read: [
555
+ Permission.ProjectOwner,
556
+ Permission.ProjectAdmin,
557
+ Permission.ProjectMember,
558
+ Permission.ReadTelemetryServiceLog,
559
+ ],
560
+ create: [
561
+ Permission.ProjectOwner,
562
+ Permission.ProjectAdmin,
563
+ Permission.ProjectMember,
564
+ Permission.CreateTelemetryServiceLog,
565
+ ],
566
+ update: [],
567
+ },
568
+ });
569
+ const positiveBucketCountsColumn = new AnalyticsTableColumn({
570
+ key: "positiveBucketCounts",
571
+ title: "Positive Bucket Counts",
572
+ description: "Counts for the positive range of an ExponentialHistogram, indexed from positiveOffset.",
573
+ required: true,
574
+ defaultValue: [],
575
+ type: TableColumnType.ArrayBigNumber,
576
+ accessControl: {
577
+ read: [
578
+ Permission.ProjectOwner,
579
+ Permission.ProjectAdmin,
580
+ Permission.ProjectMember,
581
+ Permission.ReadTelemetryServiceLog,
582
+ ],
583
+ create: [
584
+ Permission.ProjectOwner,
585
+ Permission.ProjectAdmin,
586
+ Permission.ProjectMember,
587
+ Permission.CreateTelemetryServiceLog,
588
+ ],
589
+ update: [],
590
+ },
591
+ });
592
+ const negativeOffsetColumn = new AnalyticsTableColumn({
593
+ key: "negativeOffset",
594
+ title: "Negative Bucket Offset",
595
+ description: "Bucket index of the first entry in negativeBucketCounts (ExponentialHistogram).",
596
+ required: false,
597
+ type: TableColumnType.Number,
598
+ accessControl: {
599
+ read: [
600
+ Permission.ProjectOwner,
601
+ Permission.ProjectAdmin,
602
+ Permission.ProjectMember,
603
+ Permission.ReadTelemetryServiceLog,
604
+ ],
605
+ create: [
606
+ Permission.ProjectOwner,
607
+ Permission.ProjectAdmin,
608
+ Permission.ProjectMember,
609
+ Permission.CreateTelemetryServiceLog,
610
+ ],
611
+ update: [],
612
+ },
613
+ });
614
+ const negativeBucketCountsColumn = new AnalyticsTableColumn({
615
+ key: "negativeBucketCounts",
616
+ title: "Negative Bucket Counts",
617
+ description: "Counts for the negative range of an ExponentialHistogram, indexed from negativeOffset.",
478
618
  required: true,
479
619
  defaultValue: [],
480
620
  type: TableColumnType.ArrayBigNumber,
@@ -494,6 +634,58 @@ export default class Metric extends AnalyticsBaseModel {
494
634
  update: [],
495
635
  },
496
636
  });
637
+ /*
638
+ * --- Summary-only columns -----------------------------------------------
639
+ * Populated only when metricPointType = Summary. Two parallel arrays
640
+ * keyed by index (mirrors the bucketCounts/explicitBounds convention):
641
+ * summaryQuantiles[i] in [0,1], summaryValues[i] is value at that quantile.
642
+ */
643
+ const summaryQuantilesColumn = new AnalyticsTableColumn({
644
+ key: "summaryQuantiles",
645
+ title: "Summary Quantiles",
646
+ description: "Quantile percentages in [0,1] for a Summary metric (parallel to summaryValues).",
647
+ required: true,
648
+ defaultValue: [],
649
+ type: TableColumnType.ArrayDecimal,
650
+ accessControl: {
651
+ read: [
652
+ Permission.ProjectOwner,
653
+ Permission.ProjectAdmin,
654
+ Permission.ProjectMember,
655
+ Permission.ReadTelemetryServiceLog,
656
+ ],
657
+ create: [
658
+ Permission.ProjectOwner,
659
+ Permission.ProjectAdmin,
660
+ Permission.ProjectMember,
661
+ Permission.CreateTelemetryServiceLog,
662
+ ],
663
+ update: [],
664
+ },
665
+ });
666
+ const summaryValuesColumn = new AnalyticsTableColumn({
667
+ key: "summaryValues",
668
+ title: "Summary Values",
669
+ description: "Values corresponding to each quantile in summaryQuantiles for a Summary metric.",
670
+ required: true,
671
+ defaultValue: [],
672
+ type: TableColumnType.ArrayDecimal,
673
+ accessControl: {
674
+ read: [
675
+ Permission.ProjectOwner,
676
+ Permission.ProjectAdmin,
677
+ Permission.ProjectMember,
678
+ Permission.ReadTelemetryServiceLog,
679
+ ],
680
+ create: [
681
+ Permission.ProjectOwner,
682
+ Permission.ProjectAdmin,
683
+ Permission.ProjectMember,
684
+ Permission.CreateTelemetryServiceLog,
685
+ ],
686
+ update: [],
687
+ },
688
+ });
497
689
  const traceIdColumn = new AnalyticsTableColumn({
498
690
  key: "traceId",
499
691
  title: "Trace ID",
@@ -611,6 +803,14 @@ export default class Metric extends AnalyticsBaseModel {
611
803
  maxColumn,
612
804
  bucketCountsColumn,
613
805
  explicitBoundsColumn,
806
+ scaleColumn,
807
+ zeroCountColumn,
808
+ positiveOffsetColumn,
809
+ positiveBucketCountsColumn,
810
+ negativeOffsetColumn,
811
+ negativeBucketCountsColumn,
812
+ summaryQuantilesColumn,
813
+ summaryValuesColumn,
614
814
  traceIdColumn,
615
815
  spanIdColumn,
616
816
  retentionDateColumn,
@@ -760,5 +960,53 @@ export default class Metric extends AnalyticsBaseModel {
760
960
  set retentionDate(v) {
761
961
  this.setColumnValue("retentionDate", v);
762
962
  }
963
+ get scale() {
964
+ return this.getColumnValue("scale");
965
+ }
966
+ set scale(v) {
967
+ this.setColumnValue("scale", v);
968
+ }
969
+ get zeroCount() {
970
+ return this.getColumnValue("zeroCount");
971
+ }
972
+ set zeroCount(v) {
973
+ this.setColumnValue("zeroCount", v);
974
+ }
975
+ get positiveOffset() {
976
+ return this.getColumnValue("positiveOffset");
977
+ }
978
+ set positiveOffset(v) {
979
+ this.setColumnValue("positiveOffset", v);
980
+ }
981
+ get positiveBucketCounts() {
982
+ return this.getColumnValue("positiveBucketCounts");
983
+ }
984
+ set positiveBucketCounts(v) {
985
+ this.setColumnValue("positiveBucketCounts", v);
986
+ }
987
+ get negativeOffset() {
988
+ return this.getColumnValue("negativeOffset");
989
+ }
990
+ set negativeOffset(v) {
991
+ this.setColumnValue("negativeOffset", v);
992
+ }
993
+ get negativeBucketCounts() {
994
+ return this.getColumnValue("negativeBucketCounts");
995
+ }
996
+ set negativeBucketCounts(v) {
997
+ this.setColumnValue("negativeBucketCounts", v);
998
+ }
999
+ get summaryQuantiles() {
1000
+ return this.getColumnValue("summaryQuantiles");
1001
+ }
1002
+ set summaryQuantiles(v) {
1003
+ this.setColumnValue("summaryQuantiles", v);
1004
+ }
1005
+ get summaryValues() {
1006
+ return this.getColumnValue("summaryValues");
1007
+ }
1008
+ set summaryValues(v) {
1009
+ this.setColumnValue("summaryValues", v);
1010
+ }
763
1011
  }
764
1012
  //# sourceMappingURL=Metric.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Metric.js","sourceRoot":"","sources":["../../../../Models/AnalyticsModels/Metric.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Metric.js","sourceRoot":"","sources":["../../../../Models/AnalyticsModels/Metric.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,189 @@
1
1
  import AnalyticsDatabaseService from "./AnalyticsDatabaseService";
2
- import MetricSum from "../../Models/AnalyticsModels/Metric";
2
+ import Metric from "../../Models/AnalyticsModels/Metric";
3
+ import { AggregateUtil, } from "../Types/AnalyticsDatabase/AggregateBy";
4
+ import { SQL } from "../Utils/AnalyticsDatabase/Statement";
5
+ import { getPercentileLevel, isPercentileAggregation, } from "../../Types/BaseDatabase/AggregationType";
6
+ import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
7
+ import logger from "../Utils/Logger";
3
8
  export class MetricService extends AnalyticsDatabaseService {
4
9
  constructor(clickhouseDatabase) {
5
- super({ modelType: MetricSum, database: clickhouseDatabase });
10
+ super({ modelType: Metric, database: clickhouseDatabase });
11
+ }
12
+ /**
13
+ * Histogram-aware aggregation override.
14
+ *
15
+ * For non-percentile aggregations (Sum/Avg/Min/Max/Count) we delegate
16
+ * to the base implementation. For percentile aggregations
17
+ * (P50/P90/P95/P99) we build a subquery that fans each metric row out
18
+ * into one or more `(midpoint, weight)` samples — derived from
19
+ * histogram buckets when present — and then runs
20
+ * `quantileExactWeighted` over the fanned-out distribution. This means
21
+ * a P95 of `http.server.request.duration` returns a real
22
+ * bucket-derived 95th percentile of observed values, not the 95th
23
+ * percentile of per-row `sum`s.
24
+ *
25
+ * Per `metricPointType` the fanout is:
26
+ *
27
+ * Histogram -> one (midpoint, count) per explicit bucket;
28
+ * midpoint = (lower + upper) / 2, with the
29
+ * implicit -inf/+inf buckets approximated
30
+ * against the nearest bound.
31
+ * ExponentialHistogram -> one (geomean, count) per positive bucket;
32
+ * base = 2^(2^-scale); bucket index `k` is
33
+ * `positiveOffset + i - 1` (1-indexed) and
34
+ * we use the geometric midpoint
35
+ * base^(k + 0.5). Negative buckets are
36
+ * currently ignored (rare in practice and
37
+ * would require a separate fanout).
38
+ * Summary -> exactly one sample: the value at the
39
+ * stored quantile closest to (and >=) the
40
+ * target `p`, weighted 1; falls back to the
41
+ * highest stored quantile when nothing
42
+ * covers `p`.
43
+ * Sum / Gauge / unknown -> raw `value` weighted 1 (same as the
44
+ * generic `quantile(p)(value)` path).
45
+ */
46
+ toAggregateStatement(aggregateBy) {
47
+ if (!isPercentileAggregation(aggregateBy.aggregationType)) {
48
+ return super.toAggregateStatement(aggregateBy);
49
+ }
50
+ const percentileLevel = getPercentileLevel(aggregateBy.aggregationType);
51
+ if (percentileLevel === null) {
52
+ return super.toAggregateStatement(aggregateBy);
53
+ }
54
+ if (!this.database) {
55
+ this.useDefaultDatabase();
56
+ }
57
+ const databaseName = this.database.getDatasourceOptions().database;
58
+ const aggregationColumn = aggregateBy.aggregateColumnName.toString();
59
+ const aggregationTimestampColumn = aggregateBy.aggregationTimestampColumnName.toString();
60
+ const aggregationInterval = AggregateUtil.getAggregationInterval({
61
+ startDate: aggregateBy.startTimestamp,
62
+ endDate: aggregateBy.endTimestamp,
63
+ }).toLowerCase();
64
+ /*
65
+ * Group-by columns from the caller need to be carried through the
66
+ * inner subquery so the outer GROUP BY can reference them. Only
67
+ * columns that exist on the model are accepted (matches the base
68
+ * generator's safety net).
69
+ */
70
+ const groupByKeys = [];
71
+ if (aggregateBy.groupBy) {
72
+ for (const key of Object.keys(aggregateBy.groupBy)) {
73
+ if (!this.model.getTableColumn(key)) {
74
+ continue;
75
+ }
76
+ groupByKeys.push(key);
77
+ }
78
+ }
79
+ const whereStatement = this.statementGenerator.toWhereStatement(aggregateBy.query);
80
+ const sortStatement = this.statementGenerator.toSortStatement(aggregateBy.sort);
81
+ /*
82
+ * Per-row fanout. The result of multiIf is `Array(Tuple(Float64,
83
+ * Float64))` — element 1 is the sample midpoint, element 2 is the
84
+ * weight (rounded to UInt64 in the outer SELECT for
85
+ * quantileExactWeighted). Each branch is guarded by a presence
86
+ * check so a row missing its expected payload (e.g. a zero-bucket
87
+ * histogram) silently drops to the scalar fallback rather than
88
+ * exploding.
89
+ */
90
+ const fanoutExpression = `
91
+ multiIf(
92
+ metricPointType = 'ExponentialHistogram' AND notEmpty(positiveBucketCounts),
93
+ arrayMap(
94
+ i -> tuple(
95
+ pow(
96
+ pow(2.0, pow(2.0, -toFloat64(coalesce(scale, 0)))),
97
+ toFloat64(coalesce(positiveOffset, 0)) + toFloat64(i) - 0.5
98
+ ),
99
+ toFloat64(positiveBucketCounts[i])
100
+ ),
101
+ arrayEnumerate(positiveBucketCounts)
102
+ ),
103
+ metricPointType = 'Histogram' AND notEmpty(bucketCounts),
104
+ arrayMap(
105
+ i -> tuple(
106
+ multiIf(
107
+ length(explicitBounds) = 0,
108
+ toFloat64(coalesce(value, sum, 0)),
109
+ i = 1,
110
+ toFloat64(explicitBounds[1]) / 2.0,
111
+ i > length(explicitBounds),
112
+ toFloat64(explicitBounds[length(explicitBounds)]) * 1.5,
113
+ (toFloat64(explicitBounds[i - 1]) + toFloat64(explicitBounds[i])) / 2.0
114
+ ),
115
+ toFloat64(bucketCounts[i])
116
+ ),
117
+ arrayEnumerate(bucketCounts)
118
+ ),
119
+ metricPointType = 'Summary' AND notEmpty(summaryValues),
120
+ [tuple(
121
+ if(
122
+ arrayFirstIndex(q -> q >= ${percentileLevel}, summaryQuantiles) > 0,
123
+ summaryValues[arrayFirstIndex(q -> q >= ${percentileLevel}, summaryQuantiles)],
124
+ summaryValues[length(summaryValues)]
125
+ ),
126
+ 1.0
127
+ )],
128
+ [tuple(toFloat64(coalesce(value, sum, 0)), 1.0)]
129
+ )
130
+ `;
131
+ /*
132
+ * Inner subquery: keeps the row's timestamp and any group-by
133
+ * columns, then fans the row into per-sample rows via arrayJoin.
134
+ * We use `__pcl_pair` so the column name doesn't collide with any
135
+ * model column should ClickHouse ever surface it through a tooling
136
+ * layer.
137
+ */
138
+ const innerSelectColumns = [aggregationTimestampColumn];
139
+ for (const key of groupByKeys) {
140
+ if (!innerSelectColumns.includes(key)) {
141
+ innerSelectColumns.push(key);
142
+ }
143
+ }
144
+ const innerSelectClause = `${innerSelectColumns.join(", ")}, arrayJoin(${fanoutExpression}) AS __pcl_pair`;
145
+ const statement = SQL ``;
146
+ /*
147
+ * Outer SELECT: time bucket + weighted quantile + carry-forward
148
+ * group-by columns. Quantile weight must be UInt for
149
+ * quantileExactWeighted; we round to nearest integer (a count of
150
+ * 0.5 rounds to 0 which drops the sample, but bucket counts are
151
+ * always whole numbers in practice).
152
+ */
153
+ statement.append(`SELECT quantileExactWeighted(${percentileLevel})(__pcl_pair.1, toUInt64(greatest(0, round(__pcl_pair.2)))) as ${aggregationColumn}, date_trunc('${aggregationInterval}', toStartOfInterval(${aggregationTimestampColumn}, INTERVAL 1 ${aggregationInterval})) as ${aggregationTimestampColumn}`);
154
+ for (const key of groupByKeys) {
155
+ statement.append(`, ${key}`);
156
+ }
157
+ statement.append(SQL ` FROM (`);
158
+ statement.append(`SELECT ${innerSelectClause}`);
159
+ statement.append(` FROM ${databaseName}.${this.model.tableName} WHERE TRUE `);
160
+ statement.append(whereStatement);
161
+ statement.append(SQL `) `);
162
+ statement.append(SQL ` GROUP BY `).append(`${aggregationTimestampColumn}`);
163
+ for (const key of groupByKeys) {
164
+ statement.append(`, ${key}`);
165
+ }
166
+ statement.append(SQL ` ORDER BY `).append(sortStatement);
167
+ statement.append(SQL ` LIMIT ${{
168
+ value: Number(aggregateBy.limit),
169
+ type: TableColumnType.Number,
170
+ }}`);
171
+ statement.append(SQL ` OFFSET ${{
172
+ value: Number(aggregateBy.skip),
173
+ type: TableColumnType.Number,
174
+ }} `);
175
+ const columns = [
176
+ aggregationColumn,
177
+ aggregationTimestampColumn,
178
+ ...groupByKeys,
179
+ ];
180
+ logger.debug(`${this.model.tableName} Percentile Aggregate Statement`, {
181
+ tableName: this.model.tableName,
182
+ });
183
+ logger.debug(statement, {
184
+ tableName: this.model.tableName,
185
+ });
186
+ return { statement, columns };
6
187
  }
7
188
  }
8
189
  export default new MetricService();
@@ -1 +1 @@
1
- {"version":3,"file":"MetricService.js","sourceRoot":"","sources":["../../../../Server/Services/MetricService.ts"],"names":[],"mappings":"AACA,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,SAAS,MAAM,qCAAqC,CAAC;AAE5D,MAAM,OAAO,aAAc,SAAQ,wBAAmC;IACpE,YAAmB,kBAAmD;QACpE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAChE,CAAC;CACF;AAED,eAAe,IAAI,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"MetricService.js","sourceRoot":"","sources":["../../../../Server/Services/MetricService.ts"],"names":[],"mappings":"AACA,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,MAAM,MAAM,qCAAqC,CAAC;AACzD,OAAoB,EAClB,aAAa,GACd,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,GAAG,EAAa,MAAM,sCAAsC,CAAC;AACtE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,0CAA0C,CAAC;AAClD,OAAO,eAAe,MAAM,+CAA+C,CAAC;AAC5E,OAAO,MAAyB,MAAM,iBAAiB,CAAC;AAExD,MAAM,OAAO,aAAc,SAAQ,wBAAgC;IACjE,YAAmB,kBAAmD;QACpE,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACa,oBAAoB,CAAC,WAAgC;QAInE,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,eAAe,GAAkB,kBAAkB,CACvD,WAAW,CAAC,eAAe,CAC5B,CAAC;QACF,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,YAAY,GAAW,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,QAAS,CAAC;QAE5E,MAAM,iBAAiB,GACrB,WAAW,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,0BAA0B,GAC9B,WAAW,CAAC,8BAA8B,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,mBAAmB,GAAW,aAAa,CAAC,sBAAsB,CAAC;YACvE,SAAS,EAAE,WAAW,CAAC,cAAe;YACtC,OAAO,EAAE,WAAW,CAAC,YAAa;SACnC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEjB;;;;;WAKG;QACH,MAAM,WAAW,GAAkB,EAAE,CAAC;QACtC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpC,SAAS;gBACX,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAc,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CACxE,WAAW,CAAC,KAAK,CAClB,CAAC;QACF,MAAM,aAAa,GAAc,IAAI,CAAC,kBAAkB,CAAC,eAAe,CACtE,WAAW,CAAC,IAAK,CAClB,CAAC;QAEF;;;;;;;;WAQG;QACH,MAAM,gBAAgB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAgCK,eAAe;wDACD,eAAe;;;;;;;KAOlE,CAAC;QAEF;;;;;;WAMG;QACH,MAAM,kBAAkB,GAAkB,CAAC,0BAA0B,CAAC,CAAC;QACvE,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,gBAAgB,iBAAiB,CAAC;QAEnH,MAAM,SAAS,GAAc,GAAG,CAAA,EAAE,CAAC;QAEnC;;;;;;WAMG;QACH,SAAS,CAAC,MAAM,CACd,gCAAgC,eAAe,kEAAkE,iBAAiB,iBAAiB,mBAAmB,wBAAwB,0BAA0B,gBAAgB,mBAAmB,SAAS,0BAA0B,EAAE,CACjS,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,SAAS,CAAC,MAAM,CAAC,GAAG,CAAA,SAAS,CAAC,CAAC;QAC/B,SAAS,CAAC,MAAM,CAAC,UAAU,iBAAiB,EAAE,CAAC,CAAC;QAChD,SAAS,CAAC,MAAM,CACd,SAAS,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,cAAc,CAC5D,CAAC;QACF,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACjC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC,CAAC;QAE1B,SAAS,CAAC,MAAM,CAAC,GAAG,CAAA,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,0BAA0B,EAAE,CAAC,CAAC;QAC1E,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,SAAS,CAAC,MAAM,CAAC,GAAG,CAAA,YAAY,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAExD,SAAS,CAAC,MAAM,CACd,GAAG,CAAA,UAAU;YACX,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE,eAAe,CAAC,MAAM;SAC7B,EAAE,CACJ,CAAC;QACF,SAAS,CAAC,MAAM,CACd,GAAG,CAAA,WAAW;YACZ,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,eAAe,CAAC,MAAM;SAC7B,GAAG,CACL,CAAC;QAEF,MAAM,OAAO,GAAkB;YAC7B,iBAAiB;YACjB,0BAA0B;YAC1B,GAAG,WAAW;SACf,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,iCAAiC,EAAE;YACrE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;SACf,CAAC,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;YACtB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;SACf,CAAC,CAAC;QAEpB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAChC,CAAC;CACF;AAED,eAAe,IAAI,aAAa,EAAE,CAAC"}