GCP Stackdriver Monitoring Совокупные пользовательские ошибки времени начала и окончания - PullRequest
0 голосов
/ 04 октября 2018

РЕДАКТИРОВАТЬ: Я думаю, что я понял проблему.Только время начала должно оставаться неизменным до тех пор, пока накопленное число не будет сброшено, поэтому в моем случае начало дня будет сброшено после полуночи, но время окончания всегда будет текущим временем.Я все еще тестирую это, поэтому я закрою этот вопрос, как только получу больше результатов.

РЕДАКТИРОВАТЬ2: Таким образом, с установленным интервалом времени, который начинается в начале каждого дня и заканчивается в момент отправкиГрафики по-прежнему отображают всплеск при каждом вызове client.create_time_series.Вот пример того, что я ищу (не обращайте внимания на правую ось, цифры должны быть выше, но мои навыки работы с фотошопом не велики): enter image description here И вот что я сейчас получаю: enter image description here

Прежде чем я объясню ошибку, вот что я пытаюсь достичь с помощью этой пользовательской метрики мониторинга.Моя программа время от времени регистрирует количество обработанных данных, и я хочу видеть общее число обработанных каждый день.Поэтому я подумал, что кумулятивная метрика - правильный выбор, когда интервал сбрасывается каждый день.Проблема в том, что я не уверен, как этого добиться.

Вот что я делаю.Каждый раз, когда обрабатываются некоторые новые данные, я добавляю их к метрике, используя 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.Я хочу, чтобы я мог видеть, сколько данных обрабатывается за один день по отношению к каждому второму дню, чтобы я мог видеть, есть ли какие-либо отклонения в моем процессе.

Так что я думаю, что, возможно, неправильно понял, какнакопительные метрические работы.Есть ли лучший способ добиться того, что я пытаюсь сделать?

...