Ejemplo n.º 1
0
        /// <summary>
        /// Adds a metric to the group, if it doesn't already exist.
        /// </summary>
        /// <returns>The metric.</returns>
        public TMetric Add(T1 tag1, out bool isNew)
        {
            isNew = false;
            if (_metrics.ContainsKey(tag1))
            {
                return(_metrics[tag1]);
            }

            lock (_dictionaryLock)
            {
                if (_metrics.ContainsKey(tag1))
                {
                    return(_metrics[tag1]);
                }

                isNew = true;
                TMetric metric;
                if (WithoutPrefix)
                {
                    metric = _collector.GetMetricWithoutPrefix(Name, Unit, Description, _metricFactory(tag1));
                }
                else
                {
                    metric = _collector.GetMetric(Name, Unit, Description, _metricFactory(tag1));
                }

                _metrics[tag1] = metric;
                return(metric);
            }
        }