Ejemplo n.º 1
0
        private IEnumerable <MetricTelemetry> TranslateCounterSource(CounterValueSource source, string contextName, DateTimeOffset now)
        {
            var counter = source.ValueProvider.GetValue(source.ResetOnReporting); // https://github.com/jdvor/appmetrics-applicationinsights/issues/2

            if (source.ReportSetItems && counter.Items.Length > 0)
            {
                var dimensionName = GetDimensionName(source.Tags);
                foreach (var item in counter.Items)
                {
                    var mt = MetricFactory.CreateMetric(source, contextName, now);
                    TranslateTags(source.Tags, mt);
                    TranslateTags(item.Tags, mt);
                    mt.Properties[Constants.AppMetricsTypeKey] = Constants.CounterTypeValue;
                    mt.Properties[dimensionName] = item.Item;
                    mt.Sum = item.Count;
                    yield return(mt);
                }
            }
            else
            {
                var mt = MetricFactory.CreateMetric(source, contextName, now);
                TranslateTags(source.Tags, mt);
                mt.Properties[Constants.AppMetricsTypeKey] = Constants.CounterTypeValue;
                mt.Sum = counter.Count;
                yield return(mt);
            }
        }
Ejemplo n.º 2
0
        private IEnumerable <MetricTelemetry> TranslateTimerSource(TimerValueSource source, string contextName, DateTimeOffset now)
        {
            var mt = MetricFactory.CreateMetric(source, contextName, now);

            TranslateTags(source.Tags, mt);
            TranslateHistogram(source.Value.Histogram, mt, Constants.TimerHistogramTypeValue);
            mt.Properties[Constants.UnitKey] = source.DurationUnit.ToShortString();
            yield return(mt);

            var unit = source.Value.Rate.RateUnit.ToShortString();

            if (source.Value.Rate.Items.Length > 0)
            {
                var dimensionName = GetDimensionName(source.Tags);
                foreach (var item in source.Value.Rate.Items)
                {
                    mt = MetricFactory.CreateMetric(source, contextName, now, "rate");
                    TranslateTags(source.Tags, mt);
                    TranslateTags(item.Tags, mt);
                    TranslateMeterItem(item, mt, unit, dimensionName, Constants.TimerMeterTypeValue);
                    yield return(mt);
                }
            }
            else
            {
                mt = MetricFactory.CreateMetric(source, contextName, now, "rate");
                TranslateTags(source.Tags, mt);
                TranslateMeterValue(source.Value.Rate, mt, unit, Constants.TimerMeterTypeValue);
                yield return(mt);
            }
        }
        private static MetricTelemetry TranslateHistogramSource(HistogramValueSource source, string contextName, DateTimeOffset now)
        {
            var mt = MetricFactory.CreateMetric(source, contextName, now);

            TranslateTags(source.Tags, mt);
            TranslateHistogram(source.Value, mt, Constants.HistogramTypeValue);
            return(mt);
        }
        private static MetricTelemetry TranslateGaugeSource(GaugeValueSource source, string contextName, DateTimeOffset now)
        {
            var mt = MetricFactory.CreateMetric(source, contextName, now);

            TranslateTags(source.Tags, mt);
            mt.Properties[Constants.AppMetricsTypeKey] = Constants.GaugeTypeValue;
            mt.Sum = source.Value;
            return(mt);
        }
        private static MetricTelemetry TranslateApdexSource(ApdexValueSource source, string contextName, DateTimeOffset now)
        {
            var mt = MetricFactory.CreateMetric(source, contextName, now);

            TranslateTags(source.Tags, mt);
            mt.Properties[Constants.AppMetricsTypeKey] = Constants.ApdexTypeValue;
            var all = source.Value.Satisfied + source.Value.Tolerating + source.Value.Frustrating;

            mt.Sum = (source.Value.Satisfied + ((double)source.Value.Tolerating / 2)) / all;
            return(mt);
        }
        private static IEnumerable <MetricTelemetry> Translate(MeterValueSource source, string contextName, DateTimeOffset now)
        {
            var unit = source.Value.RateUnit.ToShortString();
            var mt   = MetricFactory.CreateMetric(source, contextName, now);

            source.Value.CopyTo(mt, unit);
            yield return(mt);

            foreach (var item in source.Value.Items)
            {
                mt = MetricFactory.CreateMetric(source, contextName, now, item.Item);
                item.CopyTo(mt, unit);
                yield return(mt);
            }
        }
        private IEnumerable <MetricTelemetry> TranslateContext(MetricsContextValueSource ctx, DateTimeOffset now)
        {
            var context = Filter != null?ctx.Filter(Filter) : ctx;

            var contextName = context.Context;

            foreach (var source in context.ApdexScores)
            {
                yield return(Translate(source, contextName, now));
            }

            foreach (var source in context.Counters)
            {
                foreach (var mt in Translate(source, contextName, now))
                {
                    yield return(mt);
                }
            }

            foreach (var source in context.Gauges)
            {
                var mt = MetricFactory.CreateMetric(source, contextName, now);
                mt.Sum = source.Value;
                yield return(mt);
            }

            foreach (var source in context.Histograms)
            {
                yield return(Translate(source, contextName, now));
            }

            foreach (var source in context.Meters)
            {
                foreach (var mt in Translate(source, contextName, now))
                {
                    yield return(mt);
                }
            }

            foreach (var source in context.Timers)
            {
                foreach (var mt in Translate(source, contextName, now))
                {
                    yield return(mt);
                }
            }
        }
        private static IEnumerable <MetricTelemetry> Translate(CounterValueSource source, string contextName, DateTimeOffset now)
        {
            var mt = MetricFactory.CreateMetric(source, contextName, now);

            source.CopyTo(mt);
            yield return(mt);

            if (source.ReportSetItems)
            {
                foreach (var item in source.Value.Items)
                {
                    mt = MetricFactory.CreateMetric(source, contextName, now, item.Item);
                    item.ForwardTo(mt);
                    yield return(mt);
                }
            }
        }
        private static IEnumerable <MetricTelemetry> TranslateMeterSource(MeterValueSource source, string contextName, DateTimeOffset now)
        {
            var unit = source.Value.RateUnit.ToShortString();

            var mt = MetricFactory.CreateMetric(source, contextName, now);

            TranslateTags(source.Tags, mt);
            TranslateMeterValue(source.Value, mt, unit);
            yield return(mt);

            foreach (var item in source.Value.Items)
            {
                mt = MetricFactory.CreateMetric(source, contextName, now, item.Item);
                TranslateTags(source.Tags, mt);
                TranslateTags(item.Tags, mt);
                TranslateMeterItem(item, mt, unit, Constants.MeterTypeValue);
                yield return(mt);
            }
        }
Ejemplo n.º 10
0
        private IEnumerable <MetricTelemetry> TranslateMeterSource(MeterValueSource source, string contextName, DateTimeOffset now)
        {
            var unit = source.Value.RateUnit.ToShortString();

            if (source.ReportSetItems && source.Value.Items.Length > 0)
            {
                var dimensionName = GetDimensionName(source.Tags);
                foreach (var item in source.Value.Items)
                {
                    var mt = MetricFactory.CreateMetric(source, contextName, now);
                    TranslateTags(source.Tags, mt);
                    TranslateTags(item.Tags, mt);
                    TranslateMeterItem(item, mt, unit, dimensionName, Constants.MeterTypeValue);
                    yield return(mt);
                }
            }
            else
            {
                var mt = MetricFactory.CreateMetric(source, contextName, now);
                TranslateTags(source.Tags, mt);
                TranslateMeterValue(source.Value, mt, unit, Constants.MeterTypeValue);
                yield return(mt);
            }
        }