def get_event_stats( query_columns: Sequence[str], query: str, params: Dict[str, str], rollup: int, zerofill_results: bool, comparison_delta: Optional[datetime], ) -> SnubaTSResult: if top_events > 0: return discover.top_events_timeseries( timeseries_columns=query_columns, selected_columns=self.get_field_list( organization, request), equations=self.get_equation_list(organization, request), user_query=query, params=params, orderby=self.get_orderby(request), rollup=rollup, limit=top_events, organization=organization, referrer=referrer + ".find-topn", allow_empty=False, zerofill_results=zerofill_results, include_other=self.has_top_events(organization, request), ) return discover.timeseries_query( selected_columns=query_columns, query=query, params=params, rollup=rollup, referrer=referrer, zerofill_results=zerofill_results, comparison_delta=comparison_delta, )
def get_event_stats(query_columns, query, params, rollup, zerofill_results): if top_events > 0: return discover.top_events_timeseries( timeseries_columns=query_columns, selected_columns=self.get_field_list( organization, request), equations=self.get_equation_list(organization, request), user_query=query, params=params, orderby=self.get_orderby(request), rollup=rollup, limit=top_events, organization=organization, referrer="api.organization-event-stats.find-topn", allow_empty=False, zerofill_results=zerofill_results, include_other=self.has_top_events(organization, request), ) return discover.timeseries_query( selected_columns=query_columns, query=query, params=params, rollup=rollup, referrer="api.organization-event-stats", zerofill_results=zerofill_results, )
def get_event_stats(query_columns, query, params, rollup): return discover.top_events_timeseries( query_columns, selected_columns, query, params, orderby, rollup, min(5, len(events_results["data"])), organization, top_events=events_results, referrer="api.trends.get-event-stats", )
def get_event_stats( query_columns, query, params, rollup, zerofill_results, comparison_delta=None ): return discover.top_events_timeseries( query_columns, selected_columns, query, params, orderby, rollup, min(5, len(events_results["data"])), organization, top_events=events_results, referrer="api.trends.get-event-stats", zerofill_results=zerofill_results, use_snql=use_snql, )
def get_event_stats(query_columns, query, params, rollup): if top_events: return discover.top_events_timeseries( timeseries_columns=query_columns, selected_columns=request.GET.getlist("field")[:], user_query=query, params=params, orderby=self.get_orderby(request), rollup=rollup, limit=limit, organization=organization, referrer="api.organization-event-stats.find-topn", ) return discover.timeseries_query( selected_columns=query_columns, query=query, params=params, rollup=rollup, referrer="api.organization-event-stats", )
def get_stats(self, project_ids, query): # we need to compute stats at 1d (1h resolution), and 14d segments, interval = STATS_PERIOD_CHOICES[self.stats_period] now = timezone.now() params = { "project_id": project_ids, "start": now - ((segments - 1) * interval), "end": now, } if self.environment_id: query = f"{query} environment:{self.environment_id}" # Generate a query result to skip the top_events.find query top_events = {"data": [{"project_id": p} for p in project_ids]} stats = discover.top_events_timeseries( timeseries_columns=["count()"], selected_columns=["project_id"], user_query=query, params=params, orderby="project_id", rollup=int(interval.total_seconds()), limit=10000, organization=None, referrer="api.serializer.projects.get_stats", top_events=top_events, ) results = {} for project_id in project_ids: serialized = [] str_id = str(project_id) if str_id in stats: for item in stats[str_id].data["data"]: serialized.append((item["time"], item.get("count", 0))) results[project_id] = serialized return results