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,
     )
Ejemplo n.º 2
0
 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,
     )
Ejemplo n.º 3
0
 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,
     )
Ejemplo n.º 5
0
 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",
     )
Ejemplo n.º 6
0
    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