Metrics::COLUMN_TOTAL_OVERALL_BANDWIDTH, Archiver::BANDWIDTH_PAGEVIEW_RECORD => Metrics::COLUMN_TOTAL_PAGEVIEW_BANDWIDTH, Archiver::BANDWIDTH_DOWNLOAD_RECORD => Metrics::COLUMN_TOTAL_DOWNLOAD_BANDWIDTH, ]; } /** * @return \Piwik\Plugins\Bandwidth\Columns\Metrics\Base[] */ public static function getBandwidthMetrics() { return [ new HitsWithBandwidth(), new MaxBandwidth(), new MinBandwidth(), new SumBandwidth(), new AvgBandwidth(), ]; } /** * @return \Piwik\Plugin\Metric[] */ public static function getOverallMetrics() { return [ new DownloadBandwidth(), new PageviewBandwidth(), new OverallBandwidth(), ]; } public static function getMetricTranslations() { $translations = []; foreach (self::getBandwidthMetrics() as $metric) { $translations[$metric->getName()] = $metric->getTranslatedName(); } $translations[Metrics::COLUMN_TOTAL_OVERALL_BANDWIDTH] = Piwik::translate('Bandwidth_ColumnTotalOverallBandwidth'); $translations[Metrics::COLUMN_TOTAL_PAGEVIEW_BANDWIDTH] = Piwik::translate('Bandwidth_ColumnTotalPageviewBandwidth'); $translations[Metrics::COLUMN_TOTAL_DOWNLOAD_BANDWIDTH] = Piwik::translate('Bandwidth_ColumnTotalDownloadBandwidth'); return $translations; } public static function getMetricSemanticTypes(): array { $semanticTypes = []; foreach (self::getBandwidthMetrics() as $metric) { $semanticTypes[$metric->getName()] = $metric->getSemanticType(); } $semanticTypes[Metrics::COLUMN_TOTAL_OVERALL_BANDWIDTH] = Dimension::TYPE_NUMBER; $semanticTypes[Metrics::COLUMN_TOTAL_PAGEVIEW_BANDWIDTH] = Dimension::TYPE_NUMBER; $semanticTypes[Metrics::COLUMN_TOTAL_DOWNLOAD_BANDWIDTH] = Dimension::TYPE_NUMBER; return $semanticTypes; } public static function getActionMetrics() { $column = new BandwidthColumn(); $column = $column->getColumnName(); $metricsConfig = []; $metricsConfig[self::METRICS_PAGE_SUM_BANDWIDTH] = [ 'aggregation' => 'sum', 'query' => "sum( case when $column is null then 0 else $column end )", ]; $metricsConfig[self::METRICS_NB_HITS_WITH_BANDWIDTH] = [ 'aggregation' => 'sum', 'query' => "sum( case when $column is null then 0 else 1 end )", ]; $metricsConfig[self::METRICS_PAGE_MIN_BANDWIDTH] = [ 'aggregation' => 'min', 'query' => "min($column)", ]; $metricsConfig[self::METRICS_PAGE_MAX_BANDWIDTH] = [ 'aggregation' => 'max', 'query' => "max($column)", ]; return $metricsConfig; } }