Example #1
0
        /// <inheritdoc />
        public async Task <bool> FlushAsync(MetricsDataValueSource metricsData, CancellationToken cancellationToken = default)
        {
            Logger.Trace("Flushing metrics snapshot");

            using (var stream = new MemoryStream())
            {
                await Formatter.WriteAsync(stream, metricsData, cancellationToken);

                var output = Encoding.UTF8.GetString(stream.ToArray());

                var result = await _httpClient.WriteAsync(output, Formatter.MediaType, cancellationToken);

                if (result.Success)
                {
                    Logger.Trace("Flushed metrics snapshot");
                    return(true);
                }

                Logger.Error(result.ErrorMessage);

                return(false);
            }
        }