def _build_totals_and_series_queries( entity, select, where, groupby, orderby, limit, offset, rollup, intervals_len ): totals_query = Query( dataset=Dataset.Metrics.value, match=Entity(entity), groupby=groupby, select=select, where=where, limit=Limit(limit or MAX_POINTS), offset=Offset(offset or 0), granularity=Granularity(rollup), orderby=orderby, ) series_query = totals_query.set_groupby( (totals_query.groupby or []) + [Column(TS_COL_GROUP)] ) # In a series query, we also need to factor in the len of the intervals array series_limit = MAX_POINTS if limit: series_limit = limit * intervals_len series_query = series_query.set_limit(series_limit) return {"totals": totals_query, "series": series_query}
def _build_queries_for_entity(self, query_definition, entity, fields, where, groupby): totals_query = Query( dataset="metrics", match=Entity(entity), groupby=groupby, select=list( map( Column, {_OP_TO_FIELD[entity][op] for op, _ in fields}, )), where=where, limit=Limit(MAX_POINTS), offset=Offset(0), granularity=Granularity(query_definition.rollup), ) series_query = totals_query.set_groupby((totals_query.groupby or []) + [Column(TS_COL_GROUP)]) return { "totals": totals_query, "series": series_query, }
def _build_queries_for_entity(self, query_definition, entity, fields, where, groupby): totals_query = Query( dataset=Dataset.Metrics.value, match=Entity(entity), groupby=groupby, select=list(self._build_select(entity, fields)), where=where, limit=Limit(query_definition.limit or MAX_POINTS), offset=Offset(0), granularity=Granularity(query_definition.rollup), orderby=self._build_orderby(query_definition, entity), ) if totals_query.orderby is None: series_query = totals_query.set_groupby( (totals_query.groupby or []) + [Column(TS_COL_GROUP)] ) else: series_query = None return { "totals": totals_query, "series": series_query, }