private IPCLoggerChannelMetrics(IPCLoggerChannel ch)
        {
            this.ch = ch;
            Configuration conf = new HdfsConfiguration();

            int[] intervals = conf.GetInts(DFSConfigKeys.DfsMetricsPercentilesIntervalsKey);
            if (intervals != null)
            {
                writeEndToEndLatencyQuantiles = new MutableQuantiles[intervals.Length];
                writeRpcLatencyQuantiles      = new MutableQuantiles[intervals.Length];
                for (int i = 0; i < writeEndToEndLatencyQuantiles.Length; i++)
                {
                    int interval = intervals[i];
                    writeEndToEndLatencyQuantiles[i] = registry.NewQuantiles("writesE2E" + interval +
                                                                             "s", "End-to-end time for write operations", "ops", "LatencyMicros", interval);
                    writeRpcLatencyQuantiles[i] = registry.NewQuantiles("writesRpc" + interval + "s",
                                                                        "RPC RTT for write operations", "ops", "LatencyMicros", interval);
                }
            }
            else
            {
                writeEndToEndLatencyQuantiles = null;
                writeRpcLatencyQuantiles      = null;
            }
        }