def timeseries(self, kind=None, **kwargs):
"""Get GPRS timeseries.
Wraps StatsClientBase.aggregate_timeseries with some filtering
capabilities.
Note that GPRS UEs are all of the type "gprs," but each event of this
type contains a count for uploaded and downloaded bytes.
Args:
kind: the kind of GPRS UsageEvent to query for, valid values are
downloaded_data, uploaded_data and the default, total_data.
The default will return the sum of downloaded and uploaded.
Keyword Args:
start_time_epoch, end_time_epoch, interval: are all passed on to
StatsClientBase.aggregate_timeseries
"""
start_time_epoch = kwargs.pop('start_time_epoch', 0)
end_time_epoch = kwargs.pop('end_time_epoch', -1)
interval = kwargs.pop('interval', 'months')
if kind in (None, 'total_data', 'uploaded_data'):
uploaded_usage = self.aggregate_timeseries(
'gprs', aggregation='up_byte_count', interval=interval,
start_time_epoch=start_time_epoch,
end_time_epoch=end_time_epoch)
uploaded_usage = self.convert_to_megabytes(uploaded_usage)
if kind in (None, 'total_data', 'downloaded_data'):
downloaded_usage = self.aggregate_timeseries(
'gprs', aggregation='down_byte_count', interval=interval,
start_time_epoch=start_time_epoch,
end_time_epoch=end_time_epoch)
downloaded_usage = self.convert_to_megabytes(downloaded_usage)
if kind == 'uploaded_data':
return uploaded_usage
elif kind == 'downloaded_data':
return downloaded_usage
elif kind in (None, 'total_data'):
# Sum uploaded and downloaded.
up_values = [v[1] for v in uploaded_usage]
down_values = [v[1] for v in downloaded_usage]
totals = [sum(i) for i in zip(up_values, down_values)]
# The dates are all the same for uploaded and downloaded, so we'll
# just use the uploaded usage dates.
dates = [v[0] for v in uploaded_usage]
return zip(dates, totals)
stats_client.py 文件源码
python
阅读 33
收藏 0
点赞 0
评论 0
评论列表
文章目录