From db917d6b2037633a5549ee3dab40f7360fb171f4 Mon Sep 17 00:00:00 2001 From: Pedro Igor Date: Thu, 20 Jun 2024 18:54:56 -0300 Subject: [PATCH] improving logging Signed-off-by: Pedro Igor --- .../main/java/org/keycloak/benchmark/dataset/Task.java | 10 +++++++++- .../organization/OrganizationMemberProvisioner.java | 4 +--- .../dataset/organization/OrganizationProvisioner.java | 10 ++++------ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/dataset/src/main/java/org/keycloak/benchmark/dataset/Task.java b/dataset/src/main/java/org/keycloak/benchmark/dataset/Task.java index 77ad83871..5118ba83b 100644 --- a/dataset/src/main/java/org/keycloak/benchmark/dataset/Task.java +++ b/dataset/src/main/java/org/keycloak/benchmark/dataset/Task.java @@ -18,6 +18,7 @@ package org.keycloak.benchmark.dataset; +import java.time.Duration; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -90,7 +91,14 @@ public String getTaskMessage() { @Override public String toString() { - return String.format("%s, started: %s", taskMessage, new Date(startTimeMs)); + boolean running = endTimeMs == null; + Long endTimeMs = this.endTimeMs; + + if (running) { + endTimeMs = Time.currentTimeMillis(); + } + + return String.format("%s, running: %s, time: %ss, started: %s, ended: %s", taskMessage, running, Duration.ofMillis(endTimeMs - startTimeMs).toSeconds(), new Date(startTimeMs), new Date(endTimeMs)); } public Boolean isSuccess() { diff --git a/dataset/src/main/java/org/keycloak/benchmark/dataset/organization/OrganizationMemberProvisioner.java b/dataset/src/main/java/org/keycloak/benchmark/dataset/organization/OrganizationMemberProvisioner.java index aa1b88bc1..f59c1d80a 100644 --- a/dataset/src/main/java/org/keycloak/benchmark/dataset/organization/OrganizationMemberProvisioner.java +++ b/dataset/src/main/java/org/keycloak/benchmark/dataset/organization/OrganizationMemberProvisioner.java @@ -110,9 +110,7 @@ protected void addUnmanagedMembers(KeycloakSession session, String orgId, CountD OrganizationModel organization = provider.getById(orgId); session.users().searchForUserStream(realm, Map.of(UserModel.INCLUDE_SERVICE_ACCOUNT, Boolean.FALSE.toString())) .filter((u) -> provider.getByMember(u) == null) - .takeWhile(userModel -> { - return latch.getCount() > 0; - }) + .takeWhile(userModel -> latch.getCount() > 0) .forEach(userModel -> { provider.addMember(organization, userModel); latch.countDown(); diff --git a/dataset/src/main/java/org/keycloak/benchmark/dataset/organization/OrganizationProvisioner.java b/dataset/src/main/java/org/keycloak/benchmark/dataset/organization/OrganizationProvisioner.java index 0468e6e12..adb2b07ce 100644 --- a/dataset/src/main/java/org/keycloak/benchmark/dataset/organization/OrganizationProvisioner.java +++ b/dataset/src/main/java/org/keycloak/benchmark/dataset/organization/OrganizationProvisioner.java @@ -121,11 +121,9 @@ private Runnable createOrganizations() { createOrganization(config.getOrgPrefix() + j, s, config); } - logger.infof("Created organizations in realm %s from %d to %d", getRealmName(), orgStartIndex, endIndex); + int createdCount = endIndex - orgStartIndex; - if (((endIndex - startIndex) / config.getEntriesPerTransaction()) % 20 == 0) { - logger.infof("Created %d organizations in realm %s", count, getRealmName()); - } + logger.infof("Created %d organizations in realm %s from %d to %d", createdCount, getRealmName(), orgStartIndex, endIndex); }); } } else { @@ -135,9 +133,9 @@ private Runnable createOrganizations() { executor.waitForAllToFinish(); success(); - logger.infof("Created %d organizations in realm %s", count, getRealmName()); } catch (Exception e) { cleanup(executor); + logger.error("Failed to provision organizations", e); } }; } @@ -151,7 +149,7 @@ private void createOrganization(String name, KeycloakSession session, DatasetCon return; } - OrganizationModel organization = orgProvider.create(name); + OrganizationModel organization = orgProvider.create(name, name); int domainsCount = config.getDomainsCount(); String domains = Optional.ofNullable(config.getDomains()).filter(StringUtil::isNotBlank).orElse(name);