internal MetricPoint( AggregatorStore aggregatorStore, AggregationType aggType, string[] keys, object[] values, double[] histogramExplicitBounds) { Debug.Assert(aggregatorStore != null, "AggregatorStore was null."); Debug.Assert((keys?.Length ?? 0) == (values?.Length ?? 0), "Key and value array lengths did not match."); Debug.Assert(histogramExplicitBounds != null, "Histogram explicit Bounds was null."); this.aggType = aggType; this.Tags = new ReadOnlyTagCollection(keys, values); this.runningValue = default; this.snapshotValue = default; this.deltaLastValue = default; this.MetricPointStatus = MetricPointStatus.NoCollectPending; if (this.aggType == AggregationType.Histogram) { this.histogramBuckets = new HistogramBuckets(histogramExplicitBounds); } else if (this.aggType == AggregationType.HistogramSumCount) { this.histogramBuckets = new HistogramBuckets(null); } else { this.histogramBuckets = null; } // Note: Intentionally set last because this is used to detect valid MetricPoints. this.aggregatorStore = aggregatorStore; }
internal MetricPoint( AggregationType aggType, DateTimeOffset startTime, string[] keys, object[] values, double[] histogramExplicitBounds) { Debug.Assert((keys?.Length ?? 0) == (values?.Length ?? 0), "Key and value array lengths did not match."); Debug.Assert(histogramExplicitBounds != null, "Histogram explicit Bounds was null."); this.aggType = aggType; this.StartTime = startTime; this.Tags = new ReadOnlyTagCollection(keys, values); this.EndTime = default; this.runningValue = default; this.snapshotValue = default; this.deltaLastValue = default; this.MetricPointStatus = MetricPointStatus.NoCollectPending; if (this.aggType == AggregationType.Histogram) { this.histogramBuckets = new HistogramBuckets(histogramExplicitBounds); } else if (this.aggType == AggregationType.HistogramSumCount) { this.histogramBuckets = new HistogramBuckets(null); } else { this.histogramBuckets = null; } }