Merge pull request #16 from Aignosi/SIENTIAPDE-1193-conferir-como-a-escrita-de-datetime-ocorre-no-temporal

SIENTIAPDE-1193: Enhance Configuration, Update Dependencies, and Improve Timezone Handling
This commit is contained in:
Bruno Domingues
2025-08-26 13:39:53 +00:00
committed by GitHub
6 changed files with 15 additions and 10 deletions

1
coverage.sh Executable file
View File

@@ -0,0 +1 @@
pytest --cov=ingestor --cov-report=html && xdg-open htmlcov/index.html

View File

@@ -1,11 +1,11 @@
import json import json
from time import sleep from time import sleep
from datetime import datetime, timezone
from pymongo import MongoClient from pymongo import MongoClient
from kafka import KafkaProducer from kafka import KafkaProducer
from kafka.errors import NoBrokersAvailable from kafka.errors import NoBrokersAvailable
from sientia_do.notifications.handlers import CoreNotificationHandler as 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.constants import now
from sientia_do.temporal.activities.base import BaseActivity from sientia_do.temporal.activities.base import BaseActivity
from sientia_do.observability.logger import Logger from sientia_do.observability.logger import Logger
import traceback import traceback
@@ -184,7 +184,7 @@ class DataManager(BaseActivity):
collection.insert_one( collection.insert_one(
{ {
**data, **data,
"inserted_at": datetime.now(timezone.utc), "inserted_at": now(),
} }
) )
self.logger.debug( self.logger.debug(

View File

@@ -6,6 +6,7 @@ from sientia_do.notifications.models import NotificationLevel
from sientia_do.notifications.handlers import CoreNotificationHandler as 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.observability.logger import Logger from sientia_do.observability.logger import Logger
from sientia_do.temporal.constants import OPC_TIMEZONE, DATETIME_FORMAT_WITH_TZ
from ingestor.managers.data_manager import DataManager from ingestor.managers.data_manager import DataManager
import ingestor.metrics as metrics import ingestor.metrics as metrics
@@ -261,7 +262,8 @@ class OpcManager(BaseActivity):
monitored_item = data.monitored_item monitored_item = data.monitored_item
value = monitored_item.Value.Value.Value value = monitored_item.Value.Value.Value
# source_timestamp # source_timestamp
source_timestamp = monitored_item.Value.SourceTimestamp source_timestamp = monitored_item.Value.SourceTimestamp.replace(
tzinfo=OPC_TIMEZONE)
tag = str(node) tag = str(node)
self.logger.debug( self.logger.debug(
@@ -276,7 +278,7 @@ class OpcManager(BaseActivity):
data = { data = {
'tag': tag, 'tag': tag,
'name': self.nodes[str(node)]['tag_name'], 'name': self.nodes[str(node)]['tag_name'],
'timestamp': source_timestamp.strftime('%Y-%m-%d %H:%M:%S'), 'timestamp': source_timestamp.strftime(DATETIME_FORMAT_WITH_TZ),
'value': value 'value': value
} }

View File

@@ -1,5 +1,5 @@
asyncua==1.1.5 asyncua==1.1.5
redis redis
git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.4.1 git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.4.3
prometheus_client prometheus_client
pymongo pymongo

View File

@@ -394,7 +394,7 @@ def test_datachange_notification(metrics, opc_manager_subscribed):
{ {
"tag": "ns=3;i=1001", "tag": "ns=3;i=1001",
"name": "Counter", "name": "Counter",
"timestamp": "2021-01-01 00:00:00", "timestamp": "2021-01-01 00:00:00-0300",
"value": 42, "value": 42,
}, },
) )
@@ -403,7 +403,7 @@ def test_datachange_notification(metrics, opc_manager_subscribed):
{ {
"tag": "ns=3;i=1001", "tag": "ns=3;i=1001",
"name": "Counter", "name": "Counter",
"timestamp": "2021-01-01 00:00:00", "timestamp": "2021-01-01 00:00:00-0300",
"value": 42, "value": 42,
}, },
) )

View File

@@ -3,7 +3,7 @@
# Declare variables to be passed into your templates. # Declare variables to be passed into your templates.
# This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/ # This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
replicaCount: 3 replicaCount: 2
# This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/ # This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/
image: image:
@@ -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.4.2" tag: "0.4.3"
# 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:
@@ -139,7 +139,7 @@ env:
- name: GITHUB_REPO_URL - name: GITHUB_REPO_URL
value: "git@github.com:Aignosi/sientia-dataops-opc-ingestor.git" value: "git@github.com:Aignosi/sientia-dataops-opc-ingestor.git"
- name: GITHUB_BRANCH - name: GITHUB_BRANCH
value: "SIENTIAPDE-1199-revisar-e-testar-observabilidade" value: "SIENTIAPDE-1193-conferir-como-a-escrita-de-datetime-ocorre-no-temporal"
- name: PYTHON_APP - name: PYTHON_APP
value: "ingestor.app" value: "ingestor.app"
@@ -173,6 +173,8 @@ env:
value: "DEBUG" value: "DEBUG"
- name: HTTP_METRICS_PORT - name: HTTP_METRICS_PORT
value: "9090" value: "9090"
- name: OPC_TIMEZONE
value: "UTC"
- name: MONGODB_USERNAME - name: MONGODB_USERNAME