fix: store quick-verify request-rate curves
This commit is contained in:
@@ -834,11 +834,11 @@ function compactQuickVerifyRecordBrowserProcess(value: Record<string, unknown>):
|
|||||||
|
|
||||||
function compactQuickVerifyRecordRequestRate(summaryValue: Record<string, unknown>, curveValue: Record<string, unknown>): Record<string, unknown> | null {
|
function compactQuickVerifyRecordRequestRate(summaryValue: Record<string, unknown>, curveValue: Record<string, unknown>): Record<string, unknown> | null {
|
||||||
const source = Object.keys(curveValue).length > 0 ? curveValue : summaryValue;
|
const source = Object.keys(curveValue).length > 0 ? curveValue : summaryValue;
|
||||||
const summary = record(curveValue.summary);
|
const summary = record(source.summary);
|
||||||
const effectiveSummary = Object.keys(summary).length > 0 ? summary : summaryValue;
|
const effectiveSummary = Object.keys(summary).length > 0 ? summary : summaryValue;
|
||||||
const pageCurves = Array.isArray(curveValue.pageCurves) ? curveValue.pageCurves.map((item) => compactQuickVerifyRecordRequestRateCurve(item, "page")).filter((item) => item.buckets.length > 0).slice(0, 12) : [];
|
const pageCurves = Array.isArray(source.pageCurves) ? source.pageCurves.map((item) => compactQuickVerifyRecordRequestRateCurve(item, "page")).filter((item) => item.buckets.length > 0).slice(0, 12) : [];
|
||||||
const apiPathCurves = Array.isArray(curveValue.apiPathCurves) ? curveValue.apiPathCurves.map((item) => compactQuickVerifyRecordRequestRateCurve(item, "apiPath")).filter((item) => item.buckets.length > 0).slice(0, 16) : [];
|
const apiPathCurves = Array.isArray(source.apiPathCurves) ? source.apiPathCurves.map((item) => compactQuickVerifyRecordRequestRateCurve(item, "apiPath")).filter((item) => item.buckets.length > 0).slice(0, 16) : [];
|
||||||
const buckets = Array.isArray(curveValue.buckets) ? curveValue.buckets.map(compactQuickVerifyRecordRequestRateBucket).filter((item) => item.startAt !== null && item.requestPerMinute !== null).slice(-120) : [];
|
const buckets = Array.isArray(source.buckets) ? source.buckets.map(compactQuickVerifyRecordRequestRateBucket).filter(hasCompactRequestRateBucketPoint).slice(-120) : [];
|
||||||
if (Object.keys(source).length === 0 && pageCurves.length === 0 && apiPathCurves.length === 0 && buckets.length === 0) return null;
|
if (Object.keys(source).length === 0 && pageCurves.length === 0 && apiPathCurves.length === 0 && buckets.length === 0) return null;
|
||||||
return {
|
return {
|
||||||
summary: compactQuickVerifyRecordRequestRateSummary(effectiveSummary),
|
summary: compactQuickVerifyRecordRequestRateSummary(effectiveSummary),
|
||||||
@@ -878,7 +878,7 @@ function compactQuickVerifyRecordRequestRateSummary(value: Record<string, unknow
|
|||||||
|
|
||||||
function compactQuickVerifyRecordRequestRateCurve(value: unknown, scope: string): Record<string, unknown> & { buckets: Record<string, unknown>[] } {
|
function compactQuickVerifyRecordRequestRateCurve(value: unknown, scope: string): Record<string, unknown> & { buckets: Record<string, unknown>[] } {
|
||||||
const item = record(value);
|
const item = record(value);
|
||||||
const buckets = Array.isArray(item.buckets) ? item.buckets.map(compactQuickVerifyRecordRequestRateBucket).filter((bucket) => bucket.startAt !== null && bucket.requestPerMinute !== null).slice(-120) : [];
|
const buckets = Array.isArray(item.buckets) ? item.buckets.map(compactQuickVerifyRecordRequestRateBucket).filter(hasCompactRequestRateBucketPoint).slice(-120) : [];
|
||||||
return {
|
return {
|
||||||
pageKey: stringAtNullable(item, "pageKey"),
|
pageKey: stringAtNullable(item, "pageKey"),
|
||||||
pageRole: stringAtNullable(item, "pageRole"),
|
pageRole: stringAtNullable(item, "pageRole"),
|
||||||
@@ -902,14 +902,18 @@ function compactQuickVerifyRecordRequestRateBucket(value: unknown): Record<strin
|
|||||||
return {
|
return {
|
||||||
bucketStartMs: numberAtNullable(item, "bucketStartMs"),
|
bucketStartMs: numberAtNullable(item, "bucketStartMs"),
|
||||||
bucketEndMs: numberAtNullable(item, "bucketEndMs"),
|
bucketEndMs: numberAtNullable(item, "bucketEndMs"),
|
||||||
startAt: stringAtNullable(item, "startAt"),
|
startAt: stringAtNullable(item, "startAt") ?? stringAtNullable(item, "t"),
|
||||||
endAt: stringAtNullable(item, "endAt"),
|
endAt: stringAtNullable(item, "endAt") ?? stringAtNullable(item, "e"),
|
||||||
count: numberAtNullable(item, "count"),
|
count: numberAtNullable(item, "count") ?? numberAtNullable(item, "c"),
|
||||||
requestPerMinute: numberAtNullable(item, "requestPerMinute"),
|
requestPerMinute: numberAtNullable(item, "requestPerMinute") ?? numberAtNullable(item, "rpm"),
|
||||||
valuesRedacted: true,
|
valuesRedacted: true,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hasCompactRequestRateBucketPoint(value: Record<string, unknown>): boolean {
|
||||||
|
return stringAtNullable(value, "startAt") !== null && numberAtNullable(value, "requestPerMinute") !== null;
|
||||||
|
}
|
||||||
|
|
||||||
function compactQuickVerifyRecordRequestRatePeak(value: unknown): Record<string, unknown> {
|
function compactQuickVerifyRecordRequestRatePeak(value: unknown): Record<string, unknown> {
|
||||||
const item = record(value);
|
const item = record(value);
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user