protected override Task <IEnumerable <TimeSeriesData> > GetTimeSeriesData(string metric                       // the name of the metric sought
                                                                                  , TimeSpan interval                 // how far apart are the data values? e.g. every 30s
                                                                                  , TimeRange timeRange               // the beginning and ending times for the data to retrieve
                                                                                  , int?maxDataPoints                 // the maximum number of datapoints to retrieve, if null or 0, then return 'em all!
                                                                                  , IEnumerable <Filter> adhocFilters // any additional filters to apply
                                                                                  )
        {
            return(Task.Run(() => {
                var retVal = new List <TimeSeriesData>((int)(timeRange.AsTimeSpan() / interval));

                for (var count = 0; count < retVal.Capacity; count++)
                {
                    retVal.Add(new TimeSeriesData {
                        Time = timeRange.From + (interval * count), Value = count
                    });
                }

                return retVal.AsEnumerable();
            }));
        }