mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 01:27:41 +00:00
feat(telemetry): addressed PR suggestions
This commit is contained in:
@@ -8,6 +8,9 @@ import { Lock } from "@app/lib/red-lock";
|
|||||||
export const mockKeyStore = (): TKeyStoreFactory => {
|
export const mockKeyStore = (): TKeyStoreFactory => {
|
||||||
const store: Record<string, string | number | Buffer> = {};
|
const store: Record<string, string | number | Buffer> = {};
|
||||||
|
|
||||||
|
const getRegex = (pattern: string) =>
|
||||||
|
new RE2(`^${pattern.replace(/[-[\]/{}()+?.\\^$|]/g, "\\$&").replace(/\*/g, ".*")}$`);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
setItem: async (key, value) => {
|
setItem: async (key, value) => {
|
||||||
store[key] = value;
|
store[key] = value;
|
||||||
@@ -23,7 +26,7 @@ export const mockKeyStore = (): TKeyStoreFactory => {
|
|||||||
return 1;
|
return 1;
|
||||||
},
|
},
|
||||||
deleteItems: async ({ pattern, batchSize = 500, delay = 1500, jitter = 200 }) => {
|
deleteItems: async ({ pattern, batchSize = 500, delay = 1500, jitter = 200 }) => {
|
||||||
const regex = new RE2(`^${pattern.replace(/[-[\]/{}()+?.\\^$|]/g, "\\$&").replace(/\*/g, ".*")}$`);
|
const regex = getRegex(pattern);
|
||||||
let totalDeleted = 0;
|
let totalDeleted = 0;
|
||||||
const keys = Object.keys(store);
|
const keys = Object.keys(store);
|
||||||
|
|
||||||
@@ -64,7 +67,7 @@ export const mockKeyStore = (): TKeyStoreFactory => {
|
|||||||
return values;
|
return values;
|
||||||
},
|
},
|
||||||
getKeysByPattern: async (pattern) => {
|
getKeysByPattern: async (pattern) => {
|
||||||
const regex = new RE2(`^${pattern.replace(/[-[\]/{}()+?.\\^$|]/g, "\\$&").replace(/\*/g, ".*")}$`);
|
const regex = getRegex(pattern);
|
||||||
const keys = Object.keys(store);
|
const keys = Object.keys(store);
|
||||||
return keys.filter((key) => regex.test(key));
|
return keys.filter((key) => regex.test(key));
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -114,7 +114,10 @@ export const keyStoreFactory = (redisConfigKeys: TRedisConfigKeys): TKeyStoreFac
|
|||||||
|
|
||||||
const deleteItem = async (key: string) => redis.del(key);
|
const deleteItem = async (key: string) => redis.del(key);
|
||||||
|
|
||||||
const deleteItemsByKeyIn = async (keys: string[]) => redis.del(keys);
|
const deleteItemsByKeyIn = async (keys: string[]) => {
|
||||||
|
if (keys.length === 0) return 0;
|
||||||
|
return redis.del(keys);
|
||||||
|
};
|
||||||
|
|
||||||
const deleteItems = async ({ pattern, batchSize = 500, delay = 1500, jitter = 200 }: TDeleteItems) => {
|
const deleteItems = async ({ pattern, batchSize = 500, delay = 1500, jitter = 200 }: TDeleteItems) => {
|
||||||
let cursor = "0";
|
let cursor = "0";
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import { TKeyStoreFactory } from "./keystore";
|
|||||||
|
|
||||||
export const inMemoryKeyStore = (): TKeyStoreFactory => {
|
export const inMemoryKeyStore = (): TKeyStoreFactory => {
|
||||||
const store: Record<string, string | number | Buffer> = {};
|
const store: Record<string, string | number | Buffer> = {};
|
||||||
|
const getRegex = (pattern: string) =>
|
||||||
|
new RE2(`^${pattern.replace(/[-[\]/{}()+?.\\^$|]/g, "\\$&").replace(/\*/g, ".*")}$`);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
setItem: async (key, value) => {
|
setItem: async (key, value) => {
|
||||||
@@ -24,7 +26,7 @@ export const inMemoryKeyStore = (): TKeyStoreFactory => {
|
|||||||
return 1;
|
return 1;
|
||||||
},
|
},
|
||||||
deleteItems: async ({ pattern, batchSize = 500, delay = 1500, jitter = 200 }) => {
|
deleteItems: async ({ pattern, batchSize = 500, delay = 1500, jitter = 200 }) => {
|
||||||
const regex = new RE2(`^${pattern.replace(/[-[\]/{}()+?.\\^$|]/g, "\\$&").replace(/\*/g, ".*")}$`);
|
const regex = getRegex(pattern);
|
||||||
let totalDeleted = 0;
|
let totalDeleted = 0;
|
||||||
const keys = Object.keys(store);
|
const keys = Object.keys(store);
|
||||||
|
|
||||||
@@ -61,7 +63,7 @@ export const inMemoryKeyStore = (): TKeyStoreFactory => {
|
|||||||
},
|
},
|
||||||
waitTillReady: async () => {},
|
waitTillReady: async () => {},
|
||||||
getKeysByPattern: async (pattern) => {
|
getKeysByPattern: async (pattern) => {
|
||||||
const regex = new RE2(`^${pattern.replace(/[-[\]/{}()+?.\\^$|]/g, "\\$&").replace(/\*/g, ".*")}$`);
|
const regex = getRegex(pattern);
|
||||||
const keys = Object.keys(store);
|
const keys = Object.keys(store);
|
||||||
return keys.filter((key) => regex.test(key));
|
return keys.filter((key) => regex.test(key));
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ export const telemetryQueueServiceFactory = ({
|
|||||||
await queueService.stopRepeatableJob(
|
await queueService.stopRepeatableJob(
|
||||||
QueueName.TelemetryAggregatedEvents,
|
QueueName.TelemetryAggregatedEvents,
|
||||||
QueueJobs.TelemetryAggregatedEvents,
|
QueueJobs.TelemetryAggregatedEvents,
|
||||||
{ pattern: "*/2 * * * *", utc: true },
|
{ pattern: "*/5 * * * *", utc: true },
|
||||||
QueueName.TelemetryAggregatedEvents // just a job id
|
QueueName.TelemetryAggregatedEvents // just a job id
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ export const telemetryQueueServiceFactory = ({
|
|||||||
// Start aggregated events job (runs every five minutes)
|
// Start aggregated events job (runs every five minutes)
|
||||||
await queueService.queue(QueueName.TelemetryAggregatedEvents, QueueJobs.TelemetryAggregatedEvents, undefined, {
|
await queueService.queue(QueueName.TelemetryAggregatedEvents, QueueJobs.TelemetryAggregatedEvents, undefined, {
|
||||||
jobId: QueueName.TelemetryAggregatedEvents,
|
jobId: QueueName.TelemetryAggregatedEvents,
|
||||||
repeat: { pattern: "*/2 * * * *", utc: true }
|
repeat: { pattern: "*/5 * * * *", utc: true }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user