From 4ad92ab23698267f8faa59c4e18388d4a0042cca Mon Sep 17 00:00:00 2001 From: Janis Date: Sat, 16 May 2026 11:20:05 +0200 Subject: [PATCH] fix: NCS-84 More Verbose Logging (#51) Reviewed-on: https://git.janis-eccarius.de/NowChess/NowChessSystems/pulls/51 --- .../account/resource/OfficialChallengeResource.scala | 2 +- .../de/nowchess/account/service/ChallengeService.scala | 4 ++-- .../de/nowchess/coordinator/service/AutoScaler.scala | 4 ++-- .../coordinator/service/CacheEvictionManager.scala | 4 ++-- .../nowchess/coordinator/service/FailoverService.scala | 2 +- .../nowchess/coordinator/service/HealthMonitor.scala | 2 +- .../coordinator/service/InstanceRegistry.scala | 2 +- .../de/nowchess/coordinator/service/LoadBalancer.scala | 6 +++--- .../de/nowchess/chess/grpc/IoGrpcClientWrapper.scala | 10 +++++----- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/account/src/main/scala/de/nowchess/account/resource/OfficialChallengeResource.scala b/modules/account/src/main/scala/de/nowchess/account/resource/OfficialChallengeResource.scala index 635dbe7..e82582c 100644 --- a/modules/account/src/main/scala/de/nowchess/account/resource/OfficialChallengeResource.scala +++ b/modules/account/src/main/scala/de/nowchess/account/resource/OfficialChallengeResource.scala @@ -79,7 +79,7 @@ class OfficialChallengeResource: Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(ErrorDto(err)).build() case Right(id) => try botEventPublisher.publishGameStart(bot.name, id, botColor, difficulty, bot.id.toString) - catch case ex: Exception => log.warnf(ex, "Failed to notify bot for game %s", id) + catch case ex: Exception => log.errorf(ex, "Failed to notify bot for game %s", id) Response .status(Response.Status.CREATED) .entity(OfficialChallengeResponse(id, botName, difficulty)) diff --git a/modules/account/src/main/scala/de/nowchess/account/service/ChallengeService.scala b/modules/account/src/main/scala/de/nowchess/account/service/ChallengeService.scala index 08e20d2..4b7f9da 100644 --- a/modules/account/src/main/scala/de/nowchess/account/service/ChallengeService.scala +++ b/modules/account/src/main/scala/de/nowchess/account/service/ChallengeService.scala @@ -95,7 +95,7 @@ class ChallengeService: challenge.expiresAt = Instant.now().plus(24, ChronoUnit.HOURS) challengeRepository.persist(challenge) try eventPublisher.publishChallengeCreated(destUser.id.toString, challenge.id.toString, challenger.username) - catch case ex: Exception => log.warnf(ex, "Failed to notify dest user for challenge %s", challenge.id) + catch case ex: Exception => log.errorf(ex, "Failed to notify dest user for challenge %s", challenge.id) challenge @Transactional @@ -116,7 +116,7 @@ class ChallengeService: challengeRepository.merge(challenge) notifyBotIfNeeded(challenge, gameId) try eventPublisher.publishChallengeAccepted(challenge.challenger.id.toString, challenge.id.toString, gameId) - catch case ex: Exception => log.warnf(ex, "Failed to notify challenger for game %s", gameId) + catch case ex: Exception => log.errorf(ex, "Failed to notify challenger for game %s", gameId) challenge @Transactional diff --git a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/AutoScaler.scala b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/AutoScaler.scala index 1992ec8..474fca1 100644 --- a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/AutoScaler.scala +++ b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/AutoScaler.scala @@ -167,7 +167,7 @@ class AutoScaler: catch case ex: Exception => meterRegistry.counter("nowchess.coordinator.scale.failures", "direction", "up").increment() - log.warnf(ex, "Failed to scale up %s", config.k8sRolloutName) + log.errorf(ex, "Failed to scale up %s", config.k8sRolloutName) def scaleDown(): Unit = log.info("Scaling down Argo Rollout") @@ -225,4 +225,4 @@ class AutoScaler: catch case ex: Exception => meterRegistry.counter("nowchess.coordinator.scale.failures", "direction", "down").increment() - log.warnf(ex, "Failed to scale down %s", config.k8sRolloutName) + log.errorf(ex, "Failed to scale down %s", config.k8sRolloutName) diff --git a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/CacheEvictionManager.scala b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/CacheEvictionManager.scala index 9760039..e974ef9 100644 --- a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/CacheEvictionManager.scala +++ b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/CacheEvictionManager.scala @@ -80,14 +80,14 @@ class CacheEvictionManager: count + 1 catch case ex: Exception => - log.warnf(ex, "Failed to evict game %s", gameId) + log.errorf(ex, "Failed to evict game %s", gameId) count } else count } catch case ex: Exception => - log.warnf(ex, "Error processing game key %s", key) + log.errorf(ex, "Error processing game key %s", key) count } diff --git a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/FailoverService.scala b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/FailoverService.scala index 3cb3d1f..be4e441 100644 --- a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/FailoverService.scala +++ b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/FailoverService.scala @@ -112,7 +112,7 @@ class FailoverService: else false catch case ex: Exception => - log.warnf(ex, "Failed to migrate batch to %s, trying next", target.instanceId) + log.errorf(ex, "Failed to migrate batch to %s, trying next", target.instanceId) false if success then true else tryMigrateBatch(batch, batchIdx, instances, deadId, attempt + 1) diff --git a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/HealthMonitor.scala b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/HealthMonitor.scala index 6ac1358..c23ddb8 100644 --- a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/HealthMonitor.scala +++ b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/HealthMonitor.scala @@ -192,7 +192,7 @@ class HealthMonitor: log.debugf("No pod found for instance %s, skipping deletion", instanceId) catch case ex: Exception => - log.warnf( + log.errorf( ex, "Failed to delete pod for instance %s — removing from registry to prevent blocking scale-down", instanceId, diff --git a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/InstanceRegistry.scala b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/InstanceRegistry.scala index a857d59..a690ada 100644 --- a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/InstanceRegistry.scala +++ b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/InstanceRegistry.scala @@ -99,7 +99,7 @@ class InstanceRegistry: } catch case ex: Exception => - log.warnf(ex, "Failed to parse instance metadata for %s — removing from registry", instanceId) + log.errorf(ex, "Failed to parse instance metadata for %s — removing from registry", instanceId) instances.remove(instanceId) meterRegistry.counter("nowchess.coordinator.instances.removed").increment() Uni.createFrom().item(()) diff --git a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/LoadBalancer.scala b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/LoadBalancer.scala index 2b31176..ac5ca43 100644 --- a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/LoadBalancer.scala +++ b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/LoadBalancer.scala @@ -96,14 +96,14 @@ class LoadBalancer: log.infof("Moved %d games from %s to %s", subscribed, over.instanceId, target.instanceId) catch case ex: Exception => - log.warnf(ex, "Failed to move games from %s to %s", over.instanceId, target.instanceId) + log.errorf(ex, "Failed to move games from %s to %s", over.instanceId, target.instanceId) } val elapsed = System.currentTimeMillis() - startTime log.infof("Rebalance completed in %dms", elapsed) catch case ex: Exception => - log.warnf(ex, "Rebalance failed") + log.errorf(ex, "Rebalance failed") private def getGamesToMove(instanceId: String, count: Int): List[String] = try @@ -125,7 +125,7 @@ class LoadBalancer: } catch case ex: Exception => - log.warnf(ex, "Failed to update Redis game sets") + log.errorf(ex, "Failed to update Redis game sets") @Scheduled(every = "30s") def periodicRebalanceCheck(): Unit = diff --git a/modules/core/src/main/scala/de/nowchess/chess/grpc/IoGrpcClientWrapper.scala b/modules/core/src/main/scala/de/nowchess/chess/grpc/IoGrpcClientWrapper.scala index f2698c4..60e6778 100644 --- a/modules/core/src/main/scala/de/nowchess/chess/grpc/IoGrpcClientWrapper.scala +++ b/modules/core/src/main/scala/de/nowchess/chess/grpc/IoGrpcClientWrapper.scala @@ -25,7 +25,7 @@ class IoGrpcClientWrapper: CombinedExportResponse(combined.getFen, combined.getPgn) catch case ex: Exception => - log.warnf(ex, "IO gRPC exportCombined failed") + log.errorf(ex, "IO gRPC exportCombined failed") // scalafix:off DisableSyntax.throw throw ex // scalafix:on DisableSyntax.throw @@ -34,7 +34,7 @@ class IoGrpcClientWrapper: try CoreProtoMapper.fromProtoGameContext(stub.importFen(ProtoImportFenRequest.newBuilder().setFen(fen).build())) catch case ex: Exception => - log.warnf(ex, "IO gRPC importFen failed for fen %s", fen) + log.errorf(ex, "IO gRPC importFen failed for fen %s", fen) // scalafix:off DisableSyntax.throw throw ex // scalafix:on DisableSyntax.throw @@ -43,7 +43,7 @@ class IoGrpcClientWrapper: try CoreProtoMapper.fromProtoGameContext(stub.importPgn(ProtoImportPgnRequest.newBuilder().setPgn(pgn).build())) catch case ex: Exception => - log.warnf(ex, "IO gRPC importPgn failed") + log.errorf(ex, "IO gRPC importPgn failed") // scalafix:off DisableSyntax.throw throw ex // scalafix:on DisableSyntax.throw @@ -52,7 +52,7 @@ class IoGrpcClientWrapper: try stub.exportFen(CoreProtoMapper.toProtoGameContext(ctx)).getValue catch case ex: Exception => - log.warnf(ex, "IO gRPC exportFen failed") + log.errorf(ex, "IO gRPC exportFen failed") // scalafix:off DisableSyntax.throw throw ex // scalafix:on DisableSyntax.throw @@ -61,7 +61,7 @@ class IoGrpcClientWrapper: try stub.exportPgn(CoreProtoMapper.toProtoGameContext(ctx)).getValue catch case ex: Exception => - log.warnf(ex, "IO gRPC exportPgn failed") + log.errorf(ex, "IO gRPC exportPgn failed") // scalafix:off DisableSyntax.throw throw ex // scalafix:on DisableSyntax.throw