diff --git a/orchestrator/worker/worker.py b/orchestrator/worker/worker.py index 49fc31e..684a54d 100644 --- a/orchestrator/worker/worker.py +++ b/orchestrator/worker/worker.py @@ -1,6 +1,6 @@ from temporalio import workflow, client from temporalio.worker import Worker - +from temporalio.runtime import Runtime, TelemetryConfig, PrometheusConfig with workflow.unsafe.imports_passed_through(): import os @@ -26,6 +26,7 @@ with workflow.unsafe.imports_passed_through(): from orchestrator import metrics POD_ID = os.getenv("POD_ID") +SDK_METRICS_PORT = int(os.getenv('HTTP_SDK_METRICS_PORT', "9091")) async def main(): @@ -55,11 +56,21 @@ async def main(): project_name=os.getenv('PROJECT_NAME', 'orchestrator'), ) + logger.info(f'Starting SDK Metrics Server on port {SDK_METRICS_PORT}...') + + new_runtime = Runtime( + telemetry=TelemetryConfig( + metrics=PrometheusConfig( + bind_address=f"0.0.0.0:{SDK_METRICS_PORT}") + ) + ) + logger.info(f'Starting Temporal Client at {host}:{namespace}') temporal_client = await client.Client.connect( target_host=host, - namespace=namespace + namespace=os.getenv('TEMPORAL_NAMESPACE', 'laborious'), + runtime=new_runtime ) logger.info('Starting Activities...') diff --git a/values.yaml b/values.yaml index 7a7aba0..e2a4b39 100644 --- a/values.yaml +++ b/values.yaml @@ -112,6 +112,13 @@ tolerations: [] affinity: {} services: + sdk-metrics: + enabled: true + type: ClusterIP + port: 9091 + targetPort: 9091 + name: sdk-metrics + metrics: enabled: true type: ClusterIP @@ -125,18 +132,18 @@ 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: [] + - port: sdk-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: @@ -144,7 +151,7 @@ env: - name: GITHUB_REPO_URL value: "git@github.com:Aignosi/sientia-dataops-orchestrator_temporal.git" - name: GITHUB_BRANCH - value: "SIENTIAPDE-1184-investigar-bugs-detectados-no-grafana" + value: "SIENTIAPDE-1169-pensar-e-projetar-testes-de-breakdown-e-performance" - name: PYTHON_APP value: "orchestrator.worker.worker"