@kong-ui-public/analytics-metric-provider 11.3.19 → 11.3.21
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.
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ref as
|
|
2
|
-
import { stripUnknownFilters as
|
|
3
|
-
import { createI18n as
|
|
1
|
+
import { ref as W, watchEffect as ze, computed as m, getCurrentScope as Ke, reactive as Be, onScopeDispose as Xe, watch as Ge, isReadonly as He, toRefs as je, defineComponent as Z, inject as Ve, toRef as j, provide as Ye, renderSlot as Me, resolveComponent as Ne, openBlock as R, createElementBlock as S, normalizeClass as z, createElementVNode as x, unref as T, createBlock as $, resolveDynamicComponent as ne, createCommentVNode as V, withCtx as pe, createTextVNode as ke, toDisplayString as b, createVNode as F, Fragment as Re, renderList as Qe, mergeProps as We, normalizeProps as Je, guardReactiveProps as Ze } from "vue";
|
|
2
|
+
import { stripUnknownFilters as er, queryableExploreDimensions as rr } from "@kong-ui-public/analytics-utilities";
|
|
3
|
+
import { createI18n as tr, i18nTComponent as nr } from "@kong-ui-public/i18n";
|
|
4
4
|
import "axios";
|
|
5
|
-
import { useAnalyticsConfigStore as
|
|
6
|
-
import { TrendUpIcon as
|
|
7
|
-
const
|
|
5
|
+
import { useAnalyticsConfigStore as ar } from "@kong-ui-public/analytics-config-store";
|
|
6
|
+
import { TrendUpIcon as ir, TrendDownIcon as or, IndeterminateSmallIcon as Fe, VitalsIcon as sr, CloudUploadIcon as ur, WarningOutlineIcon as lr, ResponseIcon as cr, InfoIcon as dr, WarningIcon as xe, EqualIcon as fr } from "@kong/icons";
|
|
7
|
+
const vr = {
|
|
8
8
|
notAvailable: "N/A"
|
|
9
|
-
},
|
|
9
|
+
}, mr = {
|
|
10
10
|
small: {
|
|
11
11
|
traffic: "Requests",
|
|
12
12
|
errorRate: "Error rate",
|
|
@@ -25,7 +25,7 @@ const sr = {
|
|
|
25
25
|
averageLatency: "Average latency",
|
|
26
26
|
p99Latency: "P99 latency"
|
|
27
27
|
}
|
|
28
|
-
},
|
|
28
|
+
}, yr = {
|
|
29
29
|
custom_days: "vs previous {numDays, plural, =1 {day} other {# days}}",
|
|
30
30
|
custom_hours: "vs previous {numHours, plural, =1 {hour} other {# hours}}",
|
|
31
31
|
custom_minutes: "vs previous {numMinutes, plural, =1 {minute} other {# minutes}}",
|
|
@@ -42,101 +42,101 @@ const sr = {
|
|
|
42
42
|
previous_week: "vs previous time period",
|
|
43
43
|
previous_month: "vs previous time period",
|
|
44
44
|
previous_quarter: "vs previous quarter"
|
|
45
|
-
},
|
|
46
|
-
general:
|
|
47
|
-
metricCard:
|
|
48
|
-
trendRange:
|
|
45
|
+
}, gr = {
|
|
46
|
+
general: vr,
|
|
47
|
+
metricCard: mr,
|
|
48
|
+
trendRange: yr
|
|
49
49
|
};
|
|
50
|
-
function
|
|
51
|
-
const e =
|
|
50
|
+
function hr() {
|
|
51
|
+
const e = tr("en-us", gr);
|
|
52
52
|
return {
|
|
53
53
|
i18n: e,
|
|
54
|
-
i18nT:
|
|
54
|
+
i18nT: nr(e)
|
|
55
55
|
// Translation component <i18n-t>
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
-
const
|
|
59
|
-
var
|
|
60
|
-
const
|
|
61
|
-
var r, t,
|
|
58
|
+
const pr = 2, G = ["1XX", "2XX", "3XX", "4XX", "5XX"], Te = ["4XX", "5XX"], Tt = ["1XX", "2XX", "3XX"], Rr = 30 * 1e3, Tr = "analytics-query-provider";
|
|
59
|
+
var qe = /* @__PURE__ */ ((e) => (e.VALIDATING = "VALIDATING", e.VALIDATING_HAS_DATA = "VALIDATING_HAS_DATA", e.PENDING = "PENDING", e.SUCCESS = "SUCCESS", e.SUCCESS_HAS_DATA = "SUCCESS_HAS_DATA", e.ERROR = "ERROR", e.STALE_IF_ERROR = "STALE_IF_ERROR", e))(qe || {});
|
|
60
|
+
const Er = (e) => {
|
|
61
|
+
var r, t, a, i, n;
|
|
62
62
|
return e ? !!// TODO: revisit: currently only the first check ever matters?
|
|
63
|
-
((r = Object.keys(e)) != null && r.length || (t = e.data) != null && t.length || (
|
|
63
|
+
((r = Object.keys(e)) != null && r.length || (t = e.data) != null && t.length || (i = (a = e.data) == null ? void 0 : a.data) != null && i.length || !((n = e.data) != null && n.data) && typeof e.data == "object" && Object.keys(e == null ? void 0 : e.data).length) : !1;
|
|
64
64
|
};
|
|
65
|
-
function
|
|
66
|
-
const
|
|
65
|
+
function Sr(e = W({}), r, t, a = Er) {
|
|
66
|
+
const i = W(
|
|
67
67
|
"PENDING"
|
|
68
68
|
/* PENDING */
|
|
69
69
|
);
|
|
70
|
-
return
|
|
71
|
-
const n =
|
|
70
|
+
return ze(() => {
|
|
71
|
+
const n = a(e.value);
|
|
72
72
|
if (e.value && n && t.value) {
|
|
73
|
-
|
|
73
|
+
i.value = "VALIDATING_HAS_DATA";
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
76
|
if (e.value && t.value) {
|
|
77
|
-
|
|
77
|
+
i.value = "VALIDATING";
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
80
|
if (e.value && r.value) {
|
|
81
|
-
|
|
81
|
+
i.value = "STALE_IF_ERROR";
|
|
82
82
|
return;
|
|
83
83
|
}
|
|
84
84
|
if (e.value === void 0 && !r.value) {
|
|
85
|
-
|
|
85
|
+
i.value = "PENDING";
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
88
|
if (e.value && !r.value && n) {
|
|
89
|
-
|
|
89
|
+
i.value = "SUCCESS_HAS_DATA";
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
if (e.value && !r.value) {
|
|
93
|
-
|
|
93
|
+
i.value = "SUCCESS";
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
|
-
e.value === void 0 && r && (
|
|
96
|
+
e.value === void 0 && r && (i.value = "ERROR");
|
|
97
97
|
}), {
|
|
98
|
-
state:
|
|
99
|
-
swrvState:
|
|
98
|
+
state: i,
|
|
99
|
+
swrvState: qe
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
|
-
const L = Symbol("default"),
|
|
103
|
-
e[r][t] || (e[r][t] = {}), e[r][t][
|
|
102
|
+
const L = Symbol("default"), ae = "status_code_grouped", Ee = (e, r, t, a, i) => {
|
|
103
|
+
e[r][t] || (e[r][t] = {}), e[r][t][a] = i;
|
|
104
104
|
};
|
|
105
|
-
function
|
|
106
|
-
var
|
|
107
|
-
const t = ((
|
|
108
|
-
return
|
|
105
|
+
function _r(e, r) {
|
|
106
|
+
var c;
|
|
107
|
+
const t = ((c = e.meta.metric_names) == null ? void 0 : c[0]) || "", a = new Date(e.meta.start).getTime(), i = Object.keys(e.meta.display || {}), n = !!i.find((d) => d === ae), s = i.find((d) => d !== ae);
|
|
108
|
+
return i.length > 2 || i.length > 1 && !n ? (console.error("Don't know how to work with provided dimensions:", i), {
|
|
109
109
|
previous: { [L]: { [L]: 0 } },
|
|
110
110
|
current: { [L]: { [L]: 0 } }
|
|
111
|
-
}) : e.data.reduce((
|
|
112
|
-
const
|
|
113
|
-
return new Date(o.timestamp).getTime() ===
|
|
111
|
+
}) : e.data.reduce((d, o) => {
|
|
112
|
+
const l = o.event[t], u = s ? o.event[s] : L, f = n ? o.event[ae] : L;
|
|
113
|
+
return new Date(o.timestamp).getTime() === a && r ? Ee(d, "previous", u, f, l) : Ee(d, "current", u, f, l), d;
|
|
114
114
|
}, {
|
|
115
115
|
previous: {},
|
|
116
116
|
current: {}
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
|
-
function
|
|
120
|
-
e.queryReady === void 0 && (e.queryReady =
|
|
121
|
-
const r =
|
|
122
|
-
var
|
|
119
|
+
function Cr(e) {
|
|
120
|
+
e.queryReady === void 0 && (e.queryReady = m(() => !0));
|
|
121
|
+
const r = m(() => {
|
|
122
|
+
var l, u;
|
|
123
123
|
return {
|
|
124
124
|
metrics: e.metrics.value,
|
|
125
125
|
dimensions: [
|
|
126
|
-
...(
|
|
126
|
+
...(l = e.dimensions) != null && l.length ? [...e.dimensions] : [],
|
|
127
127
|
...e.withTrend.value ? ["time"] : []
|
|
128
128
|
],
|
|
129
129
|
granularity: e.withTrend.value ? "trend" : void 0,
|
|
130
130
|
...(u = e.filter.value) != null && u.length ? { filters: e.filter.value } : {},
|
|
131
131
|
time_range: e.timeRange.value
|
|
132
132
|
};
|
|
133
|
-
}), t =
|
|
134
|
-
var u,
|
|
133
|
+
}), t = m(() => {
|
|
134
|
+
var u, f, h, y;
|
|
135
135
|
if (!((u = e.queryReady) != null && u.value))
|
|
136
136
|
return null;
|
|
137
|
-
const
|
|
138
|
-
return `metric-fetcher-${JSON.stringify(e.timeRange.value)}-${(
|
|
139
|
-
}), { response:
|
|
137
|
+
const l = (f = e.filter) != null && f.value ? JSON.stringify(e.filter.value) : "";
|
|
138
|
+
return `metric-fetcher-${JSON.stringify(e.timeRange.value)}-${(h = e.dimensions) == null ? void 0 : h.join("-")}-${(y = e.metrics.value) == null ? void 0 : y.join("-")}-${l}-${e.refreshCounter.value}`;
|
|
139
|
+
}), { response: a, error: i, isValidating: n } = M.useRequest(
|
|
140
140
|
() => t.value,
|
|
141
141
|
() => e.queryFn({
|
|
142
142
|
// TODO: Use a type guard to validate that if the datasource is basic,
|
|
@@ -147,43 +147,43 @@ function pr(e) {
|
|
|
147
147
|
{
|
|
148
148
|
refreshInterval: e.refreshInterval,
|
|
149
149
|
revalidateOnFocus: !1,
|
|
150
|
-
errorRetryCount:
|
|
150
|
+
errorRetryCount: pr
|
|
151
151
|
}
|
|
152
|
-
), { state:
|
|
153
|
-
var
|
|
154
|
-
return !((u = (
|
|
155
|
-
}), o = M.useTrendRange(e.withTrend, e.timeRange,
|
|
156
|
-
var
|
|
157
|
-
return (
|
|
152
|
+
), { state: s, swrvState: c } = Sr(a, i, n), d = m(() => {
|
|
153
|
+
var l, u, f, h, y, A, p;
|
|
154
|
+
return !((u = (l = a.value) == null ? void 0 : l.data) != null && u.length) || !((h = (f = a.value) == null ? void 0 : f.meta) != null && h.display) || !((p = (A = (y = a.value) == null ? void 0 : y.meta) == null ? void 0 : A.metric_names) != null && p.length) ? { current: {}, previous: {} } : _r(a.value, e.withTrend.value);
|
|
155
|
+
}), o = M.useTrendRange(e.withTrend, e.timeRange, m(() => {
|
|
156
|
+
var l;
|
|
157
|
+
return (l = a.value) == null ? void 0 : l.meta;
|
|
158
158
|
}));
|
|
159
159
|
return {
|
|
160
|
-
isLoading:
|
|
161
|
-
hasError:
|
|
162
|
-
raw:
|
|
163
|
-
mapped:
|
|
160
|
+
isLoading: m(() => c.PENDING === s.value),
|
|
161
|
+
hasError: m(() => c.ERROR === s.value),
|
|
162
|
+
raw: a,
|
|
163
|
+
mapped: d,
|
|
164
164
|
trendRange: o
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
|
-
const K = (e, r, t = L,
|
|
168
|
-
const
|
|
169
|
-
return
|
|
167
|
+
const K = (e, r, t = L, a) => (a ?? [L]).reduce((n, s) => {
|
|
168
|
+
const c = e[r][t];
|
|
169
|
+
return c ? n + (c[s] || 0) : n;
|
|
170
170
|
}, 0);
|
|
171
|
-
function
|
|
171
|
+
function Ir(e) {
|
|
172
172
|
const {
|
|
173
173
|
cardType: r,
|
|
174
174
|
title: t,
|
|
175
|
-
description:
|
|
176
|
-
record:
|
|
175
|
+
description: a,
|
|
176
|
+
record: i,
|
|
177
177
|
hasError: n,
|
|
178
|
-
increaseIsBad:
|
|
179
|
-
formatValueFn:
|
|
180
|
-
trendRange:
|
|
178
|
+
increaseIsBad: s,
|
|
179
|
+
formatValueFn: c,
|
|
180
|
+
trendRange: d
|
|
181
181
|
} = e;
|
|
182
|
-
return
|
|
183
|
-
let o = 0,
|
|
184
|
-
if (
|
|
182
|
+
return m(() => {
|
|
183
|
+
let o = 0, l = 0;
|
|
184
|
+
if (i != null && i.value)
|
|
185
185
|
try {
|
|
186
|
-
o = K(
|
|
186
|
+
o = K(i.value, "current", e.lookupKey, e.sumGroupedValues), l = K(i.value, "previous", e.lookupKey, e.sumGroupedValues);
|
|
187
187
|
} catch (u) {
|
|
188
188
|
console.error(
|
|
189
189
|
"Metric card data doesn't have the expected structure:",
|
|
@@ -194,163 +194,163 @@ function Rr(e) {
|
|
|
194
194
|
cardType: r,
|
|
195
195
|
hasError: n.value,
|
|
196
196
|
currentValue: o,
|
|
197
|
-
previousValue:
|
|
197
|
+
previousValue: l,
|
|
198
198
|
title: t.value,
|
|
199
|
-
description:
|
|
200
|
-
increaseIsBad: !!
|
|
199
|
+
description: a,
|
|
200
|
+
increaseIsBad: !!s,
|
|
201
201
|
// Coerce undefined to false
|
|
202
|
-
formatValueFn:
|
|
203
|
-
trendRange:
|
|
202
|
+
formatValueFn: c,
|
|
203
|
+
trendRange: d == null ? void 0 : d.value
|
|
204
204
|
};
|
|
205
205
|
});
|
|
206
206
|
}
|
|
207
|
-
function
|
|
208
|
-
const { i18n:
|
|
209
|
-
let u =
|
|
207
|
+
function Ar(e, r, t) {
|
|
208
|
+
const { i18n: a } = M.useI18n(), i = 1e3 * 60, n = i * 60, s = n * 24, c = (o, l) => {
|
|
209
|
+
let u = l - o;
|
|
210
210
|
e.value && (u /= 2);
|
|
211
|
-
const
|
|
212
|
-
return
|
|
213
|
-
},
|
|
214
|
-
var o,
|
|
211
|
+
const f = u / s, h = u / n, y = u / i;
|
|
212
|
+
return f >= 1 ? a.t("trendRange.custom_days", { numDays: Math.round(f) }) : h >= 1 ? a.t("trendRange.custom_hours", { numHours: Math.round(h) }) : y >= 1 ? a.t("trendRange.custom_minutes", { numMinutes: Math.round(y) }) : a.t("trendRange.custom_days", { numDays: Math.round(f) });
|
|
213
|
+
}, d = () => {
|
|
214
|
+
var o, l;
|
|
215
215
|
if ((o = t == null ? void 0 : t.value) != null && o.start && t.value.end)
|
|
216
216
|
return {
|
|
217
217
|
startMs: new Date(t.value.start).getTime(),
|
|
218
218
|
endMs: new Date(t.value.end).getTime()
|
|
219
219
|
};
|
|
220
|
-
if (((
|
|
220
|
+
if (((l = r == null ? void 0 : r.value) == null ? void 0 : l.type) === "absolute" && r.value.start && r.value.end)
|
|
221
221
|
return {
|
|
222
222
|
startMs: new Date(r.value.start).getTime(),
|
|
223
223
|
endMs: new Date(r.value.end).getTime()
|
|
224
224
|
};
|
|
225
225
|
};
|
|
226
|
-
return
|
|
227
|
-
var o,
|
|
226
|
+
return m(() => {
|
|
227
|
+
var o, l;
|
|
228
228
|
if (((o = r == null ? void 0 : r.value) == null ? void 0 : o.type) === "relative" && e.value)
|
|
229
|
-
return
|
|
230
|
-
if (e.value || ((
|
|
231
|
-
const u =
|
|
229
|
+
return a.t(`trendRange.${r.value.time_range}`);
|
|
230
|
+
if (e.value || ((l = r == null ? void 0 : r.value) == null ? void 0 : l.type) === "absolute") {
|
|
231
|
+
const u = d();
|
|
232
232
|
if (u)
|
|
233
|
-
return
|
|
233
|
+
return c(u.startMs, u.endMs);
|
|
234
234
|
}
|
|
235
235
|
return "";
|
|
236
236
|
});
|
|
237
237
|
}
|
|
238
|
-
var
|
|
239
|
-
function
|
|
238
|
+
var ie = /* @__PURE__ */ new WeakMap(), Se = 0;
|
|
239
|
+
function Dr(e) {
|
|
240
240
|
if (!e.length)
|
|
241
241
|
return "";
|
|
242
242
|
for (var r = "arg", t = 0; t < e.length; ++t) {
|
|
243
|
-
var
|
|
244
|
-
e[t] === null || typeof e[t] != "object" && typeof e[t] != "function" ? typeof e[t] == "string" ?
|
|
243
|
+
var a = void 0;
|
|
244
|
+
e[t] === null || typeof e[t] != "object" && typeof e[t] != "function" ? typeof e[t] == "string" ? a = '"' + e[t] + '"' : a = String(e[t]) : ie.has(e[t]) ? a = ie.get(e[t]) : (a = Se, ie.set(e[t], Se++)), r += "@" + a;
|
|
245
245
|
}
|
|
246
246
|
return r;
|
|
247
247
|
}
|
|
248
|
-
function
|
|
248
|
+
function wr(e) {
|
|
249
249
|
if (typeof e == "function")
|
|
250
250
|
try {
|
|
251
251
|
e = e();
|
|
252
252
|
} catch {
|
|
253
253
|
e = "";
|
|
254
254
|
}
|
|
255
|
-
return Array.isArray(e) ? e =
|
|
255
|
+
return Array.isArray(e) ? e = Dr(e) : e = String(e || ""), e;
|
|
256
256
|
}
|
|
257
|
-
var
|
|
257
|
+
var le = (
|
|
258
258
|
/** @class */
|
|
259
259
|
function() {
|
|
260
260
|
function e(r) {
|
|
261
261
|
r === void 0 && (r = 0), this.items = /* @__PURE__ */ new Map(), this.ttl = r;
|
|
262
262
|
}
|
|
263
263
|
return e.prototype.serializeKey = function(r) {
|
|
264
|
-
return
|
|
264
|
+
return wr(r);
|
|
265
265
|
}, e.prototype.get = function(r) {
|
|
266
266
|
var t = this.serializeKey(r);
|
|
267
267
|
return this.items.get(t);
|
|
268
|
-
}, e.prototype.set = function(r, t,
|
|
269
|
-
var
|
|
268
|
+
}, e.prototype.set = function(r, t, a) {
|
|
269
|
+
var i = this.serializeKey(r), n = a || this.ttl, s = Date.now(), c = {
|
|
270
270
|
data: t,
|
|
271
|
-
createdAt:
|
|
272
|
-
expiresAt: n ?
|
|
271
|
+
createdAt: s,
|
|
272
|
+
expiresAt: n ? s + n : 1 / 0
|
|
273
273
|
};
|
|
274
|
-
this.dispatchExpire(n,
|
|
275
|
-
}, e.prototype.dispatchExpire = function(r, t,
|
|
276
|
-
var
|
|
274
|
+
this.dispatchExpire(n, c, i), this.items.set(i, c);
|
|
275
|
+
}, e.prototype.dispatchExpire = function(r, t, a) {
|
|
276
|
+
var i = this;
|
|
277
277
|
r && setTimeout(function() {
|
|
278
|
-
var n = Date.now(),
|
|
279
|
-
|
|
278
|
+
var n = Date.now(), s = n >= t.expiresAt;
|
|
279
|
+
s && i.delete(a);
|
|
280
280
|
}, r);
|
|
281
281
|
}, e.prototype.delete = function(r) {
|
|
282
282
|
this.items.delete(r);
|
|
283
283
|
}, e;
|
|
284
284
|
}()
|
|
285
285
|
);
|
|
286
|
-
function
|
|
286
|
+
function br() {
|
|
287
287
|
return typeof navigator.onLine < "u" ? navigator.onLine : !0;
|
|
288
288
|
}
|
|
289
|
-
function
|
|
289
|
+
function Or() {
|
|
290
290
|
return typeof document < "u" && typeof document.visibilityState < "u" ? document.visibilityState !== "hidden" : !0;
|
|
291
291
|
}
|
|
292
|
-
var
|
|
292
|
+
var Lr = function(e) {
|
|
293
293
|
return fetch(e).then(function(r) {
|
|
294
294
|
return r.json();
|
|
295
295
|
});
|
|
296
296
|
};
|
|
297
|
-
const
|
|
298
|
-
isOnline:
|
|
299
|
-
isDocumentVisible:
|
|
300
|
-
fetcher:
|
|
297
|
+
const oe = {
|
|
298
|
+
isOnline: br,
|
|
299
|
+
isDocumentVisible: Or,
|
|
300
|
+
fetcher: Lr
|
|
301
301
|
};
|
|
302
302
|
var w = function() {
|
|
303
303
|
return w = Object.assign || function(e) {
|
|
304
|
-
for (var r, t = 1,
|
|
304
|
+
for (var r, t = 1, a = arguments.length; t < a; t++) {
|
|
305
305
|
r = arguments[t];
|
|
306
|
-
for (var
|
|
306
|
+
for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (e[i] = r[i]);
|
|
307
307
|
}
|
|
308
308
|
return e;
|
|
309
309
|
}, w.apply(this, arguments);
|
|
310
|
-
},
|
|
311
|
-
function
|
|
312
|
-
return n instanceof t ? n : new t(function(
|
|
313
|
-
|
|
310
|
+
}, U = function(e, r, t, a) {
|
|
311
|
+
function i(n) {
|
|
312
|
+
return n instanceof t ? n : new t(function(s) {
|
|
313
|
+
s(n);
|
|
314
314
|
});
|
|
315
315
|
}
|
|
316
|
-
return new (t || (t = Promise))(function(n,
|
|
317
|
-
function
|
|
316
|
+
return new (t || (t = Promise))(function(n, s) {
|
|
317
|
+
function c(l) {
|
|
318
318
|
try {
|
|
319
|
-
o(
|
|
319
|
+
o(a.next(l));
|
|
320
320
|
} catch (u) {
|
|
321
|
-
|
|
321
|
+
s(u);
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
|
-
function
|
|
324
|
+
function d(l) {
|
|
325
325
|
try {
|
|
326
|
-
o(
|
|
326
|
+
o(a.throw(l));
|
|
327
327
|
} catch (u) {
|
|
328
|
-
|
|
328
|
+
s(u);
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
|
-
function o(
|
|
332
|
-
|
|
331
|
+
function o(l) {
|
|
332
|
+
l.done ? n(l.value) : i(l.value).then(c, d);
|
|
333
333
|
}
|
|
334
|
-
o((
|
|
334
|
+
o((a = a.apply(e, r || [])).next());
|
|
335
335
|
});
|
|
336
|
-
},
|
|
336
|
+
}, P = function(e, r) {
|
|
337
337
|
var t = { label: 0, sent: function() {
|
|
338
338
|
if (n[0] & 1) throw n[1];
|
|
339
339
|
return n[1];
|
|
340
|
-
}, trys: [], ops: [] },
|
|
341
|
-
return
|
|
340
|
+
}, trys: [], ops: [] }, a, i, n, s;
|
|
341
|
+
return s = { next: c(0), throw: c(1), return: c(2) }, typeof Symbol == "function" && (s[Symbol.iterator] = function() {
|
|
342
342
|
return this;
|
|
343
|
-
}),
|
|
344
|
-
function
|
|
345
|
-
return function(
|
|
346
|
-
return
|
|
343
|
+
}), s;
|
|
344
|
+
function c(o) {
|
|
345
|
+
return function(l) {
|
|
346
|
+
return d([o, l]);
|
|
347
347
|
};
|
|
348
348
|
}
|
|
349
|
-
function
|
|
350
|
-
if (
|
|
349
|
+
function d(o) {
|
|
350
|
+
if (a) throw new TypeError("Generator is already executing.");
|
|
351
351
|
for (; t; ) try {
|
|
352
|
-
if (
|
|
353
|
-
switch (
|
|
352
|
+
if (a = 1, i && (n = o[0] & 2 ? i.return : o[0] ? i.throw || ((n = i.return) && n.call(i), 0) : i.next) && !(n = n.call(i, o[1])).done) return n;
|
|
353
|
+
switch (i = 0, n && (o = [o[0] & 2, n.value]), o[0]) {
|
|
354
354
|
case 0:
|
|
355
355
|
case 1:
|
|
356
356
|
n = o;
|
|
@@ -358,7 +358,7 @@ var w = function() {
|
|
|
358
358
|
case 4:
|
|
359
359
|
return t.label++, { value: o[1], done: !1 };
|
|
360
360
|
case 5:
|
|
361
|
-
t.label++,
|
|
361
|
+
t.label++, i = o[1], o = [0];
|
|
362
362
|
continue;
|
|
363
363
|
case 7:
|
|
364
364
|
o = t.ops.pop(), t.trys.pop();
|
|
@@ -384,36 +384,36 @@ var w = function() {
|
|
|
384
384
|
continue;
|
|
385
385
|
}
|
|
386
386
|
o = r.call(e, t);
|
|
387
|
-
} catch (
|
|
388
|
-
o = [6,
|
|
387
|
+
} catch (l) {
|
|
388
|
+
o = [6, l], i = 0;
|
|
389
389
|
} finally {
|
|
390
|
-
|
|
390
|
+
a = n = 0;
|
|
391
391
|
}
|
|
392
392
|
if (o[0] & 5) throw o[1];
|
|
393
393
|
return { value: o[0] ? o[1] : void 0, done: !0 };
|
|
394
394
|
}
|
|
395
|
-
},
|
|
395
|
+
}, Vr = function(e, r) {
|
|
396
396
|
var t = typeof Symbol == "function" && e[Symbol.iterator];
|
|
397
397
|
if (!t) return e;
|
|
398
|
-
var
|
|
398
|
+
var a = t.call(e), i, n = [], s;
|
|
399
399
|
try {
|
|
400
|
-
for (; (r === void 0 || r-- > 0) && !(
|
|
401
|
-
} catch (
|
|
402
|
-
|
|
400
|
+
for (; (r === void 0 || r-- > 0) && !(i = a.next()).done; ) n.push(i.value);
|
|
401
|
+
} catch (c) {
|
|
402
|
+
s = { error: c };
|
|
403
403
|
} finally {
|
|
404
404
|
try {
|
|
405
|
-
|
|
405
|
+
i && !i.done && (t = a.return) && t.call(a);
|
|
406
406
|
} finally {
|
|
407
|
-
if (
|
|
407
|
+
if (s) throw s.error;
|
|
408
408
|
}
|
|
409
409
|
}
|
|
410
410
|
return n;
|
|
411
|
-
},
|
|
412
|
-
if (t || arguments.length === 2) for (var
|
|
413
|
-
(n || !(
|
|
411
|
+
}, Mr = function(e, r, t) {
|
|
412
|
+
if (t || arguments.length === 2) for (var a = 0, i = r.length, n; a < i; a++)
|
|
413
|
+
(n || !(a in r)) && (n || (n = Array.prototype.slice.call(r, 0, a)), n[a] = r[a]);
|
|
414
414
|
return e.concat(n || Array.prototype.slice.call(r));
|
|
415
|
-
},
|
|
416
|
-
cache:
|
|
415
|
+
}, $e = new le(), J = new le(), se = new le(), ce = {
|
|
416
|
+
cache: $e,
|
|
417
417
|
refreshInterval: 0,
|
|
418
418
|
ttl: 0,
|
|
419
419
|
serverTTL: 1e3,
|
|
@@ -423,127 +423,127 @@ var w = function() {
|
|
|
423
423
|
shouldRetryOnError: !0,
|
|
424
424
|
errorRetryInterval: 5e3,
|
|
425
425
|
errorRetryCount: 5,
|
|
426
|
-
fetcher:
|
|
427
|
-
isOnline:
|
|
428
|
-
isDocumentVisible:
|
|
426
|
+
fetcher: oe.fetcher,
|
|
427
|
+
isOnline: oe.isOnline,
|
|
428
|
+
isDocumentVisible: oe.isDocumentVisible
|
|
429
429
|
};
|
|
430
|
-
function
|
|
431
|
-
var
|
|
432
|
-
if (
|
|
433
|
-
|
|
430
|
+
function Nr(e, r, t) {
|
|
431
|
+
var a = J.get(e);
|
|
432
|
+
if (a)
|
|
433
|
+
a.data.push(r);
|
|
434
434
|
else {
|
|
435
|
-
var
|
|
436
|
-
|
|
435
|
+
var i = 5e3;
|
|
436
|
+
J.set(e, [r], t > 0 ? t + i : t);
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
|
-
function
|
|
439
|
+
function kr(e, r, t) {
|
|
440
440
|
if (t.isDocumentVisible() && !(t.errorRetryCount !== void 0 && r > t.errorRetryCount)) {
|
|
441
|
-
var
|
|
441
|
+
var a = Math.min(r || 0, t.errorRetryCount), i = a * t.errorRetryInterval;
|
|
442
442
|
setTimeout(function() {
|
|
443
|
-
e(null, { errorRetryCount:
|
|
444
|
-
},
|
|
443
|
+
e(null, { errorRetryCount: a + 1, shouldRetryOnError: !0 });
|
|
444
|
+
}, i);
|
|
445
445
|
}
|
|
446
446
|
}
|
|
447
|
-
function
|
|
448
|
-
var r = e.shouldRetry, t = r === void 0 ? void 0 : r,
|
|
449
|
-
return typeof t == "function" ? t(
|
|
447
|
+
function _e(e) {
|
|
448
|
+
var r = e.shouldRetry, t = r === void 0 ? void 0 : r, a = e.error;
|
|
449
|
+
return typeof t == "function" ? t(a) : typeof t == "boolean" ? t : ce.shouldRetryOnError;
|
|
450
450
|
}
|
|
451
|
-
var
|
|
452
|
-
return t === void 0 && (t =
|
|
453
|
-
var
|
|
454
|
-
return
|
|
451
|
+
var Ce = function(e, r, t, a) {
|
|
452
|
+
return t === void 0 && (t = $e), a === void 0 && (a = ce.ttl), U(void 0, void 0, void 0, function() {
|
|
453
|
+
var i, n, s, c, d, o, l;
|
|
454
|
+
return P(this, function(u) {
|
|
455
455
|
switch (u.label) {
|
|
456
456
|
case 0:
|
|
457
|
-
if (!
|
|
457
|
+
if (!xr(r)) return [3, 5];
|
|
458
458
|
u.label = 1;
|
|
459
459
|
case 1:
|
|
460
460
|
return u.trys.push([1, 3, , 4]), [4, r];
|
|
461
461
|
case 2:
|
|
462
|
-
return
|
|
462
|
+
return i = u.sent(), [3, 4];
|
|
463
463
|
case 3:
|
|
464
|
-
return
|
|
464
|
+
return c = u.sent(), n = c, [3, 4];
|
|
465
465
|
case 4:
|
|
466
466
|
return [3, 6];
|
|
467
467
|
case 5:
|
|
468
|
-
|
|
468
|
+
i = r, u.label = 6;
|
|
469
469
|
case 6:
|
|
470
|
-
if (
|
|
470
|
+
if (s = !1, d = { data: i, error: n, isValidating: s }, typeof i < "u")
|
|
471
471
|
try {
|
|
472
|
-
t.set(e,
|
|
473
|
-
} catch (
|
|
474
|
-
console.error("swrv(mutate): failed to set cache",
|
|
472
|
+
t.set(e, d, a);
|
|
473
|
+
} catch (f) {
|
|
474
|
+
console.error("swrv(mutate): failed to set cache", f);
|
|
475
475
|
}
|
|
476
|
-
return o =
|
|
477
|
-
return
|
|
478
|
-
}),
|
|
479
|
-
typeof
|
|
480
|
-
var y =
|
|
481
|
-
y || delete
|
|
482
|
-
}),
|
|
476
|
+
return o = J.get(e), o && o.data.length && (l = o.data.filter(function(f) {
|
|
477
|
+
return f.key === e;
|
|
478
|
+
}), l.forEach(function(f, h) {
|
|
479
|
+
typeof d.data < "u" && (f.data = d.data), f.error = d.error, f.isValidating = d.isValidating, f.isLoading = d.isValidating;
|
|
480
|
+
var y = h === l.length - 1;
|
|
481
|
+
y || delete l[h];
|
|
482
|
+
}), l = l.filter(Boolean)), [2, d];
|
|
483
483
|
}
|
|
484
484
|
});
|
|
485
485
|
});
|
|
486
486
|
};
|
|
487
|
-
function
|
|
487
|
+
function Fr() {
|
|
488
488
|
for (var e = this, r = [], t = 0; t < arguments.length; t++)
|
|
489
489
|
r[t] = arguments[t];
|
|
490
|
-
var
|
|
491
|
-
if (!
|
|
490
|
+
var a, i, n = w({}, ce), s = !1, c = !1;
|
|
491
|
+
if (!Ke())
|
|
492
492
|
return console.error("useSWRV must be called inside setup() or an active effectScope()."), null;
|
|
493
|
-
var
|
|
494
|
-
r.length >= 1 && (
|
|
495
|
-
var o =
|
|
496
|
-
typeof
|
|
493
|
+
var d = typeof window > "u" || typeof document > "u";
|
|
494
|
+
r.length >= 1 && (a = r[0]), r.length >= 2 && (i = r[1]), r.length > 2 && (n = w(w({}, n), r[2]));
|
|
495
|
+
var o = d ? n.serverTTL : n.ttl, l = typeof a == "function" ? a : W(a);
|
|
496
|
+
typeof i > "u" && (i = n.fetcher);
|
|
497
497
|
var u = null;
|
|
498
|
-
u || (u =
|
|
498
|
+
u || (u = Be({
|
|
499
499
|
data: void 0,
|
|
500
500
|
error: void 0,
|
|
501
501
|
isValidating: !0,
|
|
502
502
|
isLoading: !0,
|
|
503
503
|
key: null
|
|
504
504
|
}));
|
|
505
|
-
var
|
|
506
|
-
return
|
|
507
|
-
var
|
|
508
|
-
return
|
|
509
|
-
switch (
|
|
505
|
+
var f = function(g, v) {
|
|
506
|
+
return U(e, void 0, void 0, function() {
|
|
507
|
+
var _, E, C, I, N, B, ee, ve = this;
|
|
508
|
+
return P(this, function(re) {
|
|
509
|
+
switch (re.label) {
|
|
510
510
|
case 0:
|
|
511
|
-
return
|
|
511
|
+
return _ = u.data === void 0, E = l.value, E ? (C = n.cache.get(E), I = C && C.data, u.isValidating = !0, u.isLoading = !I, I && (u.data = I.data, u.error = I.error), N = g || i, !N || !n.isDocumentVisible() && !_ || (v == null ? void 0 : v.forceRevalidate) !== void 0 && !(v != null && v.forceRevalidate) ? (u.isValidating = !1, u.isLoading = !1, [
|
|
512
512
|
2
|
|
513
513
|
/*return*/
|
|
514
|
-
]) :
|
|
514
|
+
]) : C && (B = !!(Date.now() - C.createdAt >= n.dedupingInterval || v != null && v.forceRevalidate), !B) ? (u.isValidating = !1, u.isLoading = !1, [
|
|
515
515
|
2
|
|
516
516
|
/*return*/
|
|
517
|
-
]) : (
|
|
518
|
-
return
|
|
519
|
-
var k,
|
|
520
|
-
return
|
|
521
|
-
switch (
|
|
517
|
+
]) : (ee = function() {
|
|
518
|
+
return U(ve, void 0, void 0, function() {
|
|
519
|
+
var k, me, te, ye, ge, he;
|
|
520
|
+
return P(this, function(H) {
|
|
521
|
+
switch (H.label) {
|
|
522
522
|
case 0:
|
|
523
|
-
return k =
|
|
523
|
+
return k = se.get(E), k ? [3, 2] : (me = Array.isArray(E) ? E : [E], te = N.apply(void 0, Mr([], Vr(me), !1)), se.set(E, te, n.dedupingInterval), [4, Ce(E, te, n.cache, o)]);
|
|
524
524
|
case 1:
|
|
525
|
-
return
|
|
525
|
+
return H.sent(), [3, 4];
|
|
526
526
|
case 2:
|
|
527
|
-
return [4,
|
|
527
|
+
return [4, Ce(E, k.data, n.cache, o)];
|
|
528
528
|
case 3:
|
|
529
|
-
|
|
529
|
+
H.sent(), H.label = 4;
|
|
530
530
|
case 4:
|
|
531
|
-
return u.isValidating = !1, u.isLoading = !1,
|
|
532
|
-
shouldRetry:
|
|
531
|
+
return u.isValidating = !1, u.isLoading = !1, se.delete(E), u.error !== void 0 && (ye = _e({ shouldRetry: n.shouldRetryOnError, error: u.error }), ge = _e({
|
|
532
|
+
shouldRetry: v ? v.shouldRetryOnError : !0,
|
|
533
533
|
error: u.error
|
|
534
|
-
}),
|
|
534
|
+
}), he = !s && ye && ge, he && kr(f, v ? v.errorRetryCount : 1, n)), [
|
|
535
535
|
2
|
|
536
536
|
/*return*/
|
|
537
537
|
];
|
|
538
538
|
}
|
|
539
539
|
});
|
|
540
540
|
});
|
|
541
|
-
},
|
|
542
|
-
return
|
|
543
|
-
return
|
|
541
|
+
}, I && n.revalidateDebounce ? (setTimeout(function() {
|
|
542
|
+
return U(ve, void 0, void 0, function() {
|
|
543
|
+
return P(this, function(k) {
|
|
544
544
|
switch (k.label) {
|
|
545
545
|
case 0:
|
|
546
|
-
return
|
|
546
|
+
return s ? [3, 2] : [4, ee()];
|
|
547
547
|
case 1:
|
|
548
548
|
k.sent(), k.label = 2;
|
|
549
549
|
case 2:
|
|
@@ -559,9 +559,9 @@ function Or() {
|
|
|
559
559
|
/*return*/
|
|
560
560
|
];
|
|
561
561
|
case 1:
|
|
562
|
-
return [4,
|
|
562
|
+
return [4, ee()];
|
|
563
563
|
case 2:
|
|
564
|
-
|
|
564
|
+
re.sent(), re.label = 3;
|
|
565
565
|
case 3:
|
|
566
566
|
return [
|
|
567
567
|
2
|
|
@@ -570,26 +570,26 @@ function Or() {
|
|
|
570
570
|
}
|
|
571
571
|
});
|
|
572
572
|
});
|
|
573
|
-
},
|
|
574
|
-
return
|
|
575
|
-
return
|
|
576
|
-
return [2,
|
|
573
|
+
}, h = function() {
|
|
574
|
+
return U(e, void 0, void 0, function() {
|
|
575
|
+
return P(this, function(g) {
|
|
576
|
+
return [2, f(null, { shouldRetryOnError: !1 })];
|
|
577
577
|
});
|
|
578
578
|
});
|
|
579
579
|
}, y = null;
|
|
580
|
-
if (!
|
|
581
|
-
var
|
|
582
|
-
return
|
|
583
|
-
return
|
|
584
|
-
switch (
|
|
580
|
+
if (!d) {
|
|
581
|
+
var A = function() {
|
|
582
|
+
return U(e, void 0, void 0, function() {
|
|
583
|
+
return P(this, function(g) {
|
|
584
|
+
switch (g.label) {
|
|
585
585
|
case 0:
|
|
586
|
-
return !u.error && n.isOnline() ? [4,
|
|
586
|
+
return !u.error && n.isOnline() ? [4, f()] : [3, 2];
|
|
587
587
|
case 1:
|
|
588
|
-
return
|
|
588
|
+
return g.sent(), [3, 3];
|
|
589
589
|
case 2:
|
|
590
|
-
y && (clearTimeout(y), y = null),
|
|
590
|
+
y && (clearTimeout(y), y = null), g.label = 3;
|
|
591
591
|
case 3:
|
|
592
|
-
return n.refreshInterval && !
|
|
592
|
+
return n.refreshInterval && !s && (y = setTimeout(A, n.refreshInterval)), [
|
|
593
593
|
2
|
|
594
594
|
/*return*/
|
|
595
595
|
];
|
|
@@ -597,123 +597,123 @@ function Or() {
|
|
|
597
597
|
});
|
|
598
598
|
});
|
|
599
599
|
};
|
|
600
|
-
n.refreshInterval && (y = setTimeout(
|
|
600
|
+
n.refreshInterval && (y = setTimeout(A, n.refreshInterval)), n.revalidateOnFocus && (document.addEventListener("visibilitychange", h, !1), window.addEventListener("focus", h, !1));
|
|
601
601
|
}
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
var
|
|
605
|
-
|
|
606
|
-
return
|
|
602
|
+
Xe(function() {
|
|
603
|
+
s = !0, y && (clearTimeout(y), y = null), !d && n.revalidateOnFocus && (document.removeEventListener("visibilitychange", h, !1), window.removeEventListener("focus", h, !1));
|
|
604
|
+
var g = J.get(l.value);
|
|
605
|
+
g && (g.data = g.data.filter(function(v) {
|
|
606
|
+
return v !== u;
|
|
607
607
|
}));
|
|
608
608
|
});
|
|
609
609
|
try {
|
|
610
|
-
|
|
611
|
-
|
|
610
|
+
Ge(l, function(g) {
|
|
611
|
+
He(l) || (l.value = g), u.key = g, u.isValidating = !!g, Nr(l.value, u, o), !d && !c && l.value && f(), c = !1;
|
|
612
612
|
}, {
|
|
613
613
|
immediate: !0
|
|
614
614
|
});
|
|
615
615
|
} catch {
|
|
616
616
|
}
|
|
617
|
-
var p = w(w({},
|
|
618
|
-
return
|
|
617
|
+
var p = w(w({}, je(u)), { mutate: function(g, v) {
|
|
618
|
+
return f(g, w(w({}, v), { forceRevalidate: !0 }));
|
|
619
619
|
} });
|
|
620
620
|
return p;
|
|
621
621
|
}
|
|
622
|
-
function
|
|
622
|
+
function xr(e) {
|
|
623
623
|
return e !== null && typeof e == "object" && typeof e.then == "function";
|
|
624
624
|
}
|
|
625
|
-
function
|
|
625
|
+
function qr(e, r, t) {
|
|
626
626
|
const {
|
|
627
|
-
data:
|
|
628
|
-
error:
|
|
627
|
+
data: a,
|
|
628
|
+
error: i,
|
|
629
629
|
isValidating: n,
|
|
630
|
-
mutate:
|
|
631
|
-
} =
|
|
630
|
+
mutate: s
|
|
631
|
+
} = Fr(e, r, {
|
|
632
632
|
revalidateDebounce: 500,
|
|
633
633
|
revalidateOnFocus: !1,
|
|
634
634
|
dedupingInterval: 100,
|
|
635
635
|
...t
|
|
636
636
|
});
|
|
637
637
|
return {
|
|
638
|
-
data:
|
|
639
|
-
response:
|
|
640
|
-
error:
|
|
638
|
+
data: m(() => a.value),
|
|
639
|
+
response: a,
|
|
640
|
+
error: i,
|
|
641
641
|
isValidating: n,
|
|
642
|
-
revalidate:
|
|
642
|
+
revalidate: s
|
|
643
643
|
};
|
|
644
644
|
}
|
|
645
645
|
const M = {
|
|
646
|
-
useI18n:
|
|
647
|
-
useMetricCardBuilder:
|
|
648
|
-
useMetricFetcher:
|
|
649
|
-
useTrendRange:
|
|
650
|
-
useRequest:
|
|
651
|
-
},
|
|
646
|
+
useI18n: hr,
|
|
647
|
+
useMetricCardBuilder: Ir,
|
|
648
|
+
useMetricFetcher: Cr,
|
|
649
|
+
useTrendRange: Ar,
|
|
650
|
+
useRequest: qr
|
|
651
|
+
}, Ue = Symbol("METRICS_PROVIDER_KEY"), $r = (e) => {
|
|
652
652
|
const {
|
|
653
653
|
datasource: r,
|
|
654
654
|
dimension: t,
|
|
655
|
-
dimensionFilterValue:
|
|
656
|
-
additionalFilter:
|
|
655
|
+
dimensionFilterValue: a,
|
|
656
|
+
additionalFilter: i,
|
|
657
657
|
queryReady: n,
|
|
658
|
-
timeRange:
|
|
659
|
-
hasTrendAccess:
|
|
660
|
-
refreshInterval:
|
|
658
|
+
timeRange: s,
|
|
659
|
+
hasTrendAccess: c,
|
|
660
|
+
refreshInterval: d,
|
|
661
661
|
abortController: o,
|
|
662
|
-
queryFn:
|
|
662
|
+
queryFn: l,
|
|
663
663
|
averageLatencies: u
|
|
664
664
|
} = e;
|
|
665
|
-
if (
|
|
665
|
+
if (a && !t)
|
|
666
666
|
throw new Error("Must provide a dimension if filtering by a value");
|
|
667
|
-
const
|
|
668
|
-
const
|
|
669
|
-
return
|
|
667
|
+
const f = !!(t && a), h = !!(t && !a), y = m(() => {
|
|
668
|
+
const _ = [];
|
|
669
|
+
return f && _.push({
|
|
670
670
|
field: t,
|
|
671
671
|
operator: "in",
|
|
672
|
-
value: [
|
|
673
|
-
}),
|
|
674
|
-
}),
|
|
672
|
+
value: [a]
|
|
673
|
+
}), i.value && _.push(...er(r.value, i.value)), _;
|
|
674
|
+
}), A = {
|
|
675
675
|
datasource: r,
|
|
676
|
-
metrics:
|
|
676
|
+
metrics: W([
|
|
677
677
|
"request_count"
|
|
678
678
|
]),
|
|
679
679
|
// Traffic and error rate cards should only try to query for the dimension if it's going to be used.
|
|
680
680
|
// It isn't used for single entity queries.
|
|
681
681
|
dimensions: [
|
|
682
|
-
...t && !
|
|
682
|
+
...t && !f ? [t] : [],
|
|
683
683
|
"status_code_grouped"
|
|
684
684
|
],
|
|
685
685
|
filter: y,
|
|
686
686
|
queryReady: n,
|
|
687
|
-
timeRange:
|
|
687
|
+
timeRange: s,
|
|
688
688
|
// Traffic and error rate cards can't query trend if multiple entities are expected.
|
|
689
|
-
withTrend:
|
|
690
|
-
refreshInterval:
|
|
691
|
-
queryFn:
|
|
689
|
+
withTrend: m(() => c.value && !h),
|
|
690
|
+
refreshInterval: d,
|
|
691
|
+
queryFn: l,
|
|
692
692
|
abortController: o,
|
|
693
693
|
refreshCounter: e.refreshCounter
|
|
694
694
|
}, p = {
|
|
695
695
|
datasource: r,
|
|
696
|
-
metrics:
|
|
696
|
+
metrics: m(() => [
|
|
697
697
|
u.value ? "response_latency_average" : "response_latency_p99"
|
|
698
698
|
]),
|
|
699
699
|
// To keep single-entity queries consistent, don't bother querying the dimension for latency
|
|
700
700
|
// in the single-entity case, even though it's possible.
|
|
701
|
-
...t && !
|
|
701
|
+
...t && !f ? { dimensions: [t] } : {},
|
|
702
702
|
filter: y,
|
|
703
703
|
queryReady: n,
|
|
704
|
-
timeRange:
|
|
704
|
+
timeRange: s,
|
|
705
705
|
// Don't query latency trends in the multi-entity case: it's possible, but wasteful.
|
|
706
|
-
withTrend:
|
|
707
|
-
refreshInterval:
|
|
708
|
-
queryFn:
|
|
706
|
+
withTrend: m(() => c.value && !h),
|
|
707
|
+
refreshInterval: d,
|
|
708
|
+
queryFn: l,
|
|
709
709
|
abortController: o,
|
|
710
710
|
refreshCounter: e.refreshCounter
|
|
711
|
-
},
|
|
711
|
+
}, g = M.useMetricFetcher(A), v = M.useMetricFetcher(p);
|
|
712
712
|
return {
|
|
713
|
-
trafficData:
|
|
714
|
-
latencyData:
|
|
713
|
+
trafficData: g,
|
|
714
|
+
latencyData: v
|
|
715
715
|
};
|
|
716
|
-
},
|
|
716
|
+
}, Et = /* @__PURE__ */ Z({
|
|
717
717
|
__name: "MetricsProvider",
|
|
718
718
|
props: {
|
|
719
719
|
datasource: { default: void 0 },
|
|
@@ -723,7 +723,7 @@ const M = {
|
|
|
723
723
|
filterValue: { default: void 0 },
|
|
724
724
|
additionalFilter: { default: void 0 },
|
|
725
725
|
queryReady: { type: Boolean, default: !0 },
|
|
726
|
-
refreshInterval: { default:
|
|
726
|
+
refreshInterval: { default: Rr },
|
|
727
727
|
longCardTitles: { type: Boolean, default: !1 },
|
|
728
728
|
containerTitle: { default: void 0 },
|
|
729
729
|
description: { default: void 0 },
|
|
@@ -733,100 +733,91 @@ const M = {
|
|
|
733
733
|
},
|
|
734
734
|
setup(e) {
|
|
735
735
|
const r = e;
|
|
736
|
-
if (r.dimension &&
|
|
736
|
+
if (r.dimension && rr.findIndex((f) => f === r.dimension) === -1)
|
|
737
737
|
throw new Error(`Attempted to use MetricsProvider with an invalid dimension: ${r.dimension}`);
|
|
738
|
-
const t =
|
|
739
|
-
let
|
|
740
|
-
t ?
|
|
741
|
-
const
|
|
742
|
-
const
|
|
743
|
-
return
|
|
738
|
+
const t = Ve(Tr);
|
|
739
|
+
let a;
|
|
740
|
+
t ? a = t.queryFn : (console.warn("Analytics dashboards require a query bridge supplied via provide / inject."), console.warn("Please ensure your application has a query bridge provided under the key 'analytics-query-provider', as described in"), console.warn("https://github.com/Kong/public-ui-components/blob/main/packages/analytics/analytics-metric-provider/README.md#requirements"), a = () => Promise.reject(new Error("Query bridge required")));
|
|
741
|
+
const i = ar(), n = m(() => !0), s = m(() => !i.loading && r.queryReady), c = m(() => r.datasource ? r.datasource : "basic"), d = m(() => {
|
|
742
|
+
const f = r.overrideTimeRange;
|
|
743
|
+
return f && !f.tz && (f.tz = new Intl.DateTimeFormat().resolvedOptions().timeZone), f || {
|
|
744
744
|
type: "relative",
|
|
745
745
|
time_range: "7d",
|
|
746
746
|
tz: new Intl.DateTimeFormat().resolvedOptions().timeZone
|
|
747
747
|
};
|
|
748
|
-
}), o =
|
|
749
|
-
trafficData:
|
|
748
|
+
}), o = m(() => !r.percentileLatency), {
|
|
749
|
+
trafficData: l,
|
|
750
750
|
latencyData: u
|
|
751
|
-
} =
|
|
752
|
-
datasource:
|
|
751
|
+
} = $r({
|
|
752
|
+
datasource: c,
|
|
753
753
|
dimension: r.dimension,
|
|
754
754
|
dimensionFilterValue: r.filterValue,
|
|
755
|
-
additionalFilter:
|
|
756
|
-
queryReady:
|
|
757
|
-
timeRange:
|
|
755
|
+
additionalFilter: j(r, "additionalFilter"),
|
|
756
|
+
queryReady: s,
|
|
757
|
+
timeRange: d,
|
|
758
758
|
hasTrendAccess: n,
|
|
759
759
|
refreshInterval: r.refreshInterval,
|
|
760
|
-
queryFn:
|
|
760
|
+
queryFn: a,
|
|
761
761
|
averageLatencies: o,
|
|
762
762
|
abortController: r.abortController,
|
|
763
|
-
refreshCounter:
|
|
763
|
+
refreshCounter: j(r, "refreshCounter")
|
|
764
764
|
});
|
|
765
|
-
return
|
|
765
|
+
return Ye(Ue, {
|
|
766
766
|
data: {
|
|
767
|
-
traffic:
|
|
767
|
+
traffic: l,
|
|
768
768
|
latency: u
|
|
769
769
|
},
|
|
770
|
-
description:
|
|
771
|
-
containerTitle:
|
|
770
|
+
description: j(() => r.description),
|
|
771
|
+
containerTitle: j(() => r.containerTitle),
|
|
772
772
|
hasTrendAccess: n,
|
|
773
773
|
longCardTitles: r.longCardTitles,
|
|
774
774
|
averageLatencies: o
|
|
775
|
-
}), (
|
|
775
|
+
}), (f, h) => Me(f.$slots, "default", {
|
|
776
776
|
hasTrendAccess: n.value,
|
|
777
|
-
timeRange:
|
|
777
|
+
timeRange: d.value
|
|
778
778
|
});
|
|
779
779
|
}
|
|
780
|
-
})
|
|
781
|
-
|
|
782
|
-
|
|
780
|
+
}), Ie = 1e3, Ur = 1e4, Ae = 1e6, De = 1e9, we = 1e12, X = (e, r) => {
|
|
781
|
+
if (r.separator === !1 || e < 1e3)
|
|
782
|
+
return e.toString();
|
|
783
|
+
const t = typeof r.separator == "string" ? r.separator : ",", a = [];
|
|
784
|
+
return Math.round(e).toString().split("").reverse().forEach((n, s) => {
|
|
785
|
+
s && s % 3 === 0 && a.push(t), a.push(n);
|
|
786
|
+
}), a.reverse().join("");
|
|
787
|
+
}, q = (e, r, t) => {
|
|
788
|
+
const a = e / r, i = t.round ? "round" : "floor";
|
|
789
|
+
if (t.decimal === !1)
|
|
790
|
+
return Math[i](a).toString();
|
|
791
|
+
let n;
|
|
792
|
+
t.precision ? n = a : n = a < 10 ? Math[i](a * 10) / 10 : Math[i](a);
|
|
793
|
+
let s = n.toString();
|
|
794
|
+
return typeof t.decimal == "string" && (s = s.replace(".", t.decimal)), s;
|
|
795
|
+
};
|
|
796
|
+
function Pe(e, r = {}) {
|
|
797
|
+
let t;
|
|
798
|
+
const a = e < 0;
|
|
799
|
+
a && (e = Math.abs(e)), r.precision && (e = parseFloat(e.toPrecision(r.precision)));
|
|
800
|
+
const i = r.min10k ? Ur : Ie;
|
|
801
|
+
return e < i || r.precision && r.precision > Math.log10(e) ? t = X(q(e, 1, r), r) : e < Ae ? t = `${q(e, Ie, r)}k` : e < De ? t = `${q(e, Ae, r)}m` : e < we ? t = `${X(q(e, De, r), r)}b` : t = `${X(q(e, we, r), r)}t`, a && (t = `-${t}`), r.capital && (t = t.toUpperCase()), r.prefix && (t = `${r.prefix}${t}`), r.suffix && (t = `${t}${r.suffix}`), t;
|
|
783
802
|
}
|
|
784
|
-
|
|
785
|
-
(function(e) {
|
|
786
|
-
(function() {
|
|
787
|
-
function r(o, s) {
|
|
788
|
-
if (s.separator === !1 || o < 1e3)
|
|
789
|
-
return o.toString();
|
|
790
|
-
var u = typeof s.separator == "string" ? s.separator : ",", c = [], v = Math.round(o).toString().split("");
|
|
791
|
-
return v.reverse().forEach(function(y, _) {
|
|
792
|
-
_ && _ % 3 === 0 && c.push(u), c.push(y);
|
|
793
|
-
}), c.reverse().join("");
|
|
794
|
-
}
|
|
795
|
-
function t(o, s, u) {
|
|
796
|
-
var c = o / s, v = u.round ? "round" : "floor";
|
|
797
|
-
return u.decimal === !1 ? (o = Math[v](c), o.toString()) : (u.precision ? o = c : o = c < 10 ? Math[v](c * 10) / 10 : Math[v](c), o = o.toString(), typeof u.decimal == "string" && (o = o.replace(".", u.decimal)), o);
|
|
798
|
-
}
|
|
799
|
-
var i = 1e3, a = 1e4, n = 1e6, l = 1e9, d = 1e12;
|
|
800
|
-
function f(o, s) {
|
|
801
|
-
var u;
|
|
802
|
-
s = s || {};
|
|
803
|
-
var c = o < 0;
|
|
804
|
-
c && (o = Math.abs(o)), s.precision && (o = parseFloat(o.toPrecision(s.precision)));
|
|
805
|
-
var v = s.min10k ? a : i;
|
|
806
|
-
return o < v || s.precision && s.precision > Math.log10(o) ? u = r(t(o, 1, s), s) : o < n ? u = t(o, i, s) + "k" : o < l ? u = t(o, n, s) + "m" : o < d ? u = r(t(o, l, s), s) + "b" : u = r(t(o, d, s), s) + "t", c && (u = "-" + u), s.capital && (u = u.toUpperCase()), s.prefix && (u = s.prefix + u), s.suffix && (u = u + s.suffix), u;
|
|
807
|
-
}
|
|
808
|
-
f.addCommas = r, e.exports = f;
|
|
809
|
-
})();
|
|
810
|
-
})(ke);
|
|
811
|
-
var kr = ke.exports;
|
|
812
|
-
const Fr = /* @__PURE__ */ Nr(kr);
|
|
803
|
+
Pe.addCommas = X;
|
|
813
804
|
var O = /* @__PURE__ */ ((e) => (e.GENERIC_COUNT = "GenericCount", e.TRAFFIC = "Traffic", e.ERROR_RATE = "ErrorRate", e.LATENCY = "Latency", e))(O || {}), D = /* @__PURE__ */ ((e) => (e.Small = "sm", e.Medium = "md", e.Large = "lg", e.ExtraLarge = "xl", e))(D || {});
|
|
814
|
-
const
|
|
815
|
-
let
|
|
816
|
-
return t && (
|
|
817
|
-
},
|
|
805
|
+
const de = 2, be = de + 2, Pr = (e, r, t = !1) => {
|
|
806
|
+
let a = !r || Number(e.toFixed(be)) === 0 ? 0 : Number(e.toFixed(be)) > 0 ? 1 : -1;
|
|
807
|
+
return t && (a *= -1), a;
|
|
808
|
+
}, zr = (e, r, t) => r ? `${Math.abs(e * 100).toFixed(de)}%` : t, Kr = (e, r) => r === 0 ? 0 : e / r - 1, Br = (e, r = !1) => (r && (e *= -1), e > 0 ? ir : e < 0 ? or : Fe), Xr = "#ad000e", ue = "#6c7489", Oe = "#52596e", Gr = "#007d60", Y = "16px", Hr = "20px", jr = {
|
|
818
809
|
key: 0,
|
|
819
810
|
class: "metricscard-description"
|
|
820
|
-
},
|
|
811
|
+
}, Yr = { class: "metricscard-valuetrend" }, Qr = {
|
|
821
812
|
key: 0,
|
|
822
813
|
class: "metricscard-error"
|
|
823
|
-
},
|
|
814
|
+
}, Wr = {
|
|
824
815
|
key: 2,
|
|
825
816
|
class: "metricscard-trend"
|
|
826
|
-
},
|
|
817
|
+
}, Jr = { "data-testid": "metric-trend-change" }, Zr = {
|
|
827
818
|
key: 0,
|
|
828
819
|
class: "metricscard-trend-range"
|
|
829
|
-
},
|
|
820
|
+
}, et = /* @__PURE__ */ Z({
|
|
830
821
|
__name: "MetricsCard",
|
|
831
822
|
props: {
|
|
832
823
|
cardType: {
|
|
@@ -868,7 +859,7 @@ const le = 2, _e = le + 2, xr = (e, r, t = !1) => {
|
|
|
868
859
|
},
|
|
869
860
|
trendIcon: {
|
|
870
861
|
type: Object,
|
|
871
|
-
default:
|
|
862
|
+
default: Fe
|
|
872
863
|
},
|
|
873
864
|
trendRange: {
|
|
874
865
|
type: String,
|
|
@@ -899,61 +890,61 @@ const le = 2, _e = le + 2, xr = (e, r, t = !1) => {
|
|
|
899
890
|
},
|
|
900
891
|
setup(e) {
|
|
901
892
|
const r = /* @__PURE__ */ new Map([
|
|
902
|
-
[O.GENERIC_COUNT,
|
|
903
|
-
[O.TRAFFIC,
|
|
904
|
-
[O.ERROR_RATE,
|
|
905
|
-
[O.LATENCY,
|
|
906
|
-
]), t = e,
|
|
907
|
-
const
|
|
908
|
-
red: `var(--kui-color-text-danger-strong, ${
|
|
909
|
-
green: `var(--kui-color-text-success, ${
|
|
910
|
-
grey: `var(--kui-color-text-neutral-strong, ${
|
|
893
|
+
[O.GENERIC_COUNT, sr],
|
|
894
|
+
[O.TRAFFIC, ur],
|
|
895
|
+
[O.ERROR_RATE, lr],
|
|
896
|
+
[O.LATENCY, cr]
|
|
897
|
+
]), t = e, a = (c) => {
|
|
898
|
+
const d = {
|
|
899
|
+
red: `var(--kui-color-text-danger-strong, ${Xr})`,
|
|
900
|
+
green: `var(--kui-color-text-success, ${Gr})`,
|
|
901
|
+
grey: `var(--kui-color-text-neutral-strong, ${Oe})`
|
|
911
902
|
};
|
|
912
|
-
return
|
|
913
|
-
},
|
|
914
|
-
return (
|
|
915
|
-
const o =
|
|
903
|
+
return c > 0 ? d.green : c < 0 ? d.red : d.grey;
|
|
904
|
+
}, i = (c) => c > 0 ? "positive" : c < 0 ? "negative" : "neutral", n = [D.Medium, D.Large].includes(t.cardSize), s = [D.Small].includes(t.cardSize);
|
|
905
|
+
return (c, d) => {
|
|
906
|
+
const o = Ne("KTooltip");
|
|
916
907
|
return R(), S("div", {
|
|
917
908
|
class: z(["metricscard", e.cardSize])
|
|
918
909
|
}, [
|
|
919
910
|
x("div", {
|
|
920
911
|
class: z(["metricscard-title", e.cardSize])
|
|
921
912
|
}, [
|
|
922
|
-
T(
|
|
913
|
+
T(s) ? V("", !0) : (R(), $(ne(T(r).get(e.cardType)), {
|
|
923
914
|
key: 0,
|
|
924
915
|
class: "metricscard-icon",
|
|
925
|
-
color: `var(--kui-color-text-neutral, ${T(
|
|
926
|
-
size: T(
|
|
916
|
+
color: `var(--kui-color-text-neutral, ${T(ue)})`,
|
|
917
|
+
size: T(Y)
|
|
927
918
|
}, null, 8, ["color", "size"])),
|
|
928
|
-
(R(),
|
|
929
|
-
default:
|
|
930
|
-
|
|
919
|
+
(R(), $(ne(e.titleTag), null, {
|
|
920
|
+
default: pe(() => [
|
|
921
|
+
ke(b(e.title), 1)
|
|
931
922
|
]),
|
|
932
923
|
_: 1
|
|
933
924
|
})),
|
|
934
|
-
e.tooltip ? (R(),
|
|
925
|
+
e.tooltip ? (R(), $(o, {
|
|
935
926
|
key: 1,
|
|
936
927
|
class: "metricscard-tooltip",
|
|
937
928
|
placement: "right",
|
|
938
929
|
text: e.tooltip
|
|
939
930
|
}, {
|
|
940
|
-
default:
|
|
941
|
-
F(T(
|
|
942
|
-
color: `var(--kui-color-text-neutral, ${T(
|
|
943
|
-
size: T(
|
|
931
|
+
default: pe(() => [
|
|
932
|
+
F(T(dr), {
|
|
933
|
+
color: `var(--kui-color-text-neutral, ${T(ue)})`,
|
|
934
|
+
size: T(Y)
|
|
944
935
|
}, null, 8, ["color", "size"])
|
|
945
936
|
]),
|
|
946
937
|
_: 1
|
|
947
938
|
}, 8, ["text"])) : V("", !0)
|
|
948
939
|
], 2),
|
|
949
|
-
e.description && T(n) ? (R(), S("div",
|
|
940
|
+
e.description && T(n) ? (R(), S("div", jr, [
|
|
950
941
|
x("span", null, b(e.description), 1)
|
|
951
942
|
])) : V("", !0),
|
|
952
|
-
x("div",
|
|
953
|
-
e.hasError ? (R(), S("div",
|
|
954
|
-
F(T(
|
|
955
|
-
color: `var(--kui-color-text-neutral, ${T(
|
|
956
|
-
size: T(
|
|
943
|
+
x("div", Yr, [
|
|
944
|
+
e.hasError ? (R(), S("div", Qr, [
|
|
945
|
+
F(T(xe), {
|
|
946
|
+
color: `var(--kui-color-text-neutral, ${T(ue)})`,
|
|
947
|
+
size: T(Hr)
|
|
957
948
|
}, null, 8, ["color", "size"]),
|
|
958
949
|
x("div", null, " " + b(e.errorMessage), 1)
|
|
959
950
|
])) : (R(), S("div", {
|
|
@@ -961,57 +952,57 @@ const le = 2, _e = le + 2, xr = (e, r, t = !1) => {
|
|
|
961
952
|
class: z(["metricscard-value", e.cardSize]),
|
|
962
953
|
"data-testid": "metric-value"
|
|
963
954
|
}, b(e.metricValue), 3)),
|
|
964
|
-
T(n) ? (R(), S("div",
|
|
955
|
+
T(n) ? (R(), S("div", Wr, [
|
|
965
956
|
x("div", {
|
|
966
|
-
class: z(["metricscard-trend-change",
|
|
957
|
+
class: z(["metricscard-trend-change", i(e.changePolarity)]),
|
|
967
958
|
"data-testid": "metric-trend-parent"
|
|
968
959
|
}, [
|
|
969
|
-
e.changePolarity !== 0 ? (R(),
|
|
960
|
+
e.changePolarity !== 0 ? (R(), $(ne(e.trendIcon), {
|
|
970
961
|
key: 0,
|
|
971
|
-
color:
|
|
972
|
-
size: T(
|
|
973
|
-
}, null, 8, ["color", "size"])) : (R(),
|
|
962
|
+
color: a(e.changePolarity),
|
|
963
|
+
size: T(Y)
|
|
964
|
+
}, null, 8, ["color", "size"])) : (R(), $(T(fr), {
|
|
974
965
|
key: 1,
|
|
975
|
-
color: `var(--kui-color-text-neutral-strong, ${T(
|
|
976
|
-
size: T(
|
|
966
|
+
color: `var(--kui-color-text-neutral-strong, ${T(Oe)})`,
|
|
967
|
+
size: T(Y)
|
|
977
968
|
}, null, 8, ["color", "size"])),
|
|
978
|
-
x("div",
|
|
969
|
+
x("div", Jr, b(e.metricChange), 1)
|
|
979
970
|
], 2),
|
|
980
|
-
e.trendRange ? (R(), S("div",
|
|
971
|
+
e.trendRange ? (R(), S("div", Zr, b(e.trendRange), 1)) : V("", !0)
|
|
981
972
|
])) : V("", !0)
|
|
982
973
|
])
|
|
983
974
|
], 2);
|
|
984
975
|
};
|
|
985
976
|
}
|
|
986
|
-
}),
|
|
977
|
+
}), fe = (e, r) => {
|
|
987
978
|
const t = e.__vccOpts || e;
|
|
988
|
-
for (const [
|
|
989
|
-
t[
|
|
979
|
+
for (const [a, i] of r)
|
|
980
|
+
t[a] = i;
|
|
990
981
|
return t;
|
|
991
|
-
},
|
|
992
|
-
function
|
|
993
|
-
const t =
|
|
994
|
-
return R(), S("div",
|
|
982
|
+
}, rt = /* @__PURE__ */ fe(et, [["__scopeId", "data-v-b1513f6f"]]), tt = {}, nt = { class: "loading-tabs" };
|
|
983
|
+
function at(e, r) {
|
|
984
|
+
const t = Ne("KSkeletonBox");
|
|
985
|
+
return R(), S("div", nt, [
|
|
995
986
|
F(t, { width: "100" }),
|
|
996
987
|
F(t, { width: "75" })
|
|
997
988
|
]);
|
|
998
989
|
}
|
|
999
|
-
const
|
|
990
|
+
const it = /* @__PURE__ */ fe(tt, [["render", at], ["__scopeId", "data-v-9c7113d7"]]), ot = {
|
|
1000
991
|
key: 0,
|
|
1001
992
|
class: "container-title"
|
|
1002
|
-
},
|
|
993
|
+
}, st = {
|
|
1003
994
|
key: 0,
|
|
1004
995
|
class: "container-description"
|
|
1005
|
-
},
|
|
996
|
+
}, ut = {
|
|
1006
997
|
key: 1,
|
|
1007
998
|
class: "error-display"
|
|
1008
|
-
},
|
|
999
|
+
}, lt = {
|
|
1009
1000
|
key: 0,
|
|
1010
1001
|
class: "error-display-message"
|
|
1011
|
-
},
|
|
1002
|
+
}, ct = {
|
|
1012
1003
|
key: 2,
|
|
1013
1004
|
class: "cards-wrapper"
|
|
1014
|
-
},
|
|
1005
|
+
}, dt = /* @__PURE__ */ Z({
|
|
1015
1006
|
__name: "MetricCardContainer",
|
|
1016
1007
|
props: {
|
|
1017
1008
|
fallbackDisplayText: {
|
|
@@ -1054,52 +1045,52 @@ const rt = /* @__PURE__ */ ce(Jr, [["render", et], ["__scopeId", "data-v-9c7113d
|
|
|
1054
1045
|
}
|
|
1055
1046
|
},
|
|
1056
1047
|
setup(e) {
|
|
1057
|
-
const r = e, t =
|
|
1058
|
-
const n =
|
|
1048
|
+
const r = e, t = m(() => r.cards.every((i) => (i == null ? void 0 : i.hasError) === !0)), a = (i) => {
|
|
1049
|
+
const n = Kr(i.currentValue, i.previousValue) || 0, s = Pr(n, r.hasTrendAccess, i.increaseIsBad);
|
|
1059
1050
|
return {
|
|
1060
|
-
metricValue:
|
|
1061
|
-
metricChange:
|
|
1062
|
-
changePolarity:
|
|
1063
|
-
trendIcon:
|
|
1051
|
+
metricValue: i.formatValueFn ? i.formatValueFn(i.currentValue) : Pe(i.currentValue, { capital: !0, round: !0 }) || "0",
|
|
1052
|
+
metricChange: i.formatChangeFn ? i.formatChangeFn(n) : zr(n, r.hasTrendAccess, r.fallbackDisplayText),
|
|
1053
|
+
changePolarity: s,
|
|
1054
|
+
trendIcon: Br(s, i.increaseIsBad),
|
|
1064
1055
|
cardSize: r.cardSize,
|
|
1065
1056
|
hasContainerTitle: !!r.containerTitle
|
|
1066
1057
|
};
|
|
1067
1058
|
};
|
|
1068
|
-
return (
|
|
1059
|
+
return (i, n) => (R(), S("div", {
|
|
1069
1060
|
class: z(["kong-ui-public-metric-card-container", e.cardSize])
|
|
1070
1061
|
}, [
|
|
1071
|
-
r.containerTitle || r.containerDescription ? (R(), S("div",
|
|
1072
|
-
|
|
1073
|
-
r.containerDescription ? (R(), S("div",
|
|
1062
|
+
r.containerTitle || r.containerDescription ? (R(), S("div", ot, [
|
|
1063
|
+
ke(b(r.containerTitle) + " ", 1),
|
|
1064
|
+
r.containerDescription ? (R(), S("div", st, b(r.containerDescription), 1)) : V("", !0)
|
|
1074
1065
|
])) : V("", !0),
|
|
1075
|
-
t.value ? (R(), S("div",
|
|
1076
|
-
F(T(
|
|
1077
|
-
e.errorMessage ? (R(), S("div",
|
|
1078
|
-
])) : (R(), S("div",
|
|
1079
|
-
(R(!0), S(
|
|
1066
|
+
t.value ? (R(), S("div", ut, [
|
|
1067
|
+
F(T(xe), { class: "error-display-icon" }),
|
|
1068
|
+
e.errorMessage ? (R(), S("div", lt, b(e.errorMessage), 1)) : V("", !0)
|
|
1069
|
+
])) : (R(), S("div", ct, [
|
|
1070
|
+
(R(!0), S(Re, null, Qe(e.cards, (s, c) => (R(), S(Re, null, [
|
|
1080
1071
|
e.loading ? (R(), S("div", {
|
|
1081
|
-
key: `skeleton-${
|
|
1072
|
+
key: `skeleton-${c}`,
|
|
1082
1073
|
class: "loading-tab"
|
|
1083
1074
|
}, [
|
|
1084
|
-
F(
|
|
1075
|
+
F(it, {
|
|
1085
1076
|
class: z(e.cardSize === T(D).Small ? "loading-tabs-small" : "loading-tabs-large")
|
|
1086
1077
|
}, null, 8, ["class"])
|
|
1087
|
-
])) : (R(),
|
|
1078
|
+
])) : (R(), $(rt, We({ key: c }, { ref_for: !0 }, a(s), {
|
|
1088
1079
|
"card-size": e.cardSize,
|
|
1089
|
-
"card-type":
|
|
1090
|
-
description:
|
|
1080
|
+
"card-type": s.cardType,
|
|
1081
|
+
description: s.description,
|
|
1091
1082
|
"error-message": e.errorMessage,
|
|
1092
|
-
"has-error":
|
|
1093
|
-
title:
|
|
1094
|
-
"title-tag":
|
|
1095
|
-
tooltip:
|
|
1096
|
-
"trend-range":
|
|
1083
|
+
"has-error": s.hasError,
|
|
1084
|
+
title: s.title,
|
|
1085
|
+
"title-tag": s.titleTag,
|
|
1086
|
+
tooltip: s.tooltip,
|
|
1087
|
+
"trend-range": s.trendRange
|
|
1097
1088
|
}), null, 16, ["card-size", "card-type", "description", "error-message", "has-error", "title", "title-tag", "tooltip", "trend-range"]))
|
|
1098
1089
|
], 64))), 256))
|
|
1099
1090
|
]))
|
|
1100
1091
|
], 2));
|
|
1101
1092
|
}
|
|
1102
|
-
}),
|
|
1093
|
+
}), ft = /* @__PURE__ */ fe(dt, [["__scopeId", "data-v-7080ba56"]]), St = /* @__PURE__ */ Z({
|
|
1103
1094
|
__name: "MetricsConsumer",
|
|
1104
1095
|
props: {
|
|
1105
1096
|
lookupKey: { default: void 0 },
|
|
@@ -1107,74 +1098,74 @@ const rt = /* @__PURE__ */ ce(Jr, [["render", et], ["__scopeId", "data-v-9c7113d
|
|
|
1107
1098
|
cardToDisplay: { default: void 0 }
|
|
1108
1099
|
},
|
|
1109
1100
|
setup(e) {
|
|
1110
|
-
const r = e, t =
|
|
1101
|
+
const r = e, t = Ve(Ue);
|
|
1111
1102
|
if (!t)
|
|
1112
1103
|
throw new Error("MetricsConsumer must be nested inside a MetricsProvider instance.");
|
|
1113
|
-
const { traffic:
|
|
1104
|
+
const { traffic: a, latency: i } = t.data, { i18n: n } = M.useI18n(), s = m(() => t.containerTitle.value ? D.Medium : r.cardSize), c = M.useMetricCardBuilder({
|
|
1114
1105
|
cardType: O.TRAFFIC,
|
|
1115
|
-
title:
|
|
1116
|
-
record:
|
|
1117
|
-
hasError:
|
|
1106
|
+
title: m(() => t.longCardTitles ? n.t("metricCard.long.traffic") : n.t("metricCard.short.traffic")),
|
|
1107
|
+
record: a.mapped,
|
|
1108
|
+
hasError: a.hasError,
|
|
1118
1109
|
lookupKey: r.lookupKey,
|
|
1119
|
-
sumGroupedValues:
|
|
1120
|
-
trendRange:
|
|
1121
|
-
}),
|
|
1122
|
-
const p =
|
|
1110
|
+
sumGroupedValues: G,
|
|
1111
|
+
trendRange: a.trendRange
|
|
1112
|
+
}), d = (p) => `${p.toFixed(de)}%`, o = m(() => {
|
|
1113
|
+
const p = a.mapped.value, g = K(p, "current", r.lookupKey, Te), v = K(p, "current", r.lookupKey, G), _ = g / v * 100 || 0, E = K(p, "previous", r.lookupKey, Te), C = K(p, "previous", r.lookupKey, G), I = E / C * 100 || 0;
|
|
1123
1114
|
return {
|
|
1124
1115
|
cardType: O.ERROR_RATE,
|
|
1125
|
-
hasError:
|
|
1126
|
-
currentValue:
|
|
1127
|
-
previousValue:
|
|
1128
|
-
formatValueFn:
|
|
1116
|
+
hasError: a.hasError.value,
|
|
1117
|
+
currentValue: _,
|
|
1118
|
+
previousValue: I,
|
|
1119
|
+
formatValueFn: d,
|
|
1129
1120
|
title: t.longCardTitles ? n.t("metricCard.long.errorRate") : n.t("metricCard.short.errorRate"),
|
|
1130
1121
|
increaseIsBad: !0,
|
|
1131
|
-
trendRange:
|
|
1122
|
+
trendRange: a.trendRange.value
|
|
1132
1123
|
};
|
|
1133
|
-
}),
|
|
1124
|
+
}), l = (p) => `${p}ms`, u = M.useMetricCardBuilder({
|
|
1134
1125
|
cardType: O.LATENCY,
|
|
1135
|
-
title:
|
|
1136
|
-
const { longCardTitles: p, averageLatencies:
|
|
1137
|
-
return p ? n.t(`metricCard.long.${
|
|
1126
|
+
title: m(() => {
|
|
1127
|
+
const { longCardTitles: p, averageLatencies: g } = t, v = g.value ? "averageLatency" : "p99Latency";
|
|
1128
|
+
return p ? n.t(`metricCard.long.${v}`) : s.value === D.Small ? n.t(`metricCard.small.${v}`) : n.t(`metricCard.short.${v}`);
|
|
1138
1129
|
}),
|
|
1139
|
-
hasError:
|
|
1140
|
-
record:
|
|
1130
|
+
hasError: i.hasError,
|
|
1131
|
+
record: i.mapped,
|
|
1141
1132
|
lookupKey: r.lookupKey,
|
|
1142
1133
|
increaseIsBad: !0,
|
|
1143
|
-
formatValueFn:
|
|
1144
|
-
trendRange:
|
|
1145
|
-
}),
|
|
1146
|
-
cards:
|
|
1134
|
+
formatValueFn: l,
|
|
1135
|
+
trendRange: i.trendRange
|
|
1136
|
+
}), f = m(() => r.cardToDisplay === "TRAFFIC" ? [c.value] : r.cardToDisplay === "ERROR_RATE" ? [o.value] : r.cardToDisplay === "LATENCY" ? [u.value] : [c.value, o.value, u.value]), h = m(() => r.cardToDisplay === "TRAFFIC" || r.cardToDisplay === "ERROR_RATE" ? a.isLoading.value : r.cardToDisplay === "LATENCY" ? i.isLoading.value : a.isLoading.value || i.isLoading.value), y = m(() => ({
|
|
1137
|
+
cards: f.value,
|
|
1147
1138
|
containerTitle: t.containerTitle.value,
|
|
1148
1139
|
containerDescription: t.description.value,
|
|
1149
|
-
loading:
|
|
1140
|
+
loading: h.value,
|
|
1150
1141
|
hasTrendAccess: t.hasTrendAccess.value,
|
|
1151
1142
|
fallbackDisplayText: n.t("general.notAvailable"),
|
|
1152
|
-
cardSize:
|
|
1143
|
+
cardSize: s.value,
|
|
1153
1144
|
hideTitle: !0
|
|
1154
|
-
})),
|
|
1145
|
+
})), A = m(() => ({
|
|
1155
1146
|
loading: y.value.loading,
|
|
1156
|
-
trafficCard:
|
|
1147
|
+
trafficCard: c.value,
|
|
1157
1148
|
errorRateCard: o.value,
|
|
1158
1149
|
latencyCard: u.value,
|
|
1159
|
-
errorRateFormatted:
|
|
1160
|
-
latencyFormatted:
|
|
1150
|
+
errorRateFormatted: d(o.value.currentValue),
|
|
1151
|
+
latencyFormatted: l(u.value.currentValue)
|
|
1161
1152
|
}));
|
|
1162
|
-
return (p,
|
|
1163
|
-
F(
|
|
1153
|
+
return (p, g) => Me(p.$slots, "default", { cardValues: A.value }, () => [
|
|
1154
|
+
F(ft, Je(Ze(y.value)), null, 16)
|
|
1164
1155
|
]);
|
|
1165
1156
|
}
|
|
1166
|
-
}),
|
|
1157
|
+
}), Q = (e) => new Date(e), _t = (e, r) => {
|
|
1167
1158
|
const t = e.body;
|
|
1168
1159
|
e.reply({
|
|
1169
1160
|
statusCode: 200,
|
|
1170
|
-
body:
|
|
1161
|
+
body: vt(t, r)
|
|
1171
1162
|
});
|
|
1172
|
-
},
|
|
1173
|
-
var
|
|
1163
|
+
}, Le = (e) => e.reduce((r, t) => (r[t] = { name: t }, r), {}), vt = (e, r) => {
|
|
1164
|
+
var A, p, g;
|
|
1174
1165
|
const t = r != null && r.timeRange && {
|
|
1175
1166
|
start: r.timeRange.start,
|
|
1176
1167
|
end: r.timeRange.end
|
|
1177
|
-
} || ((
|
|
1168
|
+
} || ((A = e.time_range) == null ? void 0 : A.type) === "absolute" ? {
|
|
1178
1169
|
// @ts-ignore - already asserted time range is absolute above
|
|
1179
1170
|
start: new Date(e.time_range.start),
|
|
1180
1171
|
// @ts-ignore - already asserted time range is absolute above
|
|
@@ -1182,68 +1173,68 @@ const rt = /* @__PURE__ */ ce(Jr, [["render", et], ["__scopeId", "data-v-9c7113d
|
|
|
1182
1173
|
} : {
|
|
1183
1174
|
start: new Date(Date.now() - 864e5),
|
|
1184
1175
|
end: /* @__PURE__ */ new Date()
|
|
1185
|
-
},
|
|
1186
|
-
start: new Date(t.start.getTime() -
|
|
1176
|
+
}, a = t.end.getTime() - t.start.getTime(), i = e.granularity === "trend" ? {
|
|
1177
|
+
start: new Date(t.start.getTime() - a),
|
|
1187
1178
|
end: t.end,
|
|
1188
1179
|
granularity: t.end.getTime() - t.start.getTime()
|
|
1189
1180
|
} : {
|
|
1190
1181
|
start: t.start,
|
|
1191
1182
|
end: t.end,
|
|
1192
1183
|
granularity: t.end.getTime() - t.start.getTime()
|
|
1193
|
-
}, n =
|
|
1184
|
+
}, n = i.end.getTime(), s = i.start.getTime(), c = i.granularity, d = e.granularity === "trend" ? 2 : 1;
|
|
1194
1185
|
if ((e.dimensions ?? []).length > 2)
|
|
1195
1186
|
throw new Error(`Explore only supports 0-2 dimensions; got: ${JSON.stringify(e.dimensions)}`);
|
|
1196
|
-
const o = (e.dimensions ?? []).find((
|
|
1197
|
-
for (let
|
|
1198
|
-
for (let
|
|
1199
|
-
const E = o ? { [o]:
|
|
1200
|
-
(p = e.dimensions) != null && p.includes("status_code_grouped") ?
|
|
1201
|
-
const
|
|
1202
|
-
|
|
1187
|
+
const o = (e.dimensions ?? []).find((v) => v !== "time"), l = (r == null ? void 0 : r.dimensionNames) ?? [], u = Math.max(l.length, 1), f = e.metrics || [], h = [];
|
|
1188
|
+
for (let v = 0; v < d; v++)
|
|
1189
|
+
for (let _ = 0; _ < u; _++) {
|
|
1190
|
+
const E = o ? { [o]: l[_] } : {};
|
|
1191
|
+
(p = e.dimensions) != null && p.includes("status_code_grouped") ? G.forEach((C) => {
|
|
1192
|
+
const I = f.reduce((N, B) => ((r == null ? void 0 : r.deterministic) ?? !0 ? N[B] = (d - v) * 1e3 + 100 * _ + 1 : N[B] = Math.round(Math.random() * 1e3), N), { ...E, status_code_grouped: C });
|
|
1193
|
+
h.push({
|
|
1203
1194
|
version: "v1",
|
|
1204
|
-
timestamp:
|
|
1205
|
-
event:
|
|
1195
|
+
timestamp: v === 0 ? Q(s).toISOString() : Q(s + c).toISOString(),
|
|
1196
|
+
event: I
|
|
1206
1197
|
});
|
|
1207
|
-
}) :
|
|
1198
|
+
}) : h.push({
|
|
1208
1199
|
version: "v1",
|
|
1209
|
-
timestamp:
|
|
1210
|
-
event:
|
|
1200
|
+
timestamp: v === 0 ? Q(s).toISOString() : Q(s + c).toISOString(),
|
|
1201
|
+
event: f.reduce((C, I) => ((r == null ? void 0 : r.deterministic) ?? !0 ? C[I] = (d - v) * 1e3 + 100 * _ + 1 : C[I] = Math.round(Math.random() * 1e3), C), { ...E })
|
|
1211
1202
|
});
|
|
1212
1203
|
}
|
|
1213
1204
|
const y = {
|
|
1214
|
-
start: new Date(
|
|
1205
|
+
start: new Date(s).toISOString(),
|
|
1215
1206
|
end: new Date(n).toISOString(),
|
|
1216
|
-
granularity_ms:
|
|
1207
|
+
granularity_ms: c,
|
|
1217
1208
|
display: o ? {
|
|
1218
|
-
[o]:
|
|
1219
|
-
...(
|
|
1209
|
+
[o]: Le(l),
|
|
1210
|
+
...(g = e.dimensions) != null && g.includes("status_code_grouped") ? { status_code_grouped: Le(G) } : {}
|
|
1220
1211
|
} : {},
|
|
1221
1212
|
metric_names: e.metrics,
|
|
1222
1213
|
query_id: "test"
|
|
1223
1214
|
};
|
|
1224
1215
|
return {
|
|
1225
|
-
data:
|
|
1216
|
+
data: h,
|
|
1226
1217
|
meta: y
|
|
1227
1218
|
};
|
|
1228
1219
|
};
|
|
1229
1220
|
export {
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1221
|
+
G as ALL_STATUS_CODE_GROUPS,
|
|
1222
|
+
de as DECIMAL_DISPLAY,
|
|
1223
|
+
be as DECIMAL_ROUNDING_PRECISION,
|
|
1224
|
+
Rr as DEFAULT_REFRESH_INTERVAL,
|
|
1225
|
+
Tr as INJECT_QUERY_PROVIDER,
|
|
1226
|
+
pr as MAX_ANALYTICS_REQUEST_RETRIES,
|
|
1236
1227
|
D as MetricCardSize,
|
|
1237
1228
|
O as MetricCardType,
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1229
|
+
St as MetricsConsumer,
|
|
1230
|
+
Et as MetricsProvider,
|
|
1231
|
+
Te as STATUS_CODES_FAILED,
|
|
1232
|
+
Tt as STATUS_CODES_SUCCESS,
|
|
1233
|
+
Kr as calculateChange,
|
|
1234
|
+
Pr as changePolarity,
|
|
1235
|
+
Br as defineIcon,
|
|
1236
|
+
zr as metricChange,
|
|
1237
|
+
vt as mockExploreResponse,
|
|
1238
|
+
_t as mockExploreResponseFromCypress,
|
|
1239
|
+
Ar as useTrendRange
|
|
1249
1240
|
};
|