Skip to content

Commit 11f042c

Browse files
authored
Make MonitoredJobHealthCheck details consistent and human-readable (#599)
* Rename the lastFailure detail to lastFailureTimestamp. * Rename the lastSuccess detail to lastSuccessTimestamp. * Rename the lastExecutionTimeMs detail to lastSuccessfulExecutionDurationMs. * Rename the expectedFrequencyMs detail to expectedJobFrequencyMs. * Rename the errorWarningDurationMs detail to recentErrorWarningDurationMs. * Rename the warningThresholdMs detail to warningThresholdDurationMs. * Add lastFailureTime detail (human-readable of lastSuccessTimestamp). * Add lastSuccessfulExecutionDuration detail (human-readable of lastSuccessfulExecutionDurationMs). * Add expectedJobFrequency detail (human-readable of expectedJobFrequencyMs). * Add warningThresholdDuration detail (human-readable of warningThresholdDurationMs). * Add recentErrorWarningDuration detail (human-readable of recentErrorWarningDurationMs). Closes #598
1 parent 88221f0 commit 11f042c

File tree

2 files changed

+44
-15
lines changed

2 files changed

+44
-15
lines changed

src/main/java/org/kiwiproject/dropwizard/util/health/MonitoredJobHealthCheck.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -162,17 +162,27 @@ private ResultBuilder resultBuilderWith(String message, boolean healthy, Excepti
162162
var resultBuilder = isNull(error) ? newResultBuilder(healthy)
163163
: newUnhealthyResultBuilder(error);
164164

165+
var lastFailureMillis = job.lastFailureMillis();
166+
var lastSuccessMillis = job.lastSuccessMillis();
167+
var lastExecutionTimeMillis = job.lastExecutionTimeMillis();
168+
165169
return resultBuilder
166170
.withMessage(message)
167171
.withDetail("jobName", job.getName())
168172
.withDetail("totalErrors", job.failureCount())
169-
.withDetail("lastFailure", job.lastFailureMillis())
173+
.withDetail("lastFailureTimestamp", lastFailureMillis)
174+
.withDetail("lastFailureTime", instantToStringOrNever(lastFailureMillis))
170175
.withDetail("lastJobExceptionInfo", job.lastJobExceptionInfo())
171-
.withDetail("lastSuccess", job.lastSuccessMillis())
172-
.withDetail("lastExecutionTimeMs", job.lastExecutionTimeMillis())
173-
.withDetail("expectedFrequencyMs", expectedFrequencyMilliseconds)
174-
.withDetail("warningThresholdMs", warningThresholdDurationMilliseconds)
175-
.withDetail("errorWarningDurationMs", errorWarningDurationMilliseconds);
176+
.withDetail("lastSuccessTimestamp", lastSuccessMillis)
177+
.withDetail("lastSuccessTime", instantToStringOrNever(lastSuccessMillis))
178+
.withDetail("lastSuccessfulExecutionDurationMs", lastExecutionTimeMillis)
179+
.withDetail("lastSuccessfulExecutionDuration", formatMillisecondDurationWords(lastExecutionTimeMillis))
180+
.withDetail("expectedJobFrequencyMs", expectedFrequencyMilliseconds)
181+
.withDetail("expectedJobFrequency", formatMillisecondDurationWords(expectedFrequencyMilliseconds))
182+
.withDetail("warningThresholdDurationMs", warningThresholdDurationMilliseconds)
183+
.withDetail("warningThresholdDuration", warningThresholdDurationString)
184+
.withDetail("recentErrorWarningDurationMs", errorWarningDurationMilliseconds)
185+
.withDetail("recentErrorWarningDuration", errorWarningDurationString);
176186
}
177187

178188
private static void checkValidHealthArgumentCombination(boolean healthy, Exception error) {

src/test/java/org/kiwiproject/dropwizard/util/health/MonitoredJobHealthCheckTest.java

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,21 @@ private void assertHealthyHealthCheck(MonitoredJobHealthCheck healthCheck, Strin
183183
assertThatHealthCheck(healthCheck)
184184
.isHealthy()
185185
.hasMessage(messageTemplate, args)
186-
.hasDetailsContainingKeys("jobName", "totalErrors", "lastFailure", "lastSuccess",
187-
"lastExecutionTimeMs", "expectedFrequencyMs", "errorWarningDurationMs")
188-
.hasDetail("warningThresholdMs", MonitoredJobHealthCheck.MINIMUM_WARNING_THRESHOLD.toMilliseconds());
186+
.hasDetailsContainingKeys("jobName",
187+
"totalErrors",
188+
"lastFailureTimestamp",
189+
"lastFailureTime",
190+
"lastSuccessTimestamp",
191+
"lastSuccessTime",
192+
"lastSuccessfulExecutionDurationMs",
193+
"lastSuccessfulExecutionDuration",
194+
"expectedJobFrequencyMs",
195+
"expectedJobFrequency",
196+
"recentErrorWarningDurationMs",
197+
"recentErrorWarningDuration"
198+
)
199+
.hasDetail("warningThresholdDurationMs", MonitoredJobHealthCheck.MINIMUM_WARNING_THRESHOLD.toMilliseconds())
200+
.hasDetail("warningThresholdDuration", formatDropwizardDurationWords(MonitoredJobHealthCheck.MINIMUM_WARNING_THRESHOLD));
189201
}
190202
}
191203

@@ -292,13 +304,20 @@ private void assertUnhealthyHealthCheck(MonitoredJobHealthCheck healthCheck, Str
292304
.hasDetailsContainingKeys(
293305
"jobName",
294306
"totalErrors",
295-
"lastFailure",
307+
"lastFailureTimestamp",
308+
"lastFailureTime",
296309
"lastJobExceptionInfo",
297-
"lastSuccess",
298-
"lastExecutionTimeMs",
299-
"expectedFrequencyMs",
300-
"errorWarningDurationMs")
301-
.hasDetail("warningThresholdMs", MonitoredJobHealthCheck.MINIMUM_WARNING_THRESHOLD.toMilliseconds());
310+
"lastSuccessTimestamp",
311+
"lastSuccessTime",
312+
"lastSuccessfulExecutionDurationMs",
313+
"lastSuccessfulExecutionDuration",
314+
"expectedJobFrequencyMs",
315+
"expectedJobFrequency",
316+
"recentErrorWarningDurationMs",
317+
"recentErrorWarningDuration"
318+
)
319+
.hasDetail("warningThresholdDurationMs", MonitoredJobHealthCheck.MINIMUM_WARNING_THRESHOLD.toMilliseconds())
320+
.hasDetail("warningThresholdDuration", formatDropwizardDurationWords(MonitoredJobHealthCheck.MINIMUM_WARNING_THRESHOLD));
302321
}
303322
}
304323
}

0 commit comments

Comments
 (0)