Skip to content

Commit

Permalink
start building the metrics setter
Browse files Browse the repository at this point in the history
  • Loading branch information
malteish committed Aug 15, 2024
1 parent 40d24e7 commit fb7c9a0
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
6 changes: 4 additions & 2 deletions packages/delivery-service/src/persistence/getDatabase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import { createClient } from 'redis';
import Account from './account';
import { getIdEnsName } from './getIdEnsName';
import Messages from './messages';
import Metrics from './metrics';
import type { MetricsMap, IntervalMetric } from './metrics';
import { syncAcknowledge } from './messages/syncAcknowledge';
import type { MetricsMap } from './metrics';
import Metrics from './metrics';
import Notification from './notification';
import Otp from './otp';

Expand Down Expand Up @@ -95,6 +95,7 @@ export async function getDatabase(
resetOtp: Otp.resetOtp(redis),
// Metrics
getMetrics: Metrics.getMetrics(redis),
setMetrics: Metrics.setMetrics(redis),
};
}

Expand Down Expand Up @@ -161,6 +162,7 @@ export interface IDatabase extends IAccountDatabase {
channelType: NotificationChannelType,
) => Promise<void>;
getMetrics: () => Promise<MetricsMap>;
setMetrics: (metrics: MetricsMap) => Promise<void>;
}

export type Redis = Awaited<ReturnType<typeof getRedisClient>>;
6 changes: 4 additions & 2 deletions packages/delivery-service/src/persistence/metrics/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { getMetrics } from './getMetrics';
import type { IntervalMetric, MetricsMap } from './metricTypes';
import { setMetrics } from './setMetrics';
import { stringifyMetrics } from './stringifyMetrics';
import type { MetricsMap, IntervalMetric } from './metricTypes';

export default {
getMetrics,
setMetrics,
stringifyMetrics,
};

export type { MetricsMap, IntervalMetric };
export type { IntervalMetric, MetricsMap };
11 changes: 11 additions & 0 deletions packages/delivery-service/src/persistence/metrics/setMetrics.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { Redis, RedisPrefix } from '../getDatabase';
import { MetricsMap, IntervalMetric } from './metricTypes';
import { stringifyMetrics } from './stringifyMetrics';

export function setMetrics(redis: Redis) {
return async (metrics: MetricsMap) => {
console.log('writing metrics to database:', metrics);
const metricsString = stringifyMetrics(metrics);
await redis.set(RedisPrefix.Metrics, metricsString);
};
}

0 comments on commit fb7c9a0

Please sign in to comment.