Improve db calls stats printing
This commit is contained in:
		
							parent
							
								
									7ce3af709b
								
							
						
					
					
						commit
						9d19879bd7
					
				@ -72,7 +72,7 @@ public class SqlDaoCallsAspect {
 | 
			
		||||
        try {
 | 
			
		||||
            if (log.isTraceEnabled()) {
 | 
			
		||||
                logTopNTenants(snapshots, Comparator.comparing(DbCallStatsSnapshot::getTotalTiming).reversed(), 0, snapshot -> {
 | 
			
		||||
                    logSnapshot(snapshot, 0, Comparator.comparing(MethodCallStatsSnapshot::getTiming).reversed(), log::trace);
 | 
			
		||||
                    logSnapshot(snapshot, 0, Comparator.comparing(MethodCallStatsSnapshot::getTiming).reversed(), "timing", log::trace);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
                Map<String, Map<TenantId, MethodCallStatsSnapshot>> byMethodStats = new HashMap<>();
 | 
			
		||||
@ -97,29 +97,33 @@ public class SqlDaoCallsAspect {
 | 
			
		||||
            } else if (log.isDebugEnabled()) {
 | 
			
		||||
                log.debug("Total calls statistics below:");
 | 
			
		||||
                logTopNTenants(snapshots, Comparator.comparingInt(DbCallStatsSnapshot::getTotalCalls).reversed(), 10,
 | 
			
		||||
                        s -> logSnapshot(s, 10, Comparator.comparing(MethodCallStatsSnapshot::getExecutions).reversed(), log::debug));
 | 
			
		||||
                        s -> logSnapshot(s, 10, Comparator.comparing(MethodCallStatsSnapshot::getExecutions).reversed(), "executions", log::debug));
 | 
			
		||||
                log.debug("Total timing statistics below:");
 | 
			
		||||
                logTopNTenants(snapshots, Comparator.comparingLong(DbCallStatsSnapshot::getTotalTiming).reversed(),
 | 
			
		||||
                        10, s -> logSnapshot(s, 10, Comparator.comparing(MethodCallStatsSnapshot::getTiming).reversed(), log::debug));
 | 
			
		||||
                logTopNTenants(snapshots, Comparator.comparingLong(DbCallStatsSnapshot::getTotalTiming).reversed(), 10,
 | 
			
		||||
                        s -> logSnapshot(s, 10, Comparator.comparing(MethodCallStatsSnapshot::getTiming).reversed(), "timing", log::debug));
 | 
			
		||||
                log.debug("Total errors statistics below:");
 | 
			
		||||
                logTopNTenants(snapshots, Comparator.comparingInt(DbCallStatsSnapshot::getTotalFailure).reversed(),
 | 
			
		||||
                        10, s -> logSnapshot(s, 10, Comparator.comparing(MethodCallStatsSnapshot::getFailures).reversed(), log::debug));
 | 
			
		||||
                logTopNTenants(snapshots, Comparator.comparingInt(DbCallStatsSnapshot::getTotalFailure).reversed(), 10,
 | 
			
		||||
                        s -> logSnapshot(s, 10, Comparator.comparing(MethodCallStatsSnapshot::getFailures).reversed(), "failures", log::debug));
 | 
			
		||||
            } else if (log.isInfoEnabled()) {
 | 
			
		||||
                log.info("Total calls statistics below:");
 | 
			
		||||
                logTopNTenants(snapshots, Comparator.comparingInt(DbCallStatsSnapshot::getTotalFailure).reversed(),
 | 
			
		||||
                        3, s -> logSnapshot(s, 3, Comparator.comparing(MethodCallStatsSnapshot::getFailures).reversed(), log::info));
 | 
			
		||||
                logTopNTenants(snapshots, Comparator.comparingInt(DbCallStatsSnapshot::getTotalCalls).reversed(), 3,
 | 
			
		||||
                        s -> logSnapshot(s, 3, Comparator.comparing(MethodCallStatsSnapshot::getExecutions).reversed(), "executions", log::info));
 | 
			
		||||
                log.info("Total timing statistics below:");
 | 
			
		||||
                logTopNTenants(snapshots, Comparator.comparingLong(DbCallStatsSnapshot::getTotalTiming).reversed(), 3,
 | 
			
		||||
                        s -> logSnapshot(s, 3, Comparator.comparing(MethodCallStatsSnapshot::getTiming).reversed(), "timing", log::info));
 | 
			
		||||
            }
 | 
			
		||||
        } finally {
 | 
			
		||||
            statsMap.clear();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void logSnapshot(DbCallStatsSnapshot snapshot, int limit, Comparator<MethodCallStatsSnapshot> methodStatsComparator, Consumer<String> logger) {
 | 
			
		||||
    private void logSnapshot(DbCallStatsSnapshot snapshot, int limit, Comparator<MethodCallStatsSnapshot> methodStatsComparator, String sortingKey, Consumer<String> logger) {
 | 
			
		||||
        logger.accept(String.format("[%s]: calls: %s, failures: %s, exec time: %s ",
 | 
			
		||||
                snapshot.getTenantId(), snapshot.getTotalCalls(), snapshot.getTotalFailure(), snapshot.getTotalTiming()));
 | 
			
		||||
        var stream = snapshot.getMethodStats().entrySet().stream()
 | 
			
		||||
                .sorted(Map.Entry.comparingByValue(methodStatsComparator));
 | 
			
		||||
        if (limit > 0) {
 | 
			
		||||
            logger.accept(String.format("[%s] Top %s methods by %s:", snapshot.getTenantId(), limit, sortingKey));
 | 
			
		||||
            stream = stream.limit(limit);
 | 
			
		||||
        }
 | 
			
		||||
        stream.forEach(e -> {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user