예제 #1
0
        protected override void ReportCounter(string name, MetricData.CounterValue value, Unit unit, MetricTags tags)
        {
            ItemValue item = null;

            if (null != ZabbixConfig)
            {
                ZabbixConfig.TryCreateTrapperItem(name, unit.ToString(), ZabbixApi.Entities.Item.ValueType.NumericUnsigned);
            }
            item = NewItemValue(name, value.Count);
            _sendQueue.Enqueue(item);
            if (value.Items != null && value.Items.Length != 0)
            {
                foreach (var itm in value.Items)
                {
                    if (null != ZabbixConfig)
                    {
                        ZabbixConfig.TryCreateTrapperItem(SubfolderName(name, itm.Item), unit.ToString(), ZabbixApi.Entities.Item.ValueType.NumericUnsigned);
                        ZabbixConfig.TryCreateTrapperItem(SubfolderNameAsPercent(name, itm.Item), Unit.Percent.ToString(), ZabbixApi.Entities.Item.ValueType.NumericFloat);
                    }
                    item = NewItemValue(SubfolderName(name, itm.Item), itm.Count);
                    _sendQueue.Enqueue(item);
                    item = NewItemValue(SubfolderNameAsPercent(name, itm.Item), itm.Percent);
                    _sendQueue.Enqueue(item);
                }
            }
        }
예제 #2
0
        protected override void ReportCounter(string name, MetricData.CounterValue value, Unit unit, MetricTags tags)
        {
            var itemColumns = value.Items.SelectMany(i => new[] { i.Item + " - Count", i.Item + " - Percent" });
            var columns     = CounterColumns.Concat(itemColumns);

            var itemValues = value.Items.SelectMany(i => new[] { Value(i.Count), Value(i.Percent) });
            var data = new[] { Value(value.Count) }.Concat(itemValues);

            Pack(name, columns, data);
        }
예제 #3
0
        /// <summary>
        /// Reports a counter metric.
        /// </summary>
        /// <param name="name">Metric name.</param>
        /// <param name="value">Value.</param>
        /// <param name="unit">Unit of measurement.</param>
        /// <param name="tags">Tags.</param>
        protected override void ReportCounter(string name, MetricData.CounterValue value, Unit unit, MetricTags tags)
        {
            if (value.Items.Length == 0)
            {
                AddValue(name, value.Count, tags);
            }
            else
            {
                AddValue(name + ".total", value.Count, tags);
            }

            foreach (var item in value.Items)
            {
                AddValue(name + "." + item.Item, item.Count, tags);
                AddValue(name + "." + item.Item + ".percent", item.Percent, tags);
            }
        }
예제 #4
0
        protected override void ReportCounter(string name, MetricData.CounterValue value, Unit unit, MetricTags tags)
        {
            if (!value.Items.Any())
            {
                Pack(name, value.Count, tags);
                return;
            }

            var cols = new List <string>(new[] { "total" });

            cols.AddRange(value.Items.Select(x => x.Item));

            var data = new List <object>(new object[] { value.Count });

            data.AddRange(value.Items.Select(x => (object)x.Count));

            Pack(name, cols, data, tags);
        }