From 2813e20240ea33e74055016a558c77f9493aefe5 Mon Sep 17 00:00:00 2001 From: wphan Date: Sat, 26 Jul 2025 15:43:57 -0700 Subject: [PATCH] add market slot metric to dlob publishers --- src/publishers/dlobPublisher.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/publishers/dlobPublisher.ts b/src/publishers/dlobPublisher.ts index c2bad22..aead36e 100644 --- a/src/publishers/dlobPublisher.ts +++ b/src/publishers/dlobPublisher.ts @@ -82,6 +82,10 @@ const oracleSlotGauge = metricsV2.addGauge( 'oracle_slot', 'Last updated slot of oracle' ); +const marketSlotGauge = metricsV2.addGauge( + 'market_slot', + 'Last updated slot of market account' +); const kinesisRecordsSentCounter = metricsV2.addCounter( 'kinesis_records_sent', 'Number of records sent to Kinesis' @@ -563,6 +567,10 @@ const main = async () => { const oracleDataAndSlot = driftClient.getOracleDataForPerpMarket( market.marketIndex ); + const marketAccount = + driftClient.accountSubscriber.getMarketAccountAndSlot( + market.marketIndex + ); dlobSlotGauge.setLatestValue(slot, { marketIndex: market.marketIndex, marketType: 'perp', @@ -577,11 +585,22 @@ const main = async () => { redisClient: REDIS_CLIENT, redisPrefix: RedisClientPrefix[REDIS_CLIENT], }); + marketSlotGauge.setLatestValue(marketAccount.slot, { + marketIndex: market.marketIndex, + marketType: 'perp', + marketName: market.marketName, + redisClient: REDIS_CLIENT, + redisPrefix: RedisClientPrefix[REDIS_CLIENT], + }); }); spotMarketInfos.forEach((market) => { const oracleDataAndSlot = driftClient.getOracleDataForSpotMarket( market.marketIndex ); + const marketAccount = + driftClient.accountSubscriber.getSpotMarketAccountAndSlot( + market.marketIndex + ); dlobSlotGauge.setLatestValue(slot, { marketIndex: market.marketIndex, marketType: 'spot', @@ -596,6 +615,13 @@ const main = async () => { redisClient: REDIS_CLIENT, redisPrefix: RedisClientPrefix[REDIS_CLIENT], }); + marketSlotGauge.setLatestValue(marketAccount.slot, { + marketIndex: market.marketIndex, + marketType: 'spot', + marketName: market.marketName, + redisClient: REDIS_CLIENT, + redisPrefix: RedisClientPrefix[REDIS_CLIENT], + }); }); }, 10_000);