Merge pull request #11 from Aignosi/SIENTIAPDE-1163-alterar-dinamica-de-notificacoes-para-usar-o-mongodb-ao-inves-do-kafka

Sientiapde 1163 alterar dinamica de notificacoes para usar o mongodb ao inves do kafka
This commit is contained in:
Bruno Domingues
2025-07-22 10:14:10 -03:00
committed by GitHub
11 changed files with 32 additions and 19 deletions

2
.gitignore vendored
View File

@@ -37,3 +37,5 @@ __pycache__/
# Ignorar coverage # Ignorar coverage
htmlcov/ htmlcov/
.coverage .coverage
git_log

View File

@@ -92,3 +92,10 @@ The application can be deployed using the following command:
```bash ```bash
helm upgrade --install sientia-dataops-opc-ingestor sientia/sientia-module -n sientia-opc --create-namespace -f ./values.yaml helm upgrade --install sientia-dataops-opc-ingestor sientia/sientia-module -n sientia-opc --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

View File

@@ -5,6 +5,6 @@ asyncua
redis redis
aiokafka aiokafka
pymongo pymongo
git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.2.1 git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.3.3
git+ssh://git@github.com/Aignosi/sientia-mlops-library.git@0.38.1 git+ssh://git@github.com/Aignosi/sientia-mlops-library.git@0.38.1
pydruid[pandas] pydruid[pandas]

View File

@@ -2,7 +2,7 @@ from temporalio import workflow
with workflow.unsafe.imports_passed_through(): with workflow.unsafe.imports_passed_through():
from sientia_do.temporal.activities.postgres import Postgres from sientia_do.temporal.activities.postgres import Postgres
from sientia_do.notifications.handlers import NotificationHandler from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from sientia_do.temporal.utils.logger import Logger from sientia_do.temporal.utils.logger import Logger
from scouter.activities.redis import Redis from scouter.activities.redis import Redis
from scouter.activities.gates import Gates from scouter.activities.gates import Gates

View File

@@ -5,7 +5,7 @@ import json
from kafka import KafkaProducer from kafka import KafkaProducer
from temporalio import activity from temporalio import activity
from sientia_do.notifications.handlers import NotificationHandler from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from sientia_do.temporal.activities.base import BaseActivity from sientia_do.temporal.activities.base import BaseActivity
from sientia_do.temporal.utils.logger import Logger from sientia_do.temporal.utils.logger import Logger

View File

@@ -6,7 +6,7 @@ with workflow.unsafe.imports_passed_through():
from datetime import datetime from datetime import datetime
from pymongo import MongoClient from pymongo import MongoClient
from pandas import DataFrame from pandas import DataFrame
from sientia_do.notifications.handlers import NotificationHandler from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from sientia_do.notifications.models import NotificationLevel from sientia_do.notifications.models import NotificationLevel
from sientia_do.temporal.activities.base import BaseActivity from sientia_do.temporal.activities.base import BaseActivity
from sientia_do.temporal.utils.logger import Logger from sientia_do.temporal.utils.logger import Logger

View File

@@ -3,7 +3,7 @@ from temporalio import workflow, activity
with workflow.unsafe.imports_passed_through(): with workflow.unsafe.imports_passed_through():
from logging import Logger from logging import Logger
from sientia_do.notifications.handlers import NotificationHandler from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from sientia_do.notifications.models import NotificationLevel from sientia_do.notifications.models import NotificationLevel
from sientia_do.temporal.activities.redis_base import Redis as RedisBase from sientia_do.temporal.activities.redis_base import Redis as RedisBase
from sientia_do.temporal.utils.logger import Logger from sientia_do.temporal.utils.logger import Logger

View File

@@ -4,7 +4,7 @@ from temporalio.worker import Worker
with workflow.unsafe.imports_passed_through(): with workflow.unsafe.imports_passed_through():
import sys import sys
import os import os
from sientia_do.notifications.handlers import NotificationHandler from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from sientia_do.temporal.utils.logger import get_logger from sientia_do.temporal.utils.logger import get_logger
from scouter.activities.activities import Activities from scouter.activities.activities import Activities
from scouter.workflow.scouter import Scouter from scouter.workflow.scouter import Scouter
@@ -28,8 +28,10 @@ async def main():
logger.info('Starting Notification Handler...') logger.info('Starting Notification Handler...')
mongo_config = build_mongodb_config()
notification_handler = NotificationHandler( notification_handler = NotificationHandler(
servers=os.getenv('KAFKA_BOOTSTRAP_SERVERS', 'http://localhost:9092'), connection_string=mongo_config['connection_string'],
database=mongo_config['database_name'],
logger=logger, logger=logger,
project_name=os.getenv('PROJECT_NAME', 'scouter') project_name=os.getenv('PROJECT_NAME', 'scouter')
) )

View File

@@ -1,6 +1,6 @@
from unittest.mock import MagicMock, patch, call from unittest.mock import MagicMock, patch, call
import pytest import pytest
from sientia_do.notifications.handlers import NotificationHandler from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from scouter.activities.faker import Faker from scouter.activities.faker import Faker

View File

@@ -3,7 +3,7 @@ from datetime import datetime
import pytest import pytest
import numpy as np import numpy as np
from pandas import DataFrame from pandas import DataFrame
from sientia_do.notifications.handlers import NotificationHandler from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from sientia_do.notifications.models import NotificationLevel from sientia_do.notifications.models import NotificationLevel
from scouter.activities.redis import Redis from scouter.activities.redis import Redis
@@ -397,7 +397,14 @@ async def test_group_and_hold_data_error_set(redis_activity):
'data': DataFrame(columns=['name', 'value', 'timestamp']).to_dict('records') 'data': DataFrame(columns=['name', 'value', 'timestamp']).to_dict('records')
} }
redis_activity.get = MagicMock(return_value=None) existing_data = {
'sensor1': 20.0,
'sensor2': 28.0,
'timestamp': '2023-01-01 11:00:00'
}
# Mock get to return existing data
redis_activity.get = MagicMock(return_value=existing_data)
redis_activity.set = MagicMock(side_effect=Exception('test')) redis_activity.set = MagicMock(side_effect=Exception('test'))
redis_activity.send_notification = MagicMock() redis_activity.send_notification = MagicMock()

View File

@@ -11,7 +11,7 @@ image:
# This sets the pull policy for images. # This sets the pull policy for images.
pullPolicy: Always pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion. # Overrides the image tag whose default is the chart appVersion.
tag: "0.2.3" tag: "0.2.4"
# 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/ # 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: imagePullSecrets:
@@ -111,19 +111,14 @@ tolerations: []
affinity: {} affinity: {}
service: service: {}
enabled: false
type: ClusterIP
port: 4840
targetPort: 4840
env: env:
# Entrypoint variables # Entrypoint variables
- name: GITHUB_REPO_URL - name: GITHUB_REPO_URL
value: "git@github.com:Aignosi/sientia-dataops-scouter_temporal.git" value: "git@github.com:Aignosi/sientia-dataops-scouter_temporal.git"
- name: GITHUB_BRANCH - name: GITHUB_BRANCH
value: "SIENTIAPDE-1148-separar-scouter-laborious-e-orchestrator-por-namespaces" value: "SIENTIAPDE-1163-alterar-dinamica-de-notificacoes-para-usar-o-mongodb-ao-inves-do-kafka"
- name: PYTHON_APP - name: PYTHON_APP
value: "scouter.worker.worker" value: "scouter.worker.worker"