private static String toAsciiTable(final Map<String, Metric> nameToMetricMap) {
        final List<Snapshot> snapshots = nameToMetricMap
                .values()
                .stream()
                .map(Metric::snapshot)
                .sorted(Comparator.comparing(Snapshot::getDeltaCallsPerSecond))
                .toList();

        return AsciiTable.builder(snapshots)
                .withColumn(Column.of("Name", Snapshot::getName))
                .withColumn(Column.integer("Delta calls", Snapshot::getDeltaCalls))
                .withColumn(Column.decimal(
                        "Delta elapsed (ms)",
                        (Snapshot row) -> row.getDeltaElapsed() / (double) NANOS_IN_ONE_MILLI,
                        3))
                .withColumn(Column.integer("Delta call/s", Snapshot::getDeltaCallsPerSecond))
                .withColumn(Column.integer("Total calls", Snapshot::getCalls))
                .withColumn(Column.decimal(
                        "Total elapsed (ms)",
                        (Snapshot row) -> row.getDeltaElapsed() / (double) NANOS_IN_ONE_MILLI,
                        3))
                .withColumn(Column.integer("Total call/s", Snapshot::getCallsPerSecond))
                .build();
    }
Creates a non-static {@link LocalMetrics} for transient use in a class/method.

@param isEnabled If false returns an instance that does nothing apart from call
                 the passed runnables/suppliers.
stroom-util/src/main/java/stroom/util/logging/SimpleMetrics.java