Exemplo n.º 1
0
 def get_iterations_data(self, iter_buckets: dict) -> dict:
     """
     Convert a list of bucket entries to `x`s array and `y`s array
     """
     return extract_properties_to_lists(
         ("x", "y"),
         iter_buckets[self.name]["buckets"],
         self._get_iterations_data_single,
     )
Exemplo n.º 2
0
 def get_activity_series(active_only: bool = False) -> ActivityReportSeries:
     ret = worker_bll.stats.get_activity_report(
         company_id=company_id,
         from_date=req_model.from_date,
         to_date=req_model.to_date,
         interval=req_model.interval,
         active_only=active_only,
     )
     if not ret:
         return ActivityReportSeries(dates=[], counts=[])
     count_by_date = extract_properties_to_lists(["date", "count"], ret)
     return ActivityReportSeries(dates=count_by_date["date"],
                                 counts=count_by_date["count"])
Exemplo n.º 3
0
 def _get_variant_metric_stats(
     metric: str,
     agg_names: Sequence[str],
     stats: Sequence[dict],
     variant: Optional[str] = None,
 ) -> MetricStats:
     stat_by_name = extract_properties_to_lists(agg_names, stats)
     return MetricStats(
         metric=metric,
         variant=variant,
         dates=stat_by_name["date"],
         stats=[
             AggregationStats(aggregation=name, values=aggs)
             for name, aggs in stat_by_name.items() if name != "date"
         ],
     )
Exemplo n.º 4
0
def get_queue_metrics(call: APICall, company_id,
                      req_model: GetMetricsRequest) -> GetMetricsResponse:
    ret = queue_bll.metrics.get_queue_metrics(
        company_id=company_id,
        from_date=req_model.from_date,
        to_date=req_model.to_date,
        interval=req_model.interval,
        queue_ids=req_model.queue_ids,
    )

    queue_dicts = {
        queue: extract_properties_to_lists(
            ["date", "avg_waiting_time", "queue_length"], data)
        for queue, data in ret.items()
    }
    return GetMetricsResponse(queues=[
        QueueMetrics(
            queue=queue,
            dates=data["date"],
            avg_waiting_times=data["avg_waiting_time"],
            queue_lengths=data["queue_length"],
        ) if data else QueueMetrics(queue=queue)
        for queue, data in queue_dicts.items()
    ])