Add more logs, 95%ram alert for GmxMarkets, Proxy retry 2times max

This commit is contained in:
2025-10-11 13:43:32 +07:00
parent b6a4c7661f
commit e917edd939
3 changed files with 16 additions and 7 deletions

View File

@@ -1,5 +1,6 @@
using System.Net.Http.Json;
using System.Numerics;
using System.Text.Json;
using Managing.Application.Abstractions.Repositories;
using Managing.Application.Abstractions.Services;
using Managing.Common;
@@ -424,6 +425,7 @@ public class EvmManager : IEvmManager
{
Console.WriteLine(
$"Warning: GMX API returned empty candles array for ticker {ticker}, timeframe {timeframe}, startDate {startDate:yyyy-MM-dd HH:mm:ss}");
return new List<Candle>();
}
@@ -433,6 +435,8 @@ public class EvmManager : IEvmManager
{
Console.WriteLine(
$"Warning: No candles found after filtering for ticker {ticker}, timeframe {timeframe}, startDate {startDate:yyyy-MM-dd HH:mm:ss}. Total candles before filtering: {gmxPrices.Candles.Count}");
Console.WriteLine(JsonSerializer.Serialize(filteredCandles));
SentrySdk.CaptureException(new Exception($"No candles found after filtering for ticker {ticker}, timeframe {timeframe}, startDate {startDate:yyyy-MM-dd HH:mm:ss}. Total candles before filtering: {gmxPrices.Candles.Count}"));
return new List<Candle>();
}
@@ -548,6 +552,7 @@ public class EvmManager : IEvmManager
}
catch (Exception ex)
{
SentrySdk.CaptureException(ex);
return false;
}
}
@@ -735,7 +740,7 @@ public class EvmManager : IEvmManager
}
catch (Exception e)
{
Console.WriteLine(e);
SentrySdk.CaptureException(e);
throw;
}
}
@@ -751,6 +756,7 @@ public class EvmManager : IEvmManager
}
catch (Exception ex)
{
SentrySdk.CaptureException(ex);
throw;
}
@@ -777,6 +783,7 @@ public class EvmManager : IEvmManager
}
catch (Exception ex)
{
SentrySdk.CaptureException(ex);
throw;
}
@@ -874,6 +881,7 @@ public class EvmManager : IEvmManager
}
catch (Exception ex)
{
SentrySdk.CaptureException(ex);
Console.Error.WriteLine($"Error getting estimated gas fee: {ex.Message}");
return 0;
}

View File

@@ -21,8 +21,8 @@ namespace Managing.Infrastructure.Evm.Services
public class Web3ProxySettings
{
public string BaseUrl { get; set; } = "http://localhost:3000";
public int MaxRetryAttempts { get; set; } = 3;
public int RetryDelayMs { get; set; } = 1000;
public int MaxRetryAttempts { get; set; } = 2;
public int RetryDelayMs { get; set; } = 2500;
public int TimeoutSeconds { get; set; } = 30;
}

View File

@@ -50,12 +50,13 @@ interface CacheEntry {
timestamp: number;
}
const CACHE_TTL = 30 * 60 * 1000; // 30 minutes in milliseconds
const CACHE_TTL = 60 * 60 * 1000; // 60 minutes in milliseconds (increased from 30 minutes)
const marketsCache = new Map<string, CacheEntry>();
const MAX_CACHE_SIZE = 5; // Limit cache size to prevent memory issues
const MAX_CACHE_SIZE = 20; // Increased cache size to allow more markets data
const OPERATION_TIMEOUT = 30000; // 30 seconds timeout for operations
const MEMORY_WARNING_THRESHOLD = 0.8; // Warn when memory usage exceeds 80%
const MEMORY_WARNING_THRESHOLD = 0.85; // Warn when memory usage exceeds 85%
const MEMORY_CLEAR_THRESHOLD = 0.95; // Clear cache when memory usage exceeds 95%
const MAX_GAS_FEE_USD = 1.5; // Maximum gas fee in USD (1 USDC)
// Memory monitoring function
@@ -68,7 +69,7 @@ function checkMemoryUsage() {
console.warn(`⚠️ High memory usage detected: ${(usage * 100).toFixed(1)}% (${Math.round(used.heapUsed / 1024 / 1024)}MB / ${Math.round(total / 1024 / 1024)}MB)`);
// Clear cache if memory usage is too high
if (usage > 0.9) {
if (usage > MEMORY_CLEAR_THRESHOLD) {
console.warn(`🧹 Clearing markets cache due to high memory usage`);
marketsCache.clear();
pendingRequests.clear();