public void decrement(String event) {
        Objects.requireNonNull(event);
        Gauge gauge = counts.remove(event);
        if (gauge == null) {
            // TODO(carl-mastrangelo): make this throw IllegalStateException after verifying this doesn't happen.
            logger.warn("Missing conn counter increment {}", event);
            return;
        }
        synchronized (getLock(gauge.id())) {
            // Noop gauges break this assertion in tests, but the type is package private.   Check to make sure
            // the gauge has a value, or by implementation cannot have a value.
            assert !Double.isNaN(gauge.value())
                    || gauge.getClass().getName().equals("com.netflix.spectator.api.NoopGauge");
            gauge.set(gauge.value() - 1);
        }
    }
An array of locks to guard the gauges.   This is the same as Guava's Striped, but avoids the dep.
<p>
This can be removed after https://github.com/Netflix/spectator/issues/862 is fixed.
zuul-core/src/main/java/com/netflix/zuul/monitoring/ConnCounter.java