Пример #1
0
        public Histogram([NotNull] MetricBase metricBase, [NotNull] LabelDict labels, [NotNull] double[] buckets)
            : base(metricBase, labels)
        {
            Debug.Assert(metricBase.Type == MetricsType.Histogram);
            _buckets = buckets.OrderBy(_ => _).ToArray();
            if (_buckets.Length == 0)
            {
                _buckets = DefaultBuckets;
            }
            else if (!double.IsPositiveInfinity(_buckets.Last()))
            {
                _buckets = _buckets.AsEnumerable().Concat(new[] { double.PositiveInfinity }).ToArray();
            }

            if (_buckets.Length < 2)
            {
                throw new ArgumentException("Must at least provide one bucket", nameof(buckets));
            }

            _counts     = Enumerable.Repeat(0UL, _buckets.Length).ToArray();
            _bucketName = ExtendBaseName(QualifiedName(LePlaceholder), "_bucket");
            var name = QualifiedName();

            _sumName   = ExtendBaseName(name, "_sum");
            _countName = ExtendBaseName(name, "_count");
        }
Пример #2
0
        public Summary([NotNull] MetricBase metricBase, [NotNull] LabelDict labels) : base(metricBase, labels)
        {
            Debug.Assert(metricBase.Type == MetricsType.Gauge);
            var name = QualifiedName();

            _sumName   = ExtendBaseName(name, "_sum");
            _countName = ExtendBaseName(name, "_count");
        }
Пример #3
0
        public void TestConstruction()
        {
            // ReSharper disable once AssignNullToNotNullAttribute
            Assert.That(() => new LabelDict((string)null), Throws.TypeOf <ArgumentNullException>());
            Assert.That(() => new LabelDict(""), Throws.TypeOf <ArgumentNullException>());

            var d = new LabelDict("foo");

            Assert.That(d.Environment, Is.EqualTo("foo"));
            Assert.That(d.Count, Is.EqualTo(0));

            var d2 = new LabelDict(d);

            Assert.That(d2.Environment, Is.EqualTo("foo"));
            Assert.That(d2.Count, Is.EqualTo(0));
        }
Пример #4
0
        public void TestSet()
        {
            var d = new LabelDict("foo");

            d.Set("baz", "baz");
            Assert.That(d.Count, Is.EqualTo(1));
            Assert.That(d.Get("baz"), Is.EqualTo("baz"));

            d.Set("baz", "baz2");
            Assert.That(d.Count, Is.EqualTo(1));
            Assert.That(d.Get("baz"), Is.EqualTo("baz2"));

            d.Set("foo", "bar");
            Assert.That(d.Count, Is.EqualTo(2));
            Assert.That(d.Get("baz"), Is.EqualTo("baz2"));
            Assert.That(d.Get("foo"), Is.EqualTo("bar"));
        }
Пример #5
0
        public void TestToString()
        {
            var d = new LabelDict("foo");

            Assert.That(d.ToString(null), Is.EqualTo("environment=\"foo\""));
            Assert.That(d.ToString(""), Is.EqualTo("environment=\"foo\""));
            Assert.That(d.ToString("123"), Is.EqualTo("environment=\"foo\",le=\"123\""));

            d = new LabelDict("foo\nbar");
            Assert.That(d.ToString(null), Is.EqualTo("environment=\"foo\\nbar\""));

            d = new LabelDict("foo\"bar");
            Assert.That(d.ToString(null), Is.EqualTo("environment=\"foo\\\"bar\""));

            d = new LabelDict("foo\\bar");
            Assert.That(d.ToString(null), Is.EqualTo("environment=\"foo\\\\bar\""));

            d = new LabelDict("foo");
            d.Set("a", "b");
            Assert.That(d.ToString(null), Is.EqualTo("environment=\"foo\",a=\"b\""));
        }
Пример #6
0
        private bool Equals([NotNull] LabelDict other)
        {
            if (Environment != other.Environment)
            {
                return(false);
            }

            if (_labels.Count != other._labels.Count)
            {
                return(false);
            }

            for (var i = 0; i < _labels.Count; ++i)
            {
                if (_labels[i].Key != other._labels[i].Key || _labels[i].Value != other._labels[i].Value)
                {
                    return(false);
                }
            }

            return(true);
        }
Пример #7
0
        public void TestEquality()
        {
            var d1 = new LabelDict("foo");
            var d2 = new LabelDict(d1);
            var d3 = new LabelDict("foo");
            var d4 = new LabelDict("bar");
            var d5 = new LabelDict("foo");

            d5.Set("bar", "baz");
            var d6 = new LabelDict("foo");

            d6.Set("bar", "baz2");

            Assert.That(d1, Is.EqualTo(d1));
            Assert.That(d1, Is.Not.EqualTo(null));
            Assert.That(d1, Is.EqualTo(d2));
            Assert.That(d1, Is.EqualTo(d3));
            Assert.That(d1, Is.EqualTo(d2));
            Assert.That(d1, Is.Not.EqualTo(d4));
            Assert.That(d1, Is.Not.EqualTo(d5));
            Assert.That(d5, Is.Not.EqualTo(d6));
        }
Пример #8
0
 protected LabeledMetric([NotNull] MetricBase metricBase, [NotNull] LabelDict labels)
 {
     _metricBase = metricBase;
     Labels      = labels;
 }
 public Counter([NotNull] MetricBase metricBase, [NotNull] LabelDict labels) : base(metricBase, labels)
 {
     Debug.Assert(metricBase.Type == MetricsType.Counter);
     _name = QualifiedName();
 }
Пример #10
0
 public LabelDict([NotNull] LabelDict other)
 {
     Environment = other.Environment;
     _labels     = new List <KeyValuePair <string, string> >(other._labels);
 }