diff --git a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/EventLogEntry.java b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/EventLogEntry.java index 65de7699..d044ca91 100644 --- a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/EventLogEntry.java +++ b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/EventLogEntry.java @@ -2,9 +2,18 @@ package nu.marginalia.control.model; public record EventLogEntry( String serviceName, - String instance, + String instanceFull, String eventTime, String eventType, String eventMessage) { + public String instance() { + return instanceFull.substring(0, 8); + } + public String instanceColor() { + return '#' + instanceFull.substring(0, 6); + } + public String instanceColor2() { + return '#' + instanceFull.substring(25, 31); + } } diff --git a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/MessageQueueEntry.java b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/MessageQueueEntry.java index 9694ac1e..c3de8cca 100644 --- a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/MessageQueueEntry.java +++ b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/MessageQueueEntry.java @@ -6,7 +6,7 @@ public record MessageQueueEntry ( String senderInbox, String recipientInbox, String function, - String ownerInstance, + String ownerInstanceFull, long ownerTick, String state, String createdTime, @@ -14,4 +14,13 @@ public record MessageQueueEntry ( int ttl ) { + public String ownerInstance() { + return ownerInstanceFull.substring(0, 8); + } + public String ownerInstanceColor() { + return '#' + ownerInstanceFull.substring(0, 6); + } + public String ownerInstanceColor2() { + return '#' + ownerInstanceFull.substring(25, 31); + } } diff --git a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/ProcessHeartbeat.java b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/ProcessHeartbeat.java index e072a2e2..703635d0 100644 --- a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/ProcessHeartbeat.java +++ b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/ProcessHeartbeat.java @@ -3,11 +3,20 @@ package nu.marginalia.control.model; public record ProcessHeartbeat( String processId, String processBase, - String uuid, + String uuidFull, double lastSeenMillis, Integer progress, String status ) { + public String uuid() { + return uuidFull.substring(0, 8); + } + public String uuidColor() { + return '#' + uuidFull.substring(0, 6); + } + public String uuidColor2() { + return '#' + uuidFull.substring(25, 31); + } public boolean isMissing() { return lastSeenMillis > 10000; } diff --git a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/ServiceHeartbeat.java b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/ServiceHeartbeat.java index dcb4d94e..f43d9058 100644 --- a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/ServiceHeartbeat.java +++ b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/model/ServiceHeartbeat.java @@ -3,12 +3,20 @@ package nu.marginalia.control.model; public record ServiceHeartbeat( String serviceId, String serviceBase, - String uuid, + String uuidFull, double lastSeenMillis, boolean alive ) { public boolean isMissing() { return lastSeenMillis > 10000; } - + public String uuid() { + return uuidFull.substring(0, 8); + } + public String uuidColor() { + return '#' + uuidFull.substring(0, 6); + } + public String uuidColor2() { + return '#' + uuidFull.substring(25, 31); + } } diff --git a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/EventLogService.java b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/EventLogService.java index f54e6996..8167c71c 100644 --- a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/EventLogService.java +++ b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/EventLogService.java @@ -32,7 +32,7 @@ public class EventLogService { while (rs.next()) { entries.add(new EventLogEntry( rs.getString("SERVICE_NAME"), - trimUUID(rs.getString("INSTANCE")), + rs.getString("INSTANCE"), rs.getTimestamp("EVENT_TIME").toLocalDateTime().toLocalTime().toString(), rs.getString("EVENT_TYPE"), rs.getString("EVENT_MESSAGE") @@ -44,11 +44,5 @@ public class EventLogService { throw new RuntimeException(ex); } } - private String trimUUID(String uuid) { - if (uuid.length() > 8) { - return uuid.substring(0, 8); - } - return uuid; - } } diff --git a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/HeartbeatService.java b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/HeartbeatService.java index bd7f56c7..5f8b28f3 100644 --- a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/HeartbeatService.java +++ b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/HeartbeatService.java @@ -34,7 +34,7 @@ public class HeartbeatService { heartbeats.add(new ServiceHeartbeat( rs.getString("SERVICE_NAME"), rs.getString("SERVICE_BASE"), - trimUUID(rs.getString("INSTANCE")), + rs.getString("INSTANCE"), rs.getLong("TSDIFF") / 1000., rs.getBoolean("ALIVE") )); @@ -59,12 +59,13 @@ public class HeartbeatService { var rs = stmt.executeQuery(); while (rs.next()) { + int progress = rs.getInt("PROGRESS"); heartbeats.add(new ProcessHeartbeat( rs.getString("PROCESS_NAME"), rs.getString("PROCESS_BASE"), - trimUUID(rs.getString("INSTANCE")), + rs.getString("INSTANCE"), rs.getLong("TSDIFF") / 1000., - rs.getInt("PROGRESS"), + progress < 0 ? null : progress, rs.getString("STATUS") )); } @@ -75,10 +76,5 @@ public class HeartbeatService { return heartbeats; } - private String trimUUID(String uuid) { - if (uuid.length() > 8) { - return uuid.substring(0, 8); - } - return uuid; - } + } diff --git a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/MessageQueueViewService.java b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/MessageQueueViewService.java index c8016c78..9531c0b4 100644 --- a/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/MessageQueueViewService.java +++ b/code/services-satellite/control-service/src/main/java/nu/marginalia/control/svc/MessageQueueViewService.java @@ -38,7 +38,7 @@ public class MessageQueueViewService { rs.getString("SENDER_INBOX"), rs.getString("RECIPIENT_INBOX"), rs.getString("FUNCTION"), - trimUUID(rs.getString("OWNER_INSTANCE")), + rs.getString("OWNER_INSTANCE"), rs.getLong("OWNER_TICK"), rs.getString("STATE"), rs.getTimestamp("CREATED_TIME").toLocalDateTime().toLocalTime().toString(), @@ -52,15 +52,5 @@ public class MessageQueueViewService { throw new RuntimeException(ex); } } - private String trimUUID(String uuid) { - if (null == uuid) { - return ""; - } - - if (uuid.length() > 8) { - return uuid.substring(0, 8); - } - return uuid; - } } diff --git a/code/services-satellite/control-service/src/main/resources/static/control/style.css b/code/services-satellite/control-service/src/main/resources/static/control/style.css index ada93e58..26b96fbf 100644 --- a/code/services-satellite/control-service/src/main/resources/static/control/style.css +++ b/code/services-satellite/control-service/src/main/resources/static/control/style.css @@ -8,6 +8,11 @@ body { grid-template-areas: "left right"; } +.uuidPip { + margin-left: 0.25ch; + border-radius: 2ch; + border: 1px solid #ccc; +} h1 { font-family: serif; } diff --git a/code/services-satellite/control-service/src/main/resources/templates/control/events.hdb b/code/services-satellite/control-service/src/main/resources/templates/control/events.hdb index 2c0b20b8..b1cf526d 100644 --- a/code/services-satellite/control-service/src/main/resources/templates/control/events.hdb +++ b/code/services-satellite/control-service/src/main/resources/templates/control/events.hdb @@ -23,7 +23,10 @@ {{#each events}} {{serviceName}} - {{instance}} + +    + {{instance}} + {{eventTime}} {{eventType}} {{eventMessage}} diff --git a/code/services-satellite/control-service/src/main/resources/templates/control/message-queue.hdb b/code/services-satellite/control-service/src/main/resources/templates/control/message-queue.hdb index 41bb73f8..d4f071e3 100644 --- a/code/services-satellite/control-service/src/main/resources/templates/control/message-queue.hdb +++ b/code/services-satellite/control-service/src/main/resources/templates/control/message-queue.hdb @@ -33,7 +33,10 @@ {{recipientInbox}} {{senderInbox}} {{function}} - {{ownerInstance}} + +    + {{ownerInstance}} + {{ownerTick}} {{state}} {{createdTime}} diff --git a/code/services-satellite/control-service/src/main/resources/templates/control/processes.hdb b/code/services-satellite/control-service/src/main/resources/templates/control/processes.hdb index 3f6e08eb..1c0f6ebe 100644 --- a/code/services-satellite/control-service/src/main/resources/templates/control/processes.hdb +++ b/code/services-satellite/control-service/src/main/resources/templates/control/processes.hdb @@ -22,7 +22,10 @@ {{#each heartbeats}} {{processId}} - {{uuid}} + +    + {{uuid}} + {{status}} {{#if progress}}{{progress}}%{{/if}} {{#unless isStopped}}{{lastSeenMillis}}{{/unless}} diff --git a/code/services-satellite/control-service/src/main/resources/templates/control/services.hdb b/code/services-satellite/control-service/src/main/resources/templates/control/services.hdb index fc7b0c5b..6a506194 100644 --- a/code/services-satellite/control-service/src/main/resources/templates/control/services.hdb +++ b/code/services-satellite/control-service/src/main/resources/templates/control/services.hdb @@ -20,7 +20,10 @@ {{#each heartbeats}} {{serviceId}} - {{uuid}} + +    + {{uuid}} + {{lastSeenMillis}} {{/each}}