def get_measurement_range_bucket(self, measurement_name, start, end, group_by, site=None, database=None): """ Returns the measurement points for a given range grouped by a given time @param measurement_name - name of the measurement @param start - The date to start from (type python datetime) @param end - The time to stop at ( type python datetime) @param group_by - The resolution of the data @param site - instance of Sesh_Site @param database - The influx database to use (default settings.influx_db) """ db = self.db if database: db = database query_string = 'SELECT mean("value") FROM {measurement_name} WHERE time > {start} AND time <= {end} GROUP BY time({time})' # This assumes the precision of influx db is set to nanoseconds data = {'measurement_name': measurement_name, 'start': epoch_s_to_ns(get_epoch_from_datetime(start)), 'end': epoch_s_to_ns(get_epoch_from_datetime(end)), 'time': group_by} query = query_string.format(**data) if site: query += " and site_name='%s'" % site.site_name results = list(self._influx_client.query(query, database=db).get_points()) return results
def get_measurement_range(self, measurement_name, start, end, site=None, database=None): """ Returns the measurement points for a given range @param measurement_name - name of the measurement @param start - The date to start from (type python datetime) @param end - The time to stop at (type python datetime) @param site - An instance of a Sesh_Site Model @param database - Influx db to use (default settings.influx_db ) """ db = self.db if database: db = database query_string = 'SELECT * FROM {measurement_name} WHERE time > {start} and time <= {end}' # This assumes the precision of influx db is set to nanoseconds data = {'measurement_name': measurement_name, 'start': epoch_s_to_ns(get_epoch_from_datetime(start)), 'end': epoch_s_to_ns(get_epoch_from_datetime(end))} query = query_string.format(**data) if site: query += " and site_name='%s'" % site.site_name results = list(self._influx_client.query(query, database=db).get_points()) return results
def get_measurement_range_bucket(self, measurement_name, start, end, group_by, site=None, database=None): """ Returns the measurement points for a given range grouped by a given time @param measurement_name - name of the measurement @param start - The date to start from (type python datetime) @param end - The time to stop at ( type python datetime) @param group_by - The resolution of the data @param site - instance of Sesh_Site @param database - The influx database to use (default settings.influx_db) """ db = self.db if database: db = database query_string = 'SELECT mean("value") FROM {measurement_name} WHERE time > {start} AND time <= {end} GROUP BY time({time})' # This assumes the precision of influx db is set to nanoseconds data = { 'measurement_name': measurement_name, 'start': epoch_s_to_ns(get_epoch_from_datetime(start)), 'end': epoch_s_to_ns(get_epoch_from_datetime(end)), 'time': group_by } query = query_string.format(**data) if site: query += " and site_name='%s'" % site.site_name results = list( self._influx_client.query(query, database=db).get_points()) return results
def get_measurement_range(self, measurement_name, start, end, site=None, database=None): """ Returns the measurement points for a given range @param measurement_name - name of the measurement @param start - The date to start from (type python datetime) @param end - The time to stop at (type python datetime) @param site - An instance of a Sesh_Site Model @param database - Influx db to use (default settings.influx_db ) """ db = self.db if database: db = database query_string = 'SELECT * FROM {measurement_name} WHERE time > {start} and time <= {end}' # This assumes the precision of influx db is set to nanoseconds data = { 'measurement_name': measurement_name, 'start': epoch_s_to_ns(get_epoch_from_datetime(start)), 'end': epoch_s_to_ns(get_epoch_from_datetime(end)) } query = query_string.format(**data) if site: query += " and site_name='%s'" % site.site_name results = list( self._influx_client.query(query, database=db).get_points()) return results