SIENTIAPDE-1110

Update sientia-dataops-library version to 1.2.0 in requirements.txt; refactor logging in activities to use a unified Logger instance and include metadata in log messages across various activities.
This commit is contained in:
vitor-aignosi
2025-06-26 15:15:31 -03:00
parent 9355af1709
commit 4a90b77786
15 changed files with 238 additions and 111 deletions

View File

@@ -73,12 +73,16 @@ class Gates(BaseActivity):
dict[str, Any]: The aggregated data.
"""
metadata = input_data['metadata']
try:
# Convert input data to DataFrame
df = DataFrame(input_data['data'])
self.logger.debug(
f"Aggregating time series data: {df.to_string()}")
self.debug(
f"Aggregating time series data: {df.to_string()}",
metadata=metadata
)
# Initialize result dictionary
result = {}
@@ -101,16 +105,26 @@ class Gates(BaseActivity):
if aggr_value == 'continue':
continue
self.logger.debug(
f"Aggregated data: {aggr_value}")
self.logger.debug(
f"Latest timestamp: {latest_timestamp}")
self.logger.debug(
f"Groups: {group.to_string()}")
self.logger.debug(
f"group name: {name}")
self.logger.debug(
f"group tag: {tag}")
self.debug(
f"Aggregated data: {aggr_value}",
metadata=metadata
)
self.debug(
f"Latest timestamp: {latest_timestamp}",
metadata=metadata
)
self.debug(
f"Groups: {group.to_string()}",
metadata=metadata
)
self.debug(
f"group name: {name}",
metadata=metadata
)
self.debug(
f"group tag: {tag}",
metadata=metadata
)
# Store the result
result[f"{tag}_{name}"] = {
@@ -122,7 +136,10 @@ class Gates(BaseActivity):
}
result_df = DataFrame(list(result.values()))
self.logger.debug(f"Aggregated data:\n {result_df.to_string()}")
self.debug(
f"Aggregated data:\n {result_df.to_string()}",
metadata=metadata
)
return result_df.to_dict()
except Exception as e:
@@ -136,7 +153,7 @@ class Gates(BaseActivity):
attachment_content=trace
)
self.logger.error(trace)
self.error(trace, metadata=metadata)
raise e
@activity.defn(name="data_quality_gate")
@@ -160,16 +177,23 @@ class Gates(BaseActivity):
dict[str, Any]: The data validated.
"""
metadata = input_data['metadata']
filters = input_data['filters']
data = DataFrame(input_data['data'])
model_tags = input_data['model_tags']
self.logger.debug(
f"Applying quality gate to data: {data.to_string()}")
self.debug(
f"Applying quality gate to data: {data.to_string()}",
metadata=metadata
)
for filter_name, policy in filters.items():
if filter_name not in quality_gate_filters:
self.logger.warning(f"Filter {filter_name} not found")
self.warning(
f"Filter {filter_name} not found",
metadata=metadata
)
continue
try:
@@ -186,7 +210,7 @@ class Gates(BaseActivity):
attachment_content=trace
)
self.logger.error(trace)
self.error(trace, metadata=metadata)
else:
if filtered_data.empty:
@@ -206,6 +230,9 @@ class Gates(BaseActivity):
if policy == "DISCARD":
data = data[~data.index.isin(filtered_data.index)]
self.logger.debug("Data quality gate applied")
self.debug(
"Data quality gate applied",
metadata=metadata
)
return data.to_dict()