public void record(Long now, String event, Attrs extraDimensions) {
        if (timings.containsKey(event)) {
            return;
        }
        Objects.requireNonNull(now);
        Objects.requireNonNull(event);
        Objects.requireNonNull(extraDimensions);

        Attrs connDims = chan.attr(Server.CONN_DIMENSIONS).get();
        Map<String, String> dimTags = new HashMap<>(connDims.size() + extraDimensions.size());

        connDims.forEach((k, v) -> dimTags.put(k.name(), String.valueOf(v)));
        extraDimensions.forEach((k, v) -> dimTags.put(k.name(), String.valueOf(v)));

        // Note: this is effectively O(n^2) because it will be called for each event in the connection
        // setup.  It should be bounded to at most 10 or so.
        timings.forEach((from, stamp) -> {
            long durationNanos = now - stamp;
            if (durationNanos == 0) {
                // This may happen if an event is double listed, or if the timer is not accurate enough to record
                // it.
                return;
            }
            registry.timer(buildId(metricBase, from, event, dimTags)).record(durationNanos, TimeUnit.NANOSECONDS);
            if (preciseMetricBase != null) {
                PercentileTimer.builder(registry)
                        .withId(buildId(preciseMetricBase, from, event, dimTags))
                        .withRange(MIN_CONN_TIMING, MAX_CONN_TIMING)
                        .build()
                        .record(durationNanos, TimeUnit.NANOSECONDS);
            }
        });
        timings.put(event, now);
    }
A timer for connection stats.  Not thread-safe.
zuul-core/src/main/java/com/netflix/zuul/monitoring/ConnTimer.java