vitor-aignosi e35eb300cb SIENTIAPDE-1169
Implement OPC writing metrics and enhance OPC class initialization

- Added metrics for counting predictions written to the OPC server and monitoring their response times.
- Enhanced the OPC class initialization to include the pod ID for better tracking.
- Updated the write method to increment the prediction count and observe response times.
2025-08-18 13:58:43 -03:00
2025-08-18 13:58:43 -03:00
2025-05-27 16:49:31 -03:00
2025-08-05 14:39:02 -03:00
2025-05-13 10:17:39 -03:00
2025-07-17 12:37:54 -03:00
2025-05-13 10:17:39 -03:00
2025-05-23 17:34:47 -03:00
2025-07-17 12:37:54 -03:00
2025-08-14 15:25:04 -03:00
2025-08-04 10:03:15 -03:00
2025-08-18 13:47:50 -03:00

Sientia DataOps Laborious

The Sientia DataOps Laborious is a Temporal-based workflow application that handles batch predictions and data processing for industrial data. It integrates with MLFlow for model management, PostgreSQL for data storage, and OPC for real-time data output. The module is designed to process data in a reliable and scalable manner using Temporal.io's workflow orchestration capabilities. It's get data from Scouter sinks, process it, make predictions using MLFlow models and generates metrics for the predictions.

Key Features

  • Batch predictions using MLFlow models
  • Data transformation and preprocessing
  • Workflow orchestration using Temporal.io
  • Integration with PostgreSQL for data storage
  • OPC integration for real-time data output
  • Comprehensive error handling and notifications
  • Configurable data filters and quality gates
  • Scalable deployment architecture

Workflows

Predictions Batch

The main workflow that orchestrates batch predictions. Steps:

  • prepare_activity: Prepares the activity with schedule and model information
  • load_custom_query: Loads data using a custom query
  • prediction_process: Executes the prediction process using the Prediction Process sub-workflow

Workflow inputs:

  • schedule_name: The schedule name of the activity
  • model_name: The model name of the activity
  • model_id: The model id of the activity
  • query: The custom query to load data
  • schema: The schema of the data
  • table_name: The name of the table to process
  • input_filters: The filters to be applied during prediction
  • mlflow_transform_filters: The filters to be applied during prediction
  • mlflow_predict_filters: The filters to be applied during prediction
  • model_retention: The model retention period in minutes
  • path_priority: The path priority

Prediction Process

Sub-workflow that handles individual prediction processing:

  • get_last_timestamp: Gets the last timestamp of the data
  • input_gate: Filters input data based on configured rules
  • repeat_last_prediction: Repeats the last prediction if the data is empty
  • request_transform: Makes predictions using MLFlow models
  • mlflow_response_gate: Handles prediction or transform responses and filters
  • mlflow_content_gate: Filters transform responses based on configured rules
  • request_predict: Makes predictions using MLFlow models
  • format_and_export_prediction: Formats and exports predictions using the Format and Export Prediction sub-workflow

Format and Export Prediction

Sub-workflow that handles prediction formatting and export:

  • format_prediction: Formats prediction data if path flag is None
  • format_default_prediction: Formats default prediction data if path flag is not None
  • export_to_postgres: Exports formatted predictions to PostgreSQL
  • write_to_opc: Writes predictions to OPC server

Environment variables

  • POSTGRES_HOST

  • POSTGRES_PORT

  • POSTGRES_USER

  • POSTGRES_PASSWORD

  • POSTGRES_DBNAME

  • POSTGRES_MIN_CONNECTIONS

  • POSTGRES_MAX_CONNECTIONS

  • MLFLOW_HOST

  • MLFLOW_PORT

  • MLFLOW_USERNAME

  • MLFLOW_PASSWORD

  • OPC_CONFIG - json string containing the opc configuration for multiple opc servers For single opc server use:

  • OPC_URL

  • OPC_NAME

  • OPC_SERVER_URI

  • OPC_CERT_PATH

  • OPC_PRIVATE_KEY_PATH

  • OPC_SERVER_CERT_PATH

  • OPC_RECONNECTION_INTERVAL

  • TEMPORAL_HOST

  • TEMPORAL_NAMESPACE

Application deployment

The application can be deployed using the following command:

helm upgrade --install sientia-dataops-laborious sientia/sientia-module -n sientia --create-namespace -f ./values.yaml

#PR shortcut

git log origin/main..HEAD --no-merges > git_log

Prompt: Write a summary of PR changes in markdown. Be objective and direct. Write to file

Description
No description provided
Readme 9.6 MiB
Languages
Python 58.4%
Jupyter Notebook 41.5%