def manage_data(self): """ Prepare data to be sent to influxdb. """ for c in last_packet_time.keys(): lock.acquire() self.make_channel_latency_delay(c, last_packet_time[c]) lock.release() try: self.send_points() except BaseException as e: logger.critical(e) shutdown_event.set() return True
def manage_data(self, trace): """ Build, pack and send waveform to influxdb - prepare trace's samples - send them to influxdb Return True is data have been pushed. """ now = datetime.utcnow() delta = trace.stats['delta'] starttime = trace.stats['starttime'] endtime = trace.stats['endtime'] channel = trace.get_id() # Update : # - timestamp of the last channel's packet received # - last sample time (endtime) lock.acquire() last_packet_time[channel] = { 'timestamp': UTCDateTime(now), 'endtime': endtime } lock.release() # Set all trace samples in the proper format. self.make_line_count(channel, starttime, delta, trace.data) # send data to influxdb if buffer is filled enough if len(self.data) > self.nb_data_max: now = datetime.utcnow() self.make_stats(now) logger.debug("Data sent") try: self.send_points(debug=False) except Exception as e: logger.critical(e) shutdown_event.set() else: return True else: return False
def manage_data(self, trace): """Return True is data have been pushed to influxdb""" delta = trace.stats['delta'] starttime = trace.stats['starttime'] channel = trace.get_id() now = datetime.utcnow() nbsamples = len(trace.data) last_sample_time = starttime + delta * (nbsamples - 1) l = UTCDateTime(now) - last_sample_time lock.acquire() last_packet_time[channel] = last_sample_time lock.release() # do not process 'old' data # if l > self.TIME_MAX: # return self.make_line_count(channel, starttime, delta, trace.data) self.make_line_latency(channel, starttime + delta * (nbsamples - 1), l) # send data to influxdb if buffer is filled enough if len(self.data) > self.nb_data_max: now = datetime.utcnow() self.make_stats(now) logger.debug("Data sent") try: self.send_points(debug=False) except InfluxDBServerError as e: self.force_shutdown(e) else: return True else: return False
def make_line_delay(self): for c in last_packet_time.keys(): lock.acquire() self.make_line_channel_delay(c, last_packet_time[c]) lock.release()