/// <summary>
        /// Initializes a new instance of the type
        /// </summary>
        /// <param name="writer">The writer callback to be invoked when the output is to be written</param>
        /// <param name="userState">The user state to pass to the callback</param>
        /// <param name="name">The name of the pulse</param>
        /// <param name="delayPublish">Delay publishing of the pulse until a value is received</param>
        /// <param name="help">The help text associated with the pulse</param>
        /// <param name="labels">The labels assocaited with the pulse</param>
        public SimplePulse(ISimpleMetricWriter writer, object userState, bool delayPublish, string name, string help, string[] labels)
        {
            Name   = name;
            Help   = help;
            Labels = labels;

            _delayPublish = delayPublish;
            _userState    = userState;
            _writer       = writer;
        }
        /// <summary>
        /// Initializes a new instance of the type
        /// </summary>
        /// <param name="writer">The writer callback to be invoked when the output is to be written</param>
        /// <param name="userState">The user state to pass to the callback</param>
        /// <param name="name">The name of the counter</param>
        /// <param name="delayPublish">Delay publishing of the counter until a value is received</param>
        /// <param name="help">The help text associated with the counter</param>
        /// <param name="labels">The labels assocaited with the counter</param>
        /// <param name="bucketDuration">The number of seconds in each bucket interval</param>
        public SimpleSummary(ISimpleMetricWriter writer, object userState, bool delayPublish, long bucketDuration, string name, string help, string[] labels)
        {
            Name   = name;
            Help   = help;
            Labels = labels;

            _bucket       = new MetricBucket(bucketDuration);
            _delayPublish = delayPublish;
            _userState    = userState;
            _writer       = writer;
        }