/// <summary> /// Adds a value to the time series. /// </summary> /// <param name="value">Metric value.</param> public void Track(double value) { SimpleMetricStatisticsAggregator aggregator = this.manager.GetStatisticsAggregator(this); aggregator.Track(value); this.ForwardToProcessors(value); }
/// <summary> /// Generates telemetry object based on the metric aggregator. /// </summary> /// <param name="metric">Metric definition.</param> /// <param name="statistics">Metric aggregator statistics calculated for a period of time.</param> /// <returns>Metric telemetry object resulting from aggregation.</returns> private static MetricTelemetry CreateAggergatedMetricTelemetry(Metric metric, SimpleMetricStatisticsAggregator statistics) { var telemetry = new MetricTelemetry( metric.Name, statistics.Count, statistics.Sum, statistics.Min, statistics.Max, statistics.StandardDeviation); if (metric.Dimensions != null) { foreach (KeyValuePair <string, string> property in metric.Dimensions) { telemetry.Properties.Add(property); } } return(telemetry); }
/// <summary> /// Generates telemetry object based on the metric aggregator. /// </summary> /// <param name="metric">Metric definition.</param> /// <param name="statistics">Metric aggregator statistics calculated for a period of time.</param> /// <returns>Metric telemetry object resulting from aggregation.</returns> private static MetricTelemetry CreateAggregatedMetricTelemetry(Metric metric, SimpleMetricStatisticsAggregator statistics) { var telemetry = new MetricTelemetry( metric.Name, statistics.Count, statistics.Sum, statistics.Min, statistics.Max, statistics.StandardDeviation); if (metric.Dimensions != null) { foreach (KeyValuePair <string, string> property in metric.Dimensions) { telemetry.Properties.Add(property); } } // add a header allowing to distinguish metrics // built using metric manager from other metrics telemetry.Context.GetInternalContext().SdkVersion = sdkVersionPropertyValue; return(telemetry); }