in core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/actuate/health/CamelHealthHelper.java [41:74]
public static void applyHealthDetail(Health.Builder builder, HealthCheck.Result result, String exposureLevel) {
if (!exposureLevel.equals("oneline")) {
HealthCheck check = result.getCheck();
Set<String> metaKeys = check.getMetaData().keySet();
final Map<String, String> data = new LinkedHashMap<>();
result.getDetails().forEach((key, value) -> {
if (value != null) {
if (exposureLevel.equals("full")) {
data.put(key, value.toString());
} else {
// Filter health check metadata to have a less verbose output
if (!metaKeys.contains(key)) {
data.put(key, value.toString());
}
}
}
});
result.getError().ifPresent(error -> {
builder.withDetail("error.message", error.getMessage());
final StringWriter stackTraceWriter = new StringWriter();
try (final PrintWriter pw = new PrintWriter(stackTraceWriter, true)) {
error.printStackTrace(pw);
data.put("error.stacktrace", stackTraceWriter.toString());
}
});
if (!data.isEmpty()) {
String id = result.getCheck().getId() + ".data";
builder.withDetail(id, data);
}
}
}