@Override
    public SystemInfoResult getSystemInfo(final Map<String, String> params) {
        final Integer limit = NullSafe.getOrElse(
                params.get(PARAM_NAME_LIMIT),
                Integer::valueOf,
                Integer.MAX_VALUE);

        final List<Object> mappedKeys = keyMap
                .entrySet()
                .stream()
                .limit(limit)
                .map(entry ->
                        Map.of(
                                "key", mapKeyForSystemInfo(entry.getKey()),
                                "poolItemCount", NullSafe.get(entry.getValue(), Collection::size)))
                .collect(Collectors.toList());

        final int totalCount = keyMap.values()
                .stream()
                .mapToInt(Collection::size)
                .sum();

        return SystemInfoResult.builder(this)
                .description("List of pool keys")
                .addDetail("keys", mappedKeys)
                .addDetail("totalItemCount", totalCount)
                .addDetail("keyCount", keyMap.size())
                .build();
    }
@return The number of keys in the pool cache
stroom-pipeline/src/main/java/stroom/pipeline/cache/AbstractPoolCache.java