private async Task<ICollection<MetricValueSet>> PartitionAndFetch(FetchData data) {
            var results = data.Partition().Select(_=>Fetch(_)).ToArray();

            return Join(await Task.WhenAll(results));
        }
        private async Task <ICollection <MetricValueSet> > PartitionAndFetch(FetchData data)
        {
            var results = data.Partition().Select(_ => Fetch(_)).ToArray();

            return(Join(await Task.WhenAll(results)));
        }