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
Example #3
0
    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
Example #4
0
    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