adapta 3.5.13__py3-none-any.whl → 3.5.15__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
adapta/_version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '3.5.13'
1
+ __version__ = '3.5.15'
adapta/logs/_base.py CHANGED
@@ -43,18 +43,21 @@ class SemanticLogger(_InternalLogger):
43
43
  def stop(self) -> None:
44
44
  pass
45
45
 
46
- def __init__(self, fixed_template: dict[str, dict[str, str]] | None = None, fixed_template_delimiter=", "):
46
+ def __init__(
47
+ self,
48
+ fixed_template: dict[str, dict[str, str]] | None = None,
49
+ fixed_template_delimiter=", ",
50
+ global_tags: dict[str, str] | None = None,
51
+ ):
47
52
  """
48
53
  Creates a new instance of a SemanticLogger
49
54
 
50
55
  :param fixed_template: Additional template to append to message templates provided via logging methods.
51
56
  :param fixed_template_delimiter: Optional delimiter to use when appending fixed templates.
52
57
  """
53
- super().__init__(fixed_template, fixed_template_delimiter)
58
+ super().__init__(fixed_template, fixed_template_delimiter, global_tags)
54
59
  self._loggers: dict[str, logging.Logger] = {}
55
60
  self._default_log_source = None
56
- self._fixed_template = fixed_template
57
- self._fixed_template_delimiter = fixed_template_delimiter
58
61
  logging.setLoggerClass(MetadataLogger)
59
62
 
60
63
  def add_log_source(
@@ -25,7 +25,7 @@ from datadog import initialize, statsd, api
25
25
  from datadog_api_client.v1.model.metric_metadata import MetricMetadata
26
26
 
27
27
  from adapta.metrics._base import MetricsProvider
28
- from adapta.utils import convert_datadog_tags
28
+ from adapta.utils import convert_datadog_tags, doze
29
29
 
30
30
 
31
31
  class EventAlertType(Enum):
@@ -74,19 +74,43 @@ class DatadogMetricsProvider(MetricsProvider):
74
74
  )
75
75
 
76
76
  @classmethod
77
- def uds(cls, metric_namespace: str, fixed_tags: dict[str, str] = None, debug=False):
77
+ def uds(
78
+ cls,
79
+ metric_namespace: str,
80
+ fixed_tags: dict[str, str] = None,
81
+ debug=False,
82
+ wait_for_socket_timeout_seconds: int = 0,
83
+ ):
78
84
  """
79
85
  Enables sending metrics over UDS (Unix Domain Socket).
80
86
  You must have dsdsocket path mounted on your system in order to use this mode.
81
87
  Refer to https://docs.datadoghq.com/developers/dogstatsd/unix_socket/?tab=kubernetes
88
+
89
+ For most scenarios, wait_for_socket_timeout does not need to be specified. However, if you are not seeing metrics in DD, you might have an issue with socket file not available at the time your application runs.
90
+ In order to ensure you always start with DSD socket ready, specify wait_for_socket_timeout.
82
91
  """
83
- return cls(
92
+ assert wait_for_socket_timeout_seconds >= 0, "Socket file wait timeout must be equal to or greater than 0"
93
+ socket_path = os.getenv("PROTEUS__DD_STATSD_SOCKET_PATH") or "/var/run/datadog/dsd.socket"
94
+ wait_time = 0
95
+ provider = cls(
84
96
  metric_namespace=metric_namespace,
85
97
  fixed_tags=fixed_tags,
86
98
  debug=debug,
87
- statsd_socket_path=os.getenv("PROTEUS__DD_STATSD_SOCKET_PATH") or "/var/run/datadog/dsd.socket",
99
+ statsd_socket_path=socket_path,
88
100
  )
89
101
 
102
+ if wait_for_socket_timeout_seconds > 0:
103
+ while wait_time < wait_for_socket_timeout_seconds:
104
+ doze(1)
105
+ wait_time += 1
106
+ if os.path.exists(socket_path):
107
+ return provider
108
+
109
+ raise RuntimeError(f"UDS socket not found after {wait_time} seconds")
110
+
111
+ # skip DSD await if timeout is set to 0
112
+ return provider
113
+
90
114
  def update_metric_metadata(self, metric_name: str, metric_metadata: MetricMetadata) -> None:
91
115
  """
92
116
  Updates metadata of a published metric in DD.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: adapta
3
- Version: 3.5.13
3
+ Version: 3.5.15
4
4
  Summary: Logging, data connectors, monitoring, secret handling and general lifehacks to make data people lives easier.
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,12 +1,12 @@
1
1
  adapta/__init__.py,sha256=JSGFwL-Pu--FtbY2HOBYcepwDNOJS10RIR9dL88Iye4,696
2
- adapta/_version.py,sha256=ECtKFUybJEHlaZzrv6o79twTdvc4Gca-_xmIgKAZez0,23
2
+ adapta/_version.py,sha256=Xv4mvrdYqCFZ4uwJs7l89ApSHCMS4U8pR8ePXq7JXfE,23
3
3
  adapta/connectors/__init__.py,sha256=H5mtUGjVkaNkhW-nH7_QElRpfcijduVrW8JsrJHjNnA,631
4
4
  adapta/connectors/service_bus/__init__.py,sha256=GDDJ_Y8ua08kZuav4dlrdUzf1ayjAjz2M34eplWD-e8,727
5
5
  adapta/connectors/service_bus/_connector.py,sha256=mkvDag9Zd2PYj0fSxStnPtFDjmYcAYOBPr7O62LyDSI,1913
6
6
  adapta/logs/README.md,sha256=BFdwFT83v6KiMbDn_EDtvbVh9va6tpKLaZXUcUKf1Sk,4111
7
7
  adapta/logs/__init__.py,sha256=ugEGJ7I0fOfrpFRRFRvPfoM4eL4onT7C4ahq3LhKwpQ,816
8
8
  adapta/logs/_async_logger.py,sha256=2T_IBdym7aaXf8K2-laO-JRohAO1BZXPSt7hDs_tssg,8278
9
- adapta/logs/_base.py,sha256=iJDbNXCOJd3AMkFGsZkC9yDPickKda77meVagU1hado,7469
9
+ adapta/logs/_base.py,sha256=osQ9WX6Let4dfmzomPyH8jfFhSWK0WS9BqpY9UrvEsI,7452
10
10
  adapta/logs/_internal.py,sha256=fEKA_P9wtp0xRxB_bxVgfnfRey7mwexSbNE3iJ9nV_o,2997
11
11
  adapta/logs/_internal_logger.py,sha256=Dc7sk7kOZhjWEYihMxkY6j4ynCdWNoX-9KLJ6MKobVk,14165
12
12
  adapta/logs/_logger_interface.py,sha256=Cec8VyNYsBCDjwWzPmNblaIBx0WOPWSczOyaVkSVWGA,3445
@@ -20,7 +20,7 @@ adapta/metrics/__init__.py,sha256=zSyyuYQfBKAqXXcdG7Tddj2V_KwaskwZnv87Mcb8HQA,70
20
20
  adapta/metrics/_base.py,sha256=Pr0r7SO2b0j9QxS3xZRPo-cvZn0xacDX3-Ezh7X0WS0,3214
21
21
  adapta/metrics/providers/README.md,sha256=HOJt6BfbUqV8aPv1RPUS2Gm-qaST9geHmVUuVg7sD0A,1930
22
22
  adapta/metrics/providers/__init__.py,sha256=H5mtUGjVkaNkhW-nH7_QElRpfcijduVrW8JsrJHjNnA,631
23
- adapta/metrics/providers/datadog_provider.py,sha256=BlVYYfrcLhhacGKuIfXEZIK1AlVsOXVW8FVirYHuvOE,5404
23
+ adapta/metrics/providers/datadog_provider.py,sha256=jsSiPzHD49QvksPOT0tH8H9w7CkKC7aF0cnMdD9ehzI,6401
24
24
  adapta/metrics/providers/void_provider.py,sha256=UAIe3zV17r6NwJqFMp5hovFZ3NwX-IJPEutd8ScKZIM,981
25
25
  adapta/ml/__init__.py,sha256=2BiAuwbrSVWt-BWSyuHyPaZXBpzMho8RESrG6JR1vDE,686
26
26
  adapta/ml/_model.py,sha256=XtFKWrxJfyU-EuBlJm0TcupmEs0mFmPunAkMqrmRGBE,1256
@@ -140,7 +140,7 @@ adapta/utils/decorators/_rate_limit.py,sha256=lzQ81uuaPg-_c5CkvztIetkglbmwdQNb6x
140
140
  adapta/utils/metaframe.py,sha256=0MANP7c7jaHcVw3TvOTq4Taz4Pa2u97HqHKp4ml2nxo,5185
141
141
  adapta/utils/python_typing/__init__.py,sha256=AhCDfacq0Jwz9rGGkauL4NaozJeYad5IUpCMif056rQ,86
142
142
  adapta/utils/python_typing/_functions.py,sha256=YR3YfsvNvB-IX848cMnSty2tLeq1zExARD44AELtfik,541
143
- adapta-3.5.13.dist-info/METADATA,sha256=WWjlHDOprxnZQlzNNDAVSFKrvoLmHBneexM3Rj4dXug,3591
144
- adapta-3.5.13.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
145
- adapta-3.5.13.dist-info/licenses/LICENSE,sha256=0gS6zXsPp8qZhzi1xaGCIYPzb_0e8on7HCeFJe8fOpw,10693
146
- adapta-3.5.13.dist-info/RECORD,,
143
+ adapta-3.5.15.dist-info/METADATA,sha256=94SP_RlO-6jkIsZi8y_LfcGdJtIiUIeM21iHnwk-aTw,3591
144
+ adapta-3.5.15.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
145
+ adapta-3.5.15.dist-info/licenses/LICENSE,sha256=0gS6zXsPp8qZhzi1xaGCIYPzb_0e8on7HCeFJe8fOpw,10693
146
+ adapta-3.5.15.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.2.1
2
+ Generator: poetry-core 2.3.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any