Merge pull request #15 from Aignosi/SIENTIAPDE-1199-revisar-e-testar-observabilidade
Sientiapde 1199 revisar e testar observabilidade
This commit is contained in:
@@ -3,7 +3,7 @@ from copy import deepcopy
|
||||
from typing import Dict, Any
|
||||
|
||||
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 ingestor.managers.ingestor_manager import IngestorManager
|
||||
|
||||
@@ -66,14 +66,14 @@ class Ingestor:
|
||||
connection_string=self.mongo_connection_string,
|
||||
database=self.mongo_database,
|
||||
logger=self.logger,
|
||||
project_name="OPC_INGESTOR"
|
||||
project_name="opc_ingestor"
|
||||
)
|
||||
|
||||
self.metadata = {
|
||||
'model_id': '-',
|
||||
'model_name': '-',
|
||||
'workflow_name': 'OPC_INGESTOR',
|
||||
'schema_name': 'OPC_INGESTOR',
|
||||
'workflow_name': 'opc_ingestor',
|
||||
'schema_name': 'opc_ingestor',
|
||||
'pod_id': self.pod_id,
|
||||
}
|
||||
self.ingestor_manager = None
|
||||
@@ -248,18 +248,18 @@ class Ingestor:
|
||||
|
||||
for slot, config in new_managed_tags.items():
|
||||
if slot not in old_managed_tags:
|
||||
self.logger.debug(f"Subscribing to new slot {slot}")
|
||||
self.logger.info(f"Subscribing to new slot {slot}")
|
||||
self.ingestor_manager.subscribe_to_tags({slot: config})
|
||||
continue
|
||||
|
||||
if config != old_managed_tags[slot]:
|
||||
self.logger.debug(f"Resubscribing to slot {slot}")
|
||||
self.logger.info(f"Resubscribing to slot {slot}")
|
||||
self.ingestor_manager.unsubscribe_slot(slot)
|
||||
self.ingestor_manager.subscribe_to_tags({slot: config})
|
||||
|
||||
for slot in old_managed_tags.keys():
|
||||
if slot not in new_managed_tags:
|
||||
self.logger.debug(f"Unsubscribing from slot {slot}")
|
||||
self.logger.info(f"Unsubscribing from slot {slot}")
|
||||
self.ingestor_manager.unsubscribe_slot(slot)
|
||||
|
||||
# Ensure the gauge is updated after any potential changes here
|
||||
@@ -302,14 +302,14 @@ class Ingestor:
|
||||
metrics.ACTIVE_INGESTORS.set(number_of_ingestors)
|
||||
|
||||
# Handle no slots
|
||||
self.logger.debug("Managing no slots...")
|
||||
self.logger.info("Managing no slots...")
|
||||
self.manage_no_slots(number_of_slots)
|
||||
|
||||
available_slots = number_of_slots - number_of_leases
|
||||
lacking_ingestors = number_of_slots - number_of_ingestors
|
||||
slot_diff = len(self.ingestor_manager.managed_tags) - 1
|
||||
|
||||
self.logger.debug("Managing leases...")
|
||||
self.logger.info("Managing leases...")
|
||||
self.manage_leases(available_slots, lacking_ingestors, slot_diff)
|
||||
|
||||
# Update managed slots gauge
|
||||
@@ -329,12 +329,12 @@ class Ingestor:
|
||||
self.logger.info("No slots acquired in this loop")
|
||||
|
||||
# Update opc servers
|
||||
self.logger.debug("Updating slot config...")
|
||||
self.logger.info("Updating slot config...")
|
||||
self.ingestor_manager.update_slot_config()
|
||||
|
||||
# Check OPC cycles
|
||||
self.logger.debug("Checking OPC servers integrity...")
|
||||
self.logger.info("Checking OPC servers integrity...")
|
||||
self.ingestor_manager.check_opc_servers_integrity()
|
||||
|
||||
self.logger.debug("Updating managed tags...")
|
||||
self.logger.info("Updating managed tags...")
|
||||
self.update_ingestor_manager(current_managed_tags)
|
||||
|
||||
@@ -7,7 +7,7 @@ from kafka.errors import NoBrokersAvailable
|
||||
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
|
||||
import traceback
|
||||
import ingestor.metrics as metrics
|
||||
import os
|
||||
|
||||
@@ -4,7 +4,7 @@ from copy import deepcopy
|
||||
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 ingestor.managers.data_manager import DataManager
|
||||
from ingestor.managers.opc_manager import OpcManager
|
||||
from ingestor.managers.resource_manager import ResourceManager
|
||||
@@ -153,7 +153,7 @@ class IngestorManager(BaseActivity):
|
||||
server_config.pop('tags', None)
|
||||
server_instance = self.opc_managers.get(server, None)
|
||||
if server_instance is None:
|
||||
self.logger.debug(
|
||||
self.logger.info(
|
||||
f"Initializing OPC manager for server {server}"
|
||||
)
|
||||
server_instance = self.initialize_opc_from_config(
|
||||
|
||||
@@ -5,7 +5,7 @@ from asyncua.sync import Client
|
||||
from sientia_do.notifications.models import NotificationLevel
|
||||
from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
|
||||
from sientia_do.temporal.activities.base import BaseActivity
|
||||
from sientia_do.temporal.utils.logger import Logger
|
||||
from sientia_do.observability.logger import Logger
|
||||
from ingestor.managers.data_manager import DataManager
|
||||
import ingestor.metrics as metrics
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ from time import time
|
||||
import ingestor.metrics as metrics
|
||||
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 sientia_do.temporal.activities.base import BaseActivity
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
asyncua==1.1.5
|
||||
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.1
|
||||
prometheus_client
|
||||
pymongo
|
||||
@@ -49,8 +49,8 @@ def test___init__(notification_handler, getenv):
|
||||
assert ingestor.metadata == {
|
||||
"model_id": "-",
|
||||
"model_name": "-",
|
||||
"workflow_name": "OPC_INGESTOR",
|
||||
"schema_name": "OPC_INGESTOR",
|
||||
"workflow_name": "opc_ingestor",
|
||||
"schema_name": "opc_ingestor",
|
||||
"pod_id": "localhost1"
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ def test___init__(notification_handler, getenv):
|
||||
connection_string="mongodb://sientia:sientia@localhost:27017",
|
||||
database="sientia",
|
||||
logger=ingestor.logger,
|
||||
project_name="OPC_INGESTOR"
|
||||
project_name="opc_ingestor"
|
||||
)
|
||||
|
||||
|
||||
|
||||
37
values.yaml
37
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.2"
|
||||
|
||||
# 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:
|
||||
@@ -112,27 +112,12 @@ tolerations: []
|
||||
affinity: {}
|
||||
|
||||
services:
|
||||
api:
|
||||
enabled: false
|
||||
type: ClusterIP
|
||||
port: 4841
|
||||
targetPort: 4841
|
||||
name: api
|
||||
|
||||
opc:
|
||||
enabled: false
|
||||
type: ClusterIP
|
||||
port: 4840
|
||||
targetPort: 4840
|
||||
name: server
|
||||
|
||||
metrics:
|
||||
enabled: true
|
||||
type: ClusterIP
|
||||
port: 9090
|
||||
targetPort: 9090
|
||||
name: metrics
|
||||
|
||||
|
||||
# Configuração do ServiceMonitor para o Prometheus Operator
|
||||
# ref: https://github.com/prometheus-operator/prometheus-operator
|
||||
@@ -140,25 +125,21 @@ serviceMonitor:
|
||||
# Se true, um recurso ServiceMonitor será criado.
|
||||
enabled: true
|
||||
# O intervalo no qual as métricas devem ser coletadas (ex: 30s, 1m).
|
||||
interval: 30s
|
||||
# O path do endpoint de métricas na sua aplicação.
|
||||
path: /metrics
|
||||
# Labels adicionais para o recurso ServiceMonitor.
|
||||
# Essencial para que o Prometheus Operator o descubra. Se você usa o helm chart kube-prometheus-stack,
|
||||
# ele procura por ServiceMonitors com o label "release: kube-prometheus-stack".
|
||||
endpoints:
|
||||
- port: metrics
|
||||
path: /metrics
|
||||
interval: 30s
|
||||
relabelings: []
|
||||
|
||||
additionalLabels:
|
||||
release: kube-prometheus-stack
|
||||
# Configurações de relabeling adicionais, se necessário.
|
||||
# ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
|
||||
relabelings: []
|
||||
port: metrics
|
||||
|
||||
env:
|
||||
# Entrypoint variables
|
||||
- name: GITHUB_REPO_URL
|
||||
value: "git@github.com:Aignosi/sientia-dataops-opc-ingestor.git"
|
||||
- name: GITHUB_BRANCH
|
||||
value: "SIENTIAPDE-1174-mapear-e-implementar-metricas-a-serem-criadas"
|
||||
value: "SIENTIAPDE-1199-revisar-e-testar-observabilidade"
|
||||
- name: PYTHON_APP
|
||||
value: "ingestor.app"
|
||||
|
||||
@@ -212,7 +193,7 @@ ssh:
|
||||
|
||||
# kubectl create secret docker-registry docker-hub-secret --namespace sientia --docker-server=http://aignosi.azurecr.io --docker-username=aignosi --docker-password=5I5zpQ6sRaHqX1hD3dr+2mo647yO3FRc359/wu6gsP+ACRDRz5mp
|
||||
|
||||
# helm upgrade --install sientia-opc-ingestor sientia/sientia-module -n sientia --create-namespace -f ./values.yaml --version 0.4.0
|
||||
# helm upgrade --install sientia-opc-ingestor sientia/sientia-module -n sientia --create-namespace -f ./values.yaml --version 0.5.0
|
||||
|
||||
# kubectl create secret generic git-ssh-key-sientia-opc-ingestor \
|
||||
# --namespace sientia \
|
||||
|
||||
Reference in New Issue
Block a user