self.debug("starting data collection - update frequency:", str(step), ", retries allowed:", str(self.retries))
while True: # run forever, unless something is wrong
now = float(time.time())
- next = self.timetable['next'] = now - (now % step) + step + (step / 3) # add 1/3 into the iteration to sync with netdata
+ next = self.timetable['next'] = now - (now % step) + step
# it is important to do this in a loop
# sleep() is interruptable
// prevent all logs if the errors per period is 0
if(error_log_errors_per_period == 0)
+#ifdef NETDATA_INTERNAL_CHECKS
+ return 0;
+#else
return 1;
+#endif
time_t now = time(NULL);
if(!start) start = now;
prevented++;
// prevent logging this error
+#ifdef NETDATA_INTERNAL_CHECKS
+ return 0;
+#else
return 1;
+#endif
}
return 0;
}
// make sure the database is aligned
- if(st->last_updated.tv_sec % update_every) {
- st->last_updated.tv_sec -= st->last_updated.tv_sec % update_every;
- st->last_updated.tv_usec = 0;
+ if(st->last_updated.tv_sec) {
+ if(st->last_updated.tv_sec % update_every)
+ st->last_updated.tv_sec -= st->last_updated.tv_sec % update_every;
+
+ // aligned in the middle, for tolerance with plugins
+ st->last_updated.tv_usec = 500000ULL;
}
}
// align it to update_every
st->last_collected_time.tv_sec -= st->last_collected_time.tv_sec % st->update_every;
- st->last_collected_time.tv_usec = 0;
+ st->last_collected_time.tv_usec = 500000ULL;
last_collect_ut = st->last_collected_time.tv_sec * 1000000ULL + st->last_collected_time.tv_usec - update_every_ut;
// align it to update_every
st->last_collected_time.tv_sec -= st->last_collected_time.tv_sec % st->update_every;
- st->last_collected_time.tv_usec = 0;
+ st->last_collected_time.tv_usec = 500000ULL;
unsigned long long ut = st->last_collected_time.tv_sec * 1000000ULL + st->last_collected_time.tv_usec - st->usec_since_last_update;
st->last_updated.tv_sec = (time_t) (ut / 1000000ULL);