我在 Django 中构建了一个简单的正常运行时间监控应用程序,它检查站点是否没有响应 ping 请求。它在“dt”列中存储 ping 时的时间戳,在“ms”列中存储毫秒响应时间。该站点每分钟被 ping 一次,并且一个条目被放入数据库中。
Django 模型如下所示:
class Uptime (models.Model):
user = models.ForeignKey(User)
dt = models.DateTimeField()
ms = models.IntegerField()
我想一次从 dt 列中抓取一天,然后取当天的 ms 响应时间的平均值。即使每天有 1440 个条目,我也想抓住这一天(例如 2013 年 4 月 19 日)并获得平均毫秒响应时间。我在下面使用的代码无疑是错误的,但我觉得我在正确的轨道上。我怎样才能让它工作?
output_date = Uptime.objects.filter(user = request.user).values_list('dt', flat = True).filter(dt__range=(startTime, endTime)).order_by('dt').extra(select={'day': 'extract( day from dt )'}).values('day')
output_ms = Uptime.objects.filter(user = request.user).filter(dt__range=(startTime, endTime)).extra(select={'day': 'date( dt )'}).values('day').aggregate(Avg('ms'))
谢谢!