|
2 | 2 | Merges metrics from files and produces reports by pod and by namespace |
3 | 3 | """ |
4 | 4 |
|
| 5 | +import sys |
5 | 6 | import logging |
6 | 7 | import argparse |
7 | 8 | from datetime import datetime, UTC |
|
12 | 13 |
|
13 | 14 | from openshift_metrics import utils, invoice |
14 | 15 | from openshift_metrics.metrics_processor import MetricsProcessor |
15 | | -from openshift_metrics.config import S3_INVOICE_BUCKET |
| 16 | +from openshift_metrics.config import S3_INVOICE_BUCKET, PROM_QUERY_INTERVAL_MINUTES |
16 | 17 |
|
17 | 18 | logging.basicConfig(level=logging.INFO) |
18 | 19 | logger = logging.getLogger(__name__) |
@@ -106,7 +107,31 @@ def main(): |
106 | 107 | report_start_date = None |
107 | 108 | report_end_date = None |
108 | 109 | cluster_name = None |
109 | | - processor = MetricsProcessor() |
| 110 | + interval_minutes = None |
| 111 | + |
| 112 | + for file in files: |
| 113 | + with open(file, "r") as jsonfile: |
| 114 | + metrics_from_file = json.load(jsonfile) |
| 115 | + if interval_minutes is None: |
| 116 | + interval_minutes = metrics_from_file.get("interval_minutes") |
| 117 | + else: |
| 118 | + interval_minutes_from_file = metrics_from_file["interval_minutes"] |
| 119 | + if interval_minutes != interval_minutes_from_file: |
| 120 | + sys.exit( |
| 121 | + f"Cannot process files with different intervals {interval_minutes} != {interval_minutes_from_file}" |
| 122 | + ) |
| 123 | + |
| 124 | + if interval_minutes is None: |
| 125 | + logger.info( |
| 126 | + f"No prometheus query interval minutes found in the given set of files. Using the provided interval: {PROM_QUERY_INTERVAL_MINUTES} minute(s)" |
| 127 | + ) |
| 128 | + interval_minutes = PROM_QUERY_INTERVAL_MINUTES |
| 129 | + else: |
| 130 | + logger.info( |
| 131 | + f"Prometheus Query interval set to {interval_minutes} minute(s) from file" |
| 132 | + ) |
| 133 | + |
| 134 | + processor = MetricsProcessor(interval_minutes) |
110 | 135 |
|
111 | 136 | for file in files: |
112 | 137 | with open(file, "r") as jsonfile: |
|
0 commit comments