From b4ba9b93e6f3183474d894e83ae1f6a6fe2600fc Mon Sep 17 00:00:00 2001 From: cryptooda Date: Mon, 6 Oct 2025 10:44:41 +0700 Subject: [PATCH] Remove redis url from healthcheck --- .../HealthChecks/Web3ProxyHealthCheck.cs | 86 +++++++++---------- 1 file changed, 41 insertions(+), 45 deletions(-) diff --git a/src/Managing.Api/HealthChecks/Web3ProxyHealthCheck.cs b/src/Managing.Api/HealthChecks/Web3ProxyHealthCheck.cs index f7b5760d..c7bc082c 100644 --- a/src/Managing.Api/HealthChecks/Web3ProxyHealthCheck.cs +++ b/src/Managing.Api/HealthChecks/Web3ProxyHealthCheck.cs @@ -14,12 +14,13 @@ namespace Managing.Api.HealthChecks _web3ProxyUrl = web3ProxyUrl; } - public async Task CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default) + public async Task CheckHealthAsync(HealthCheckContext context, + CancellationToken cancellationToken = default) { try { var response = await _httpClient.GetAsync($"{_web3ProxyUrl}/health", cancellationToken); - + if (!response.IsSuccessStatusCode) { return HealthCheckResult.Degraded( @@ -32,33 +33,33 @@ namespace Managing.Api.HealthChecks } var content = await response.Content.ReadAsStringAsync(cancellationToken); - + // Parse the JSON response to extract the detailed data using (JsonDocument document = JsonDocument.Parse(content)) { var root = document.RootElement; string status = "healthy"; - + if (root.TryGetProperty("status", out var statusElement)) { status = statusElement.GetString(); } - + // Extract the detailed data from the Web3Proxy response var data = new Dictionary(); - + // Parse timestamp if available if (root.TryGetProperty("timestamp", out var timestampElement)) { data["timestamp"] = timestampElement.GetString(); } - + // Parse version if available if (root.TryGetProperty("version", out var versionElement)) { data["version"] = versionElement.GetString(); } - + // Parse checks if available if (root.TryGetProperty("checks", out var checksElement)) { @@ -66,35 +67,35 @@ namespace Managing.Api.HealthChecks if (checksElement.TryGetProperty("privy", out var privyElement)) { var privyData = new Dictionary(); - + if (privyElement.TryGetProperty("status", out var privyStatusElement)) { privyData["status"] = privyStatusElement.GetString(); } - + if (privyElement.TryGetProperty("message", out var privyMessageElement)) { privyData["message"] = privyMessageElement.GetString(); } - + data["privy"] = privyData; } - + // Extract GMX check if (checksElement.TryGetProperty("gmx", out var gmxElement)) { var gmxData = new Dictionary(); - + if (gmxElement.TryGetProperty("status", out var gmxStatusElement)) { gmxData["status"] = gmxStatusElement.GetString(); } - + if (gmxElement.TryGetProperty("message", out var gmxMessageElement)) { gmxData["message"] = gmxMessageElement.GetString(); } - + // Extract GMX market data if (gmxElement.TryGetProperty("data", out var gmxDataElement)) { @@ -102,71 +103,71 @@ namespace Managing.Api.HealthChecks { gmxData["marketCount"] = marketCountElement.GetInt32(); } - + if (gmxDataElement.TryGetProperty("responseTimeMs", out var responseTimeElement)) { gmxData["responseTimeMs"] = responseTimeElement.GetInt32(); } - + if (gmxDataElement.TryGetProperty("uiFeeFactor", out var uiFeeFactorElement)) { gmxData["uiFeeFactor"] = uiFeeFactorElement.GetString(); } - + if (gmxDataElement.TryGetProperty("sampleMarkets", out var sampleMarketsElement)) { var sampleMarkets = new List>(); - + for (int i = 0; i < sampleMarketsElement.GetArrayLength(); i++) { var marketElement = sampleMarketsElement[i]; var market = new Dictionary(); - + if (marketElement.TryGetProperty("marketAddress", out var addressElement)) { market["marketAddress"] = addressElement.GetString(); } - + if (marketElement.TryGetProperty("indexToken", out var indexTokenElement)) { market["indexToken"] = indexTokenElement.GetString(); } - + if (marketElement.TryGetProperty("longToken", out var longTokenElement)) { market["longToken"] = longTokenElement.GetString(); } - + if (marketElement.TryGetProperty("shortToken", out var shortTokenElement)) { market["shortToken"] = shortTokenElement.GetString(); } - + sampleMarkets.Add(market); } - + gmxData["sampleMarkets"] = sampleMarkets; } } - + data["gmx"] = gmxData; } - + // Extract Redis check if (checksElement.TryGetProperty("redis", out var redisElement)) { var redisData = new Dictionary(); - + if (redisElement.TryGetProperty("status", out var redisStatusElement)) { redisData["status"] = redisStatusElement.GetString(); } - + if (redisElement.TryGetProperty("message", out var redisMessageElement)) { redisData["message"] = redisMessageElement.GetString(); } - + // Extract Redis detailed data if (redisElement.TryGetProperty("data", out var redisDataElement)) { @@ -174,52 +175,47 @@ namespace Managing.Api.HealthChecks { redisData["connectTimeMs"] = connectTimeElement.GetInt32(); } - + if (redisDataElement.TryGetProperty("getTimeMs", out var getTimeElement)) { redisData["getTimeMs"] = getTimeElement.GetInt32(); } - + if (redisDataElement.TryGetProperty("redisVersion", out var redisVersionElement)) { redisData["redisVersion"] = redisVersionElement.GetString(); } - + if (redisDataElement.TryGetProperty("uptimeSeconds", out var uptimeElement)) { redisData["uptimeSeconds"] = uptimeElement.GetString(); } - + if (redisDataElement.TryGetProperty("connectedClients", out var clientsElement)) { redisData["connectedClients"] = clientsElement.GetString(); } - + if (redisDataElement.TryGetProperty("usedMemory", out var memoryElement)) { redisData["usedMemory"] = memoryElement.GetString(); } - + if (redisDataElement.TryGetProperty("hasPassword", out var hasPasswordElement)) { redisData["hasPassword"] = hasPasswordElement.GetBoolean(); } - + if (redisDataElement.TryGetProperty("errorType", out var errorTypeElement)) { redisData["errorType"] = errorTypeElement.GetString(); } - - if (redisDataElement.TryGetProperty("redisUrl", out var redisUrlElement)) - { - redisData["redisUrl"] = redisUrlElement.GetString(); - } } - + data["redis"] = redisData; } } - + // Determine overall health result based on status if (status.ToLower() == "healthy") { @@ -255,4 +251,4 @@ namespace Managing.Api.HealthChecks } } } -} \ No newline at end of file +} \ No newline at end of file