SIENTIAPDE-1273

Implement simple metrics configuration in formatters and orchestrator utilities. Update tests to validate new simple metrics functionality and ensure proper integration with existing workflows.
This commit is contained in:
vitor-aignosi
2025-11-14 15:55:06 -03:00
parent 5cc7667fbc
commit 7b28424a34
5 changed files with 76 additions and 4 deletions

View File

@@ -20,6 +20,7 @@ with workflow.unsafe.imports_passed_through():
predictions_batch,
scouter,
drift,
simple_metrics,
)
topic_separator = '\n ========== \n'
@@ -140,6 +141,13 @@ class Formatters(SientiaMonitoring):
'updated_at', now().strftime(DATETIME_FORMAT_MS_WITH_TZ)
),
}
elif pipeline['workflow_type'] == 'simple_metrics':
schedule_config[self.laborious_namespace][pipeline['schedule_name']] = {
**simple_metrics(pipeline),
'updated_at': pipeline.get(
'updated_at', now().strftime(DATETIME_FORMAT_MS_WITH_TZ)
),
}
self.info('Processed schedules', metadata=metadata)
self.debug(json.dumps(schedule_config, indent=4, sort_keys=True), metadata=metadata)

View File

@@ -36,7 +36,6 @@ def drift(config: dict[str, Any]):
"""
Build drift configuration from pipeline config.
"""
model = config['model']
return {
**common_config(config),
'schema': 'sientia_data',
@@ -51,6 +50,20 @@ def drift(config: dict[str, Any]):
}
def simple_metrics(config: dict[str, Any]):
"""
Build simple metrics configuration from pipeline config.
"""
return {
**common_config(config),
'schema': 'sientia_data',
'predictions_table_name': 'predictions',
'data_table_name': 'laborious_data',
'interval_minutes': config.get('interval_minutes', 60),
'metrics': config.get('metrics', ['rmse', 'mse', 'mae', 'r2']),
}
def minimal_retrain(config: dict[str, Any]):
"""
Build minimal retrain configuration from pipeline config.