diff options
author | Birte Kristina Friesel <birte.friesel@uos.de> | 2025-03-20 12:10:37 +0100 |
---|---|---|
committer | Birte Kristina Friesel <birte.friesel@uos.de> | 2025-03-20 12:10:37 +0100 |
commit | 5872348e31cc4698c2bb976662df5efac4467cae (patch) | |
tree | 6d536af45459137f5f91ef78e865914d0273eb16 /bin | |
parent | 34dd16436e1a186a43f11eafd36c641458fed531 (diff) |
workload: warn when a prediction had to fall back to the static model
Such behaviour is likely unintended in this use case
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/workload.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/bin/workload.py b/bin/workload.py index efd191b..ee2df0d 100755 --- a/bin/workload.py +++ b/bin/workload.py @@ -2,6 +2,7 @@ import argparse import json +import logging import sys import dfatool.cli import dfatool.utils @@ -19,6 +20,13 @@ def main(): default=0, type=float, ) + parser.add_argument( + "--log-level", + metavar="LEVEL", + choices=["debug", "info", "warning", "error"], + default="warning", + help="Set log level", + ) parser.add_argument("--normalize-output", type=str) parser.add_argument( "--info", @@ -34,6 +42,17 @@ def main(): parser.add_argument("event", nargs="+", type=str) args = parser.parse_args() + if args.log_level: + numeric_level = getattr(logging, args.log_level.upper(), None) + if not isinstance(numeric_level, int): + print(f"Invalid log level: {args.log_level}", file=sys.stderr) + sys.exit(1) + logging.basicConfig( + level=numeric_level, + format="{asctime} {levelname}:{name}:{message}", + style="{", + ) + models = list() for model_file in args.models: with open(model_file, "r") as f: @@ -77,11 +96,18 @@ def main(): else: param = dfatool.utils.parse_conf_str(param) + param_list = dfatool.utils.param_dict_to_list(param, ref_model.parameters) + + if not param_info(name, action).is_predictable(param_list): + logging.warning( + f"Cannot predict {name}.{action}({param}), falling back to static model" + ) + event_output = event_normalizer( param_model( name, action, - param=dfatool.utils.param_dict_to_list(param, ref_model.parameters), + param=param_list, ) ) |