|
|
@@ -112,11 +112,19 @@ public class LogAnalysisService {
|
|
|
.map(entry -> {
|
|
|
String endpoint = entry.getKey();
|
|
|
List<LogEntry> logs = entry.getValue();
|
|
|
-
|
|
|
+
|
|
|
List<Long> responseTimes = logs.stream()
|
|
|
- .map(log -> log.getContext() != null && log.getContext().get("responseTime") != null ?
|
|
|
- Long.parseLong(log.getContext().get("responseTime").toString()) : 0L)
|
|
|
- .toList();
|
|
|
+ .map(log -> {
|
|
|
+ if (log.getContext() == null || log.getContext().get("responseTime") == null) {
|
|
|
+ return 0L;
|
|
|
+ }
|
|
|
+ String value = log.getContext().get("responseTime").toString();
|
|
|
+ if (value.isBlank()) {
|
|
|
+ return 0L;
|
|
|
+ }
|
|
|
+ return Long.parseLong(value);
|
|
|
+ })
|
|
|
+ .toList();
|
|
|
|
|
|
double avgResponseTime = responseTimes.stream()
|
|
|
.mapToLong(Long::longValue)
|
|
|
@@ -179,13 +187,15 @@ public class LogAnalysisService {
|
|
|
|
|
|
Pageable pageable = PageRequest.of(0, 1000);
|
|
|
Page<LogEntry> logs = logEntryRepository.findByTimestampBetween(startTime, endTime, pageable);
|
|
|
-
|
|
|
+
|
|
|
double avgResponseTime = logs.getContent().stream()
|
|
|
- .filter(log -> log.getContext() != null && log.getContext().get("responseTime") != null)
|
|
|
- .mapToLong(log -> Long.parseLong(log.getContext().get("responseTime").toString()))
|
|
|
- .filter(responseTime -> responseTime != 0L)
|
|
|
- .average()
|
|
|
- .orElse(0.0);
|
|
|
+ .filter(log -> log.getContext() != null && log.getContext().get("responseTime") != null)
|
|
|
+ .map(log -> log.getContext().get("responseTime").toString())
|
|
|
+ .filter(s -> !s.isBlank())
|
|
|
+ .mapToLong(Long::parseLong)
|
|
|
+ .filter(responseTime -> responseTime != 0L)
|
|
|
+ .average()
|
|
|
+ .orElse(0.0);
|
|
|
|
|
|
return LogStatistics.TrendData.builder()
|
|
|
.timestamp(startTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME))
|