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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user