Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions src/workflows/util/zocalo/configuration.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
from __future__ import annotations

from typing import ClassVar, TypedDict

from marshmallow import fields
from zocalo.configuration import PluginSchema

Expand All @@ -11,21 +13,25 @@
class OTEL:
"""A Zocalo configuration plugin to pre-populate OTELTracing config defaults"""

class _OTELConfig(TypedDict, total=False):
endpoint: str
timeout: int

# Store configuration for access by services
config: ClassVar[_OTELConfig] = {}

class Schema(PluginSchema):
host = fields.Str(required=True)
port = fields.Int(required=True)
timeout = fields.Int(required=False, load_default=10)

# Store configuration for access by services
config = {}

@staticmethod
def activate(configuration):
# Build the full endpoint URL
endpoint = f"https://{configuration['host']}:{configuration['port']}/v1/traces"
OTEL.config["endpoint"] = endpoint
OTEL.config["timeout"] = configuration.get("timeout", 10)
return OTEL.config
return dict(OTEL.config)


class Stomp:
Expand All @@ -48,6 +54,7 @@ def activate(configuration):
("prefix", "--stomp-prfx"),
]:
StompTransport.defaults[target] = configuration[cfgoption]
return dict(StompTransport.defaults)


class Pika:
Expand All @@ -70,6 +77,7 @@ def activate(configuration):
("vhost", "--rabbit-vhost"),
]:
PikaTransport.defaults[target] = configuration[cfgoption]
return dict(PikaTransport.defaults)


class DefaultTransport:
Expand Down