private static MetricTelemetry Translate(HistogramValueSource source, string contextName, DateTimeOffset now) { var mt = MetricFactory.CreateMetric(source, contextName, now); source.Value.CopyTo(mt); return(mt); }
private static 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(); mt = MetricFactory.CreateMetric(source, contextName, now, "rate"); TranslateTags(source.Tags, mt); TranslateMeterValue(source.Value.Rate, mt, unit); yield return(mt); foreach (var item in source.Value.Rate.Items) { mt = MetricFactory.CreateMetric(source, contextName, now, "rate", item.Item); TranslateTags(source.Tags, mt); TranslateTags(item.Tags, mt); TranslateMeterItem(item, mt, unit, Constants.TimerMeterTypeValue); yield return(mt); } }
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); } }
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); } }
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); } }