From 60bad1f1b55ce8dbe8395ff8ab5c27bfeba68321 Mon Sep 17 00:00:00 2001 From: Miguel Cervera Date: Wed, 19 Apr 2023 10:52:51 -0700 Subject: [PATCH 1/3] Allow the wildcard pairs amounts to be measured as well --- .../cached-routes-widgets-factory.ts | 31 +++---------------- lib/handlers/quote/quote.ts | 9 ++++-- lib/handlers/quote/util/pairs-to-track.ts | 2 +- 3 files changed, 13 insertions(+), 29 deletions(-) diff --git a/lib/dashboards/cached-routes-widgets-factory.ts b/lib/dashboards/cached-routes-widgets-factory.ts index 8790a83bd..29c48e112 100644 --- a/lib/dashboards/cached-routes-widgets-factory.ts +++ b/lib/dashboards/cached-routes-widgets-factory.ts @@ -18,32 +18,11 @@ export class CachedRoutesWidgetsFactory implements WidgetsFactory { generateWidgets(): Widget[] { const cacheHitMissWidgets = this.generateCacheHitMissMetricsWidgets() - const [wildcardStrategies, strategies] = _.partition(Array.from(CACHED_ROUTES_CONFIGURATION.values()), (strategy) => - strategy.pair.includes('*') + const strategiesWidgets = _.flatMap(Array.from(CACHED_ROUTES_CONFIGURATION.values()), (cacheStrategy) => + this.generateWidgetsForStrategies(cacheStrategy) ) - let wildcardStrategiesWidgets: Widget[] = [] - if (wildcardStrategies.length > 0) { - wildcardStrategiesWidgets = _.flatMap(wildcardStrategies, (cacheStrategy) => { - const tokenIn = cacheStrategy.pair.split('/')[0].replace('*', 'TokenIn') - const tokenOut = cacheStrategy.pair.split('/')[1].replace('*', 'TokenOut') - - return this.generateTapcompareWidgets(tokenIn, tokenOut, cacheStrategy.readablePairTradeTypeChainId()) - }) - - wildcardStrategiesWidgets.unshift({ - type: 'text', - width: 24, - height: 1, - properties: { - markdown: `# Wildcard pairs`, - }, - }) - } - - const strategiesWidgets = _.flatMap(strategies, (cacheStrategy) => this.generateWidgetsForStrategies(cacheStrategy)) - - return cacheHitMissWidgets.concat(wildcardStrategiesWidgets).concat(strategiesWidgets) + return cacheHitMissWidgets.concat(strategiesWidgets) } private generateCacheHitMissMetricsWidgets(): Widget[] { @@ -128,8 +107,8 @@ export class CachedRoutesWidgetsFactory implements WidgetsFactory { const getQuoteMetricName = `GET_QUOTE_AMOUNT_${cacheStrategy.pair}_${cacheStrategy.tradeType.toUpperCase()}_CHAIN_${ cacheStrategy.chainId }` - const tokenIn = cacheStrategy.pair.split('/')[0] - const tokenOut = cacheStrategy.pair.split('/')[1] + const tokenIn = cacheStrategy.pair.split('/')[0].replace('*', 'TokenIn') + const tokenOut = cacheStrategy.pair.split('/')[1].replace('*', 'TokenIn') const quoteAmountsMetrics: Widget[] = [ { diff --git a/lib/handlers/quote/quote.ts b/lib/handlers/quote/quote.ts index fdd99ab94..0d87dbcdd 100644 --- a/lib/handlers/quote/quote.ts +++ b/lib/handlers/quote/quote.ts @@ -503,11 +503,16 @@ export class QuoteHandler extends APIGLambdaHandler< routeString: string ): void { const tradingPair = `${currencyIn.symbol}/${currencyOut.symbol}` + const wildcardInPair = `${currencyIn.symbol}/*` + const wildcardOutPair = `*/${currencyOut.symbol}` const tradeTypeEnumValue = tradeType == 'exactIn' ? TradeType.EXACT_INPUT : TradeType.EXACT_OUTPUT + const pairsTracked = PAIRS_TO_TRACK.get(chainId)?.get(tradeTypeEnumValue) + + if (pairsTracked?.includes(tradingPair) || pairsTracked?.includes(wildcardInPair) || pairsTracked?.includes(wildcardOutPair)) { + const metricPair = pairsTracked?.includes(tradingPair) ? tradingPair : pairsTracked?.includes(wildcardInPair) ? wildcardInPair : wildcardOutPair - if (PAIRS_TO_TRACK.get(chainId)?.get(tradeTypeEnumValue)?.includes(tradingPair)) { metric.putMetric( - `GET_QUOTE_AMOUNT_${tradingPair}_${tradeType.toUpperCase()}_CHAIN_${chainId}`, + `GET_QUOTE_AMOUNT_${metricPair}_${tradeType.toUpperCase()}_CHAIN_${chainId}`, Number(amount.toExact()), MetricLoggerUnit.None ) diff --git a/lib/handlers/quote/util/pairs-to-track.ts b/lib/handlers/quote/util/pairs-to-track.ts index dec8d9fc9..b9fb3ae17 100644 --- a/lib/handlers/quote/util/pairs-to-track.ts +++ b/lib/handlers/quote/util/pairs-to-track.ts @@ -5,7 +5,7 @@ export const PAIRS_TO_TRACK: Map> = new Map([ [ ChainId.MAINNET, new Map([ - [TradeType.EXACT_INPUT, ['WETH/USDC', 'USDC/WETH', 'USDT/WETH', 'WETH/USDT']], + [TradeType.EXACT_INPUT, ['WETH/USDC', 'USDC/WETH', 'USDT/WETH', 'WETH/USDT', 'WETH/*']], [TradeType.EXACT_OUTPUT, ['USDC/WETH']], ]), ], From aecfe99d339ae27332516abcca517dd6874f0b79 Mon Sep 17 00:00:00 2001 From: Miguel Cervera Date: Wed, 19 Apr 2023 11:29:35 -0700 Subject: [PATCH 2/3] keep wildcard strategies at the top --- .../cached-routes-widgets-factory.ts | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/dashboards/cached-routes-widgets-factory.ts b/lib/dashboards/cached-routes-widgets-factory.ts index 29c48e112..018fa0e96 100644 --- a/lib/dashboards/cached-routes-widgets-factory.ts +++ b/lib/dashboards/cached-routes-widgets-factory.ts @@ -18,11 +18,29 @@ export class CachedRoutesWidgetsFactory implements WidgetsFactory { generateWidgets(): Widget[] { const cacheHitMissWidgets = this.generateCacheHitMissMetricsWidgets() - const strategiesWidgets = _.flatMap(Array.from(CACHED_ROUTES_CONFIGURATION.values()), (cacheStrategy) => - this.generateWidgetsForStrategies(cacheStrategy) + const [wildcardStrategies, strategies] = _.partition(Array.from(CACHED_ROUTES_CONFIGURATION.values()), (strategy) => + strategy.pair.includes('*') ) - return cacheHitMissWidgets.concat(strategiesWidgets) + let wildcardStrategiesWidgets: Widget[] = [] + if (wildcardStrategies.length > 0) { + wildcardStrategiesWidgets = _.flatMap(wildcardStrategies, (cacheStrategy) => + this.generateWidgetsForStrategies(cacheStrategy) + ) + + wildcardStrategiesWidgets.unshift({ + type: 'text', + width: 24, + height: 1, + properties: { + markdown: `# Wildcard pairs`, + }, + }) + } + + const strategiesWidgets = _.flatMap(strategies, (cacheStrategy) => this.generateWidgetsForStrategies(cacheStrategy)) + + return cacheHitMissWidgets.concat(wildcardStrategiesWidgets).concat(strategiesWidgets) } private generateCacheHitMissMetricsWidgets(): Widget[] { From 801ca25a31eb38eb8f4d1a7540ee8482f3079722 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Wed, 19 Apr 2023 18:33:42 +0000 Subject: [PATCH 3/3] Fix code style issues with Prettier --- lib/handlers/quote/quote.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/handlers/quote/quote.ts b/lib/handlers/quote/quote.ts index 0d87dbcdd..537c86a2c 100644 --- a/lib/handlers/quote/quote.ts +++ b/lib/handlers/quote/quote.ts @@ -508,8 +508,16 @@ export class QuoteHandler extends APIGLambdaHandler< const tradeTypeEnumValue = tradeType == 'exactIn' ? TradeType.EXACT_INPUT : TradeType.EXACT_OUTPUT const pairsTracked = PAIRS_TO_TRACK.get(chainId)?.get(tradeTypeEnumValue) - if (pairsTracked?.includes(tradingPair) || pairsTracked?.includes(wildcardInPair) || pairsTracked?.includes(wildcardOutPair)) { - const metricPair = pairsTracked?.includes(tradingPair) ? tradingPair : pairsTracked?.includes(wildcardInPair) ? wildcardInPair : wildcardOutPair + if ( + pairsTracked?.includes(tradingPair) || + pairsTracked?.includes(wildcardInPair) || + pairsTracked?.includes(wildcardOutPair) + ) { + const metricPair = pairsTracked?.includes(tradingPair) + ? tradingPair + : pairsTracked?.includes(wildcardInPair) + ? wildcardInPair + : wildcardOutPair metric.putMetric( `GET_QUOTE_AMOUNT_${metricPair}_${tradeType.toUpperCase()}_CHAIN_${chainId}`,