Fix missing SOL price metrics

This commit is contained in:
2024-09-01 13:16:48 +02:00
parent e08969bee5
commit e0d4ad20c0
4 changed files with 726 additions and 125 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -12,7 +12,7 @@
"dependencies": {
"express": "^4.18.2",
"prom-client": "^15.1.0",
"@drift-labs/sdk": "2.78.0-beta.0",
"@drift-labs/sdk": "2.93.0-beta.0",
"@solana/web3.js": "^1.89.1",
"bigint-buffer": "^1.1.5",
"dotenv": "^16.4.4"

View File

@@ -15,7 +15,7 @@ app.get('/metrics/:addr?', async (req, res) => {
console.log(`Gathering metrics for ${walletAddress}`);
res.setHeader('Content-Type', registry.contentType);
registry.resetMetrics();
//registry.resetMetrics();
let [solBalance, usdcBalance, marketData] = await Promise.all([
loadWalletBalance(walletAddress),
@@ -26,8 +26,11 @@ app.get('/metrics/:addr?', async (req, res) => {
solBalanceMetric.set(label, extractWalletBalance(solBalance));
usdcBalanceMetric.set(label, extractUSDCBalance(usdcBalance));
solUsdcBalanceMetric.set(label, extractWalletBalance(solBalance) * extractSOLPrice(marketData));
solPriceMetric.set(extractSOLPrice(marketData));
let solPrice = extractSOLPrice(marketData);
if(solPrice){
solUsdcBalanceMetric.set(label, extractWalletBalance(solBalance) * solPrice);
solPriceMetric.set(solPrice);
}
res.send(await registry.metrics());
});

View File

@@ -59,7 +59,7 @@ function extractUSDCBalance(usdcBalance) {
// extract SOL price
function extractSOLPrice(marketData) {
return marketData.data.SOL.price;
return marketData.data?.SOL?.price;
}
// export functions