Skip to main content
Dotset CLI API Documentation / index / CacheMetrics

Interface: CacheMetrics

Defined in: src/shield/utils/cache.ts:20 Caching Module LRU caching and memoization for performance optimization.

Example

import {
  LRUCache,
  memoize,
  memoizeAsync,
  getPatternCacheMetrics,
} from '@dotsetlabs/cli';

// Create an LRU cache
const cache = new LRUCache<string, RegExp>({ maxSize: 1000 });
cache.set('aws-key', /AKIA[A-Z0-9]{16}/g);

// Memoize expensive functions
const parsePattern = memoize((pattern: string) => {
  return new RegExp(pattern, 'gi');
});

// Memoize async functions
const fetchSecrets = memoizeAsync(async (key: string) => {
  return await secretsManager.getValue(key);
}, { ttlMs: 60000 });

// Check cache performance
const metrics = getPatternCacheMetrics();
console.log(`Cache hit rate: ${metrics.hitRate}%`);

Properties

avgAccessCount

avgAccessCount: number;
Defined in: src/shield/utils/cache.ts:29

evictions

evictions: number;
Defined in: src/shield/utils/cache.ts:24

expirations

expirations: number;
Defined in: src/shield/utils/cache.ts:25

hitRate

hitRate: number;
Defined in: src/shield/utils/cache.ts:23

hits

hits: number;
Defined in: src/shield/utils/cache.ts:21

maxSize

maxSize: number;
Defined in: src/shield/utils/cache.ts:27

misses

misses: number;
Defined in: src/shield/utils/cache.ts:22

newestEntryAge?

optional newestEntryAge: number;
Defined in: src/shield/utils/cache.ts:31

oldestEntryAge?

optional oldestEntryAge: number;
Defined in: src/shield/utils/cache.ts:30

size

size: number;
Defined in: src/shield/utils/cache.ts:26

totalAccessCount

totalAccessCount: number;
Defined in: src/shield/utils/cache.ts:28