From 3a06f0ca39e6d6405a58051148b4a4d1e6441327 Mon Sep 17 00:00:00 2001 From: vitor-aignosi Date: Tue, 19 Aug 2025 10:42:27 -0300 Subject: [PATCH] SIENTIAPDE-1199 Update dependencies and refactor logging imports for observability - Updated the sientia-dataops-library dependency version to 1.4.0 in requirements.txt. - Changed image tag in values.yaml from 0.3.2 to 0.4.1. - Refactored logging imports across multiple files to use the new observability module instead of the temporal.utils.logger. - Updated retry policy imports in workflow files to reflect the new module structure. --- laborious/activities/activities.py | 2 +- laborious/activities/gates.py | 2 +- laborious/activities/mlflow.py | 2 +- laborious/activities/opc.py | 2 +- laborious/utils/repository/opc_repository.py | 10 ++++++++-- laborious/worker/worker.py | 2 +- laborious/workflows/minimal_retrain.py | 2 +- laborious/workflows/predictions_batch.py | 2 +- .../sub_workflows/format_and_export_prediction.py | 2 +- .../workflows/sub_workflows/prediction_process.py | 2 +- requirements.txt | 2 +- values.yaml | 4 ++-- 12 files changed, 20 insertions(+), 14 deletions(-) diff --git a/laborious/activities/activities.py b/laborious/activities/activities.py index 3e47efe..3970a28 100644 --- a/laborious/activities/activities.py +++ b/laborious/activities/activities.py @@ -3,7 +3,7 @@ from temporalio import activity, workflow with workflow.unsafe.imports_passed_through(): from sientia_do.temporal.activities.postgres import Postgres from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler - from sientia_do.temporal.utils.logger import Logger + from sientia_do.observability.logger import Logger from laborious.activities.mlflow import MLFlow from laborious.activities.gates import Gates from laborious.activities.opc import OPC diff --git a/laborious/activities/gates.py b/laborious/activities/gates.py index dbc1396..b4a85eb 100644 --- a/laborious/activities/gates.py +++ b/laborious/activities/gates.py @@ -6,7 +6,7 @@ with workflow.unsafe.imports_passed_through(): from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler from sientia_do.notifications.models import NotificationLevel from sientia_do.temporal.activities.base import BaseActivity - from sientia_do.temporal.utils.logger import Logger + from sientia_do.observability.logger import Logger from laborious.utils.filters.mlflow_filters import nan_values_filter, api_error_filter from typing import Any from laborious.utils.filters.conditional_filters import ( diff --git a/laborious/activities/mlflow.py b/laborious/activities/mlflow.py index 0d94d13..0f89939 100644 --- a/laborious/activities/mlflow.py +++ b/laborious/activities/mlflow.py @@ -5,7 +5,7 @@ with workflow.unsafe.imports_passed_through(): from sientia_do.temporal.activities.base import BaseActivity from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler from sientia_do.notifications.models import NotificationLevel - from sientia_do.temporal.utils.logger import Logger + from sientia_do.observability.logger import Logger from laborious.utils.repository.model_repository import MLFlowRepository from typing import Any import numpy as np diff --git a/laborious/activities/opc.py b/laborious/activities/opc.py index f3730a4..c01af45 100644 --- a/laborious/activities/opc.py +++ b/laborious/activities/opc.py @@ -5,7 +5,7 @@ with workflow.unsafe.imports_passed_through(): from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler from sientia_do.notifications.models import NotificationLevel from sientia_do.temporal.activities.base import BaseActivity - from sientia_do.temporal.utils.logger import Logger + from sientia_do.observability.logger import Logger from laborious.utils.repository.opc_repository import OpcRepository from typing import Any import traceback diff --git a/laborious/utils/repository/opc_repository.py b/laborious/utils/repository/opc_repository.py index 730ec15..f2e8b75 100644 --- a/laborious/utils/repository/opc_repository.py +++ b/laborious/utils/repository/opc_repository.py @@ -9,7 +9,7 @@ from asyncua.ua import DataValue, Variant, VariantType, DateTime from regex import F from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler from sientia_do.notifications.models import NotificationLevel -from sientia_do.temporal.utils.logger import Logger +from sientia_do.observability.logger import Logger from laborious import metrics data_type_map = { @@ -189,6 +189,7 @@ class OpcRepository(): self.logger.error( f"OPC server {self.id} is not connected") + if self.last_reconnection_time is None or (datetime.now() - self.last_reconnection_time).total_seconds( ) > self.reconnection_interval: self.disconnect() @@ -196,7 +197,12 @@ class OpcRepository(): f"Trying to reconnect to OPC server {self.id}...") return self.connect() - return False, {} + return False, { + "notification_id": f"OPC_CONNECTION_AWAITING_RECONNECTION_WINDOW_{self.id}", + "message": f"OPC server {self.id} is not connected, waiting for next reconnection window...", + "block": "opc_repository", + "level": NotificationLevel.WARNING + } return True, {} diff --git a/laborious/worker/worker.py b/laborious/worker/worker.py index 47463f5..0621aa4 100644 --- a/laborious/worker/worker.py +++ b/laborious/worker/worker.py @@ -19,7 +19,7 @@ with workflow.unsafe.imports_passed_through(): build_mongodb_config ) from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler - from sientia_do.temporal.utils.logger import get_logger + from sientia_do.observability.logger import get_logger from laborious import metrics from prometheus_client import start_http_server diff --git a/laborious/workflows/minimal_retrain.py b/laborious/workflows/minimal_retrain.py index 3d6f8d6..b3da70a 100644 --- a/laborious/workflows/minimal_retrain.py +++ b/laborious/workflows/minimal_retrain.py @@ -3,7 +3,7 @@ from temporalio import workflow with workflow.unsafe.imports_passed_through(): from laborious.activities.activities import Activities from typing import Any - from sientia_do.temporal.utils.policies import retry_policy + from sientia_do.temporal.policies import retry_policy from datetime import timedelta diff --git a/laborious/workflows/predictions_batch.py b/laborious/workflows/predictions_batch.py index 9d3bcd6..a4b14f0 100644 --- a/laborious/workflows/predictions_batch.py +++ b/laborious/workflows/predictions_batch.py @@ -3,7 +3,7 @@ from temporalio import workflow with workflow.unsafe.imports_passed_through(): from laborious.activities.activities import Activities from typing import Any - from sientia_do.temporal.utils.policies import retry_policy + from sientia_do.temporal.policies import retry_policy from datetime import timedelta diff --git a/laborious/workflows/sub_workflows/format_and_export_prediction.py b/laborious/workflows/sub_workflows/format_and_export_prediction.py index 8ed79fb..a5c3afd 100644 --- a/laborious/workflows/sub_workflows/format_and_export_prediction.py +++ b/laborious/workflows/sub_workflows/format_and_export_prediction.py @@ -4,7 +4,7 @@ with workflow.unsafe.imports_passed_through(): from laborious.activities.activities import Activities from typing import Any from datetime import timedelta - from sientia_do.temporal.utils.policies import retry_policy + from sientia_do.temporal.policies import retry_policy @workflow.defn(name="format_and_export_prediction") diff --git a/laborious/workflows/sub_workflows/prediction_process.py b/laborious/workflows/sub_workflows/prediction_process.py index e20f7ab..da684fc 100644 --- a/laborious/workflows/sub_workflows/prediction_process.py +++ b/laborious/workflows/sub_workflows/prediction_process.py @@ -3,7 +3,7 @@ from temporalio import workflow with workflow.unsafe.imports_passed_through(): from laborious.activities.activities import Activities from typing import Any - from sientia_do.temporal.utils.policies import retry_policy + from sientia_do.temporal.policies import retry_policy from datetime import timedelta diff --git a/requirements.txt b/requirements.txt index 8bccc94..4a38e93 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,6 @@ psycopg2-binary sqlalchemy asyncua redis -git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.3.8 +git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.4.0 git+ssh://git@github.com/Aignosi/sientia-mlops-library.git@0.38.5 prometheus-client diff --git a/values.yaml b/values.yaml index 8fe6b27..937dfa3 100644 --- a/values.yaml +++ b/values.yaml @@ -11,7 +11,7 @@ image: # This sets the pull policy for images. pullPolicy: Always # Overrides the image tag whose default is the chart appVersion. - tag: "0.3.2" + tag: "0.4.1" # This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ imagePullSecrets: @@ -151,7 +151,7 @@ env: - name: GITHUB_REPO_URL value: "git@github.com:Aignosi/sientia-dataops-laborious_temporal.git" - name: GITHUB_BRANCH - value: "SIENTIAPDE-1169-pensar-e-projetar-testes-de-breakdown-e-performance" + value: "SIENTIAPDE-1199-revisar-e-testar-observabilidade" - name: PYTHON_APP value: "laborious.worker.worker"