private async Task WriteAsync(
            MetricsDataValueSource metricsData,
            CancellationToken cancellationToken = default)
        {
            var serializer = new MetricSnapshotSerializer();

            await using var writer = new MetricSnapshotWavefrontWriter(wavefrontSender, source,
                                                                       globalTags, histogramGranularities, sdkMetricsRegistry, metricFields);
            serializer.Serialize(writer, metricsData, metricFields);
        }
        /// <summary>
        ///     Writes the specified <see cref="MetricsDataValueSource" /> to the configured
        ///     <see cref="IWavefrontSender" />.
        /// </summary>
        /// <param name="metricsData">
        ///     The <see cref="MetricsDataValueSource" /> being written.
        /// </param>
        /// <param name="cancellationToken">The <see cref="CancellationToken" /></param>
        /// <returns>A <see cref="Task" /> representing the asynchronous write operation.</returns>

#if NET452
        private Task WriteAsync(
            MetricsDataValueSource metricsData,
            CancellationToken cancellationToken = default)
        {
            var serializer = new MetricSnapshotSerializer();

            using (var writer = new MetricSnapshotWavefrontWriter(wavefrontSender, source,
                                                                  globalTags, histogramGranularities, sdkMetricsRegistry, metricFields))
            {
                serializer.Serialize(writer, metricsData, metricFields);
            }

            return(AppMetricsTaskHelper.CompletedTask());
        }
        public MetricSnapshotWavefrontWriterTest()
        {
            var wfSender   = wfSenderMock.Object;
            var globalTags = new Dictionary <string, string>
            {
                { "globalKey1", "globalVal1" },
                { "globalKey2", "globalVal2" }
            };
            var histogramGranularities = new HashSet <HistogramGranularity>
            {
                HistogramGranularity.Minute
            };
            var sdkMetricsRegistry = new WavefrontSdkMetricsRegistry.Builder(wfSender).Build();

            writer = new MetricSnapshotWavefrontWriter(wfSender, "source", globalTags,
                                                       histogramGranularities, sdkMetricsRegistry, new MetricFields());
        }