python-3.x - GCP Stackdriver Monitoring 累积自定义指标开始和结束时间错误
问题描述
编辑:我想我解决了这个问题。只有开始时间需要保持不变,直到需要重置累积的数字,所以在我的情况下,一天的开始将在午夜之后重置,但结束时间将始终是当前时间。我仍在测试这个,所以我会在得到更多结果后立即关闭这个问题。
EDIT2:因此,将时间间隔设置为从每天开始到发送时结束,图表仍然显示每次调用 client.create_time_series 的峰值。这是我正在寻找的一个示例(忽略右轴,数字应该更高,但我的 Photoshop 技能不是很好): 这就是我目前得到的:
在我解释错误之前,这是我尝试使用此自定义监控指标实现的目标。我的程序每隔一段时间就会记录一些处理过的数据,我想查看每天处理的总数。所以我认为累积指标是正确的选择,每天重置间隔。问题是我不确定如何实现这一目标。
这就是我正在做的事情。每次处理一些新数据时,我都会使用 where 将其添加到指标中client.create_time_series(project_name, [series])
,其中[series]
包含point.value.int64_value
当时处理的数据数量。现在我遇到的问题是间隔。我认为间隔应该是每天的开始和结束时间,我认为指标会在一天结束时从 0 开始。所以我这样做了:
point = series.points.add()
point.value.int64_value = num
startDay = time.mktime(datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0).timetuple())
endDay = time.mktime(datetime.datetime.now().replace(hour=23, minute=59, second=59, microsecond=0).timetuple())
point.interval.start_time.seconds = int(startDay)
point.interval.start_time.nanos = int((startDay - point.interval.start_time.seconds) * 10**9)
point.interval.end_time.seconds = int(endDay)
point.interval.end_time.nanos = int((endDay - point.interval.end_time.seconds) * 10**9)
client.create_time_series(project_name, [series])
我得到这个错误:
400 Field timeSeries[0].points[0].interval.end had an invalid value of \"2018-10-04T16:59:59-07:00\": The end time is too far in the future. A point cannot be written more than 5 minutes into the future.
如果我将时间间隔设置为当前时间,对于发送的每个指标,我只会在图表中看到一堆峰值。我想看到的是在 1 天内从 00:00:00 到 23:59:59 累积的单行,然后在 00:00:00 再次重置。我想要这个,以便我可以查看一天中处理的数据量与每隔一天处理的数据量有关,这样我就可以查看我的过程中是否有任何异常。
所以我想我可能误解了累积指标的工作原理。有没有更好的方法来实现我想要做的事情?
解决方案
推荐阅读
- asp.net-mvc - 如何优化查询EF的速度
- hive - 蜂巢表中的“位置”和“路径”有什么区别
- python - pandas to_sql():操作是否原子
- php - 这是Builder模式的正确用法吗
- http - Dispatchers.IO 中有多少个线程?
- unit-testing - 如何等待流事件在单元测试中得到处理?
- c# - ASP.NET 控制器类是在启动时实例化一次还是在每次调用端点时实例化?
- excel - VBA:从字典中获取值
- vis.js - 有没有办法让加载进度条在 visjs 中再次运行?
- python-3.x - Matplotlib:根据模式用多种颜色为小提琴图着色