SIENTIAPDE-1174

SIENTIAPDE-1174 Update dependencies, modify image tag, and enhance metrics tracking in various activities for improved observability and performance.
This commit is contained in:
vitor-aignosi
2025-07-31 12:52:07 -03:00
parent 37d196be14
commit 2efad30304
9 changed files with 88 additions and 8 deletions

View File

@@ -3,6 +3,8 @@ from temporalio import workflow, activity
with workflow.unsafe.imports_passed_through():
from sientia_do.notifications.models import NotificationLevel
from sientia_do.temporal.activities.base import BaseActivity
from sientia_do.notifications.handlers import NotificationHandler
from sientia_do.temporal.utils.logger import Logger
from scouter.utils.quality.filters import null_values_filter, out_of_bounds_filter
from typing import Any
import traceback
@@ -16,6 +18,10 @@ quality_gate_filters = {
class Gates(BaseActivity):
def __init__(self, logger: Logger, notification_handler: NotificationHandler):
BaseActivity.__init__(
self, logger, notification_handler, set_error_counter=True)
def apply_aggregation(self, group: DataFrame, aggr_function: str,
metadata: dict[str, Any]) -> float | None | str:
"""

View File

@@ -57,7 +57,8 @@ class MongoDB(BaseActivity):
BaseActivity.__init__(self,
logger=logger,
notification_handler=notification_handler)
notification_handler=notification_handler,
set_error_counter=True)
def shutdown(self):
"""

View File

@@ -1,8 +1,8 @@
import traceback
from temporalio import workflow, activity
with workflow.unsafe.imports_passed_through():
from logging import Logger
import traceback
from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from sientia_do.notifications.models import NotificationLevel
from sientia_do.temporal.activities.redis_base import Redis as RedisBase
@@ -10,6 +10,7 @@ with workflow.unsafe.imports_passed_through():
from typing import Any
from pandas import DataFrame
from datetime import datetime
from scouter import metrics
class Redis(RedisBase):
@@ -136,16 +137,29 @@ class Redis(RedisBase):
return data_hold
try:
to_register_metrics = []
for _, row in data.iterrows():
value = row['value']
data_hold[row['name']] = value
to_register_metrics.append(
(row['name'], value))
data_hold['timestamp'] = data['timestamp'].max() if not data.empty else \
datetime.now().strftime("%Y-%m-%d %H:%M:%S")
self.set(key, data_hold, ttl=retention_time)
# Register metrics
for metric in to_register_metrics:
metrics.TAG_CHANGES_MONITOR.labels(
pod_id=metadata['pod_id'],
model_name=input_data['model_name'],
pipeline_name=input_data['schedule_name'],
tag_name=metric[0]
).set(metric[1])
data_hold_df = DataFrame(data_hold, index=[0])
data_hold_melted = data_hold_df.melt(
id_vars='timestamp', var_name='variable', value_name='value')