datadog-checks-base 37.15.0__py2.py3-none-any.whl → 37.16.0__py2.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.
- datadog_checks/base/__about__.py +1 -1
- datadog_checks/base/checks/base.py +38 -38
- datadog_checks/base/checks/kube_leader/base_check.py +2 -1
- datadog_checks/base/checks/kube_leader/mixins.py +1 -1
- datadog_checks/base/checks/kubelet_base/base.py +2 -2
- datadog_checks/base/checks/network.py +1 -1
- datadog_checks/base/checks/openmetrics/base_check.py +4 -3
- datadog_checks/base/checks/openmetrics/mixins.py +6 -7
- datadog_checks/base/checks/openmetrics/v2/base.py +4 -3
- datadog_checks/base/checks/openmetrics/v2/labels.py +1 -1
- datadog_checks/base/checks/openmetrics/v2/scraper/__init__.py +8 -0
- datadog_checks/base/checks/openmetrics/v2/{scraper.py → scraper/base_scraper.py} +19 -16
- datadog_checks/base/checks/openmetrics/v2/scraper/decorators.py +48 -0
- datadog_checks/base/checks/openmetrics/v2/transform.py +2 -1
- datadog_checks/base/checks/openmetrics/v2/transformers/histogram.py +2 -2
- datadog_checks/base/checks/openmetrics/v2/transformers/service_check.py +1 -1
- datadog_checks/base/checks/openmetrics/v2/transformers/temporal_percent.py +2 -2
- datadog_checks/base/checks/openmetrics/v2/transformers/time_elapsed.py +1 -1
- datadog_checks/base/checks/prometheus/base_check.py +4 -3
- datadog_checks/base/checks/prometheus/mixins.py +7 -7
- datadog_checks/base/checks/prometheus/prometheus_base.py +3 -2
- datadog_checks/base/checks/win/winpdh_base.py +2 -2
- datadog_checks/base/checks/win/wmi/base.py +13 -12
- datadog_checks/base/checks/win/wmi/sampler.py +10 -10
- datadog_checks/base/checks/windows/perf_counters/base.py +5 -4
- datadog_checks/base/checks/windows/perf_counters/connection.py +2 -2
- datadog_checks/base/checks/windows/perf_counters/counter.py +2 -1
- datadog_checks/base/checks/windows/perf_counters/transformers/service_check.py +2 -2
- datadog_checks/base/checks/windows/perf_counters/transformers/temporal_percent.py +3 -3
- datadog_checks/base/checks/windows/perf_counters/transformers/time_elapsed.py +1 -1
- datadog_checks/base/stubs/aggregator.py +21 -4
- datadog_checks/base/stubs/datadog_agent.py +5 -5
- datadog_checks/base/stubs/log.py +1 -1
- datadog_checks/base/utils/db/core.py +2 -2
- datadog_checks/base/utils/db/query.py +1 -3
- datadog_checks/base/utils/db/transform.py +6 -8
- datadog_checks/base/utils/db/utils.py +1 -2
- datadog_checks/base/utils/http.py +170 -71
- datadog_checks/base/utils/metadata/core.py +1 -1
- datadog_checks/base/utils/metadata/version.py +1 -1
- datadog_checks/base/utils/prometheus/metrics_pb2.py +2 -1
- datadog_checks/base/utils/replay/execute.py +2 -2
- datadog_checks/base/utils/replay/redirect.py +5 -6
- datadog_checks/base/utils/subprocess_output.py +2 -2
- datadog_checks/base/utils/tagging.py +1 -1
- datadog_checks/base/utils/tailfile.py +0 -2
- datadog_checks/base/utils/tls.py +96 -54
- datadog_checks/base/utils/tracing.py +5 -6
- datadog_checks/checks/libs/wmi/sampler.py +1 -0
- {datadog_checks_base-37.15.0.dist-info → datadog_checks_base-37.16.0.dist-info}/METADATA +10 -10
- {datadog_checks_base-37.15.0.dist-info → datadog_checks_base-37.16.0.dist-info}/RECORD +52 -51
- datadog_checks/base/utils/network.py +0 -49
- {datadog_checks_base-37.15.0.dist-info → datadog_checks_base-37.16.0.dist-info}/WHEEL +0 -0
datadog_checks/base/utils/tls.py
CHANGED
|
@@ -5,12 +5,14 @@ import logging
|
|
|
5
5
|
import os
|
|
6
6
|
import ssl
|
|
7
7
|
from copy import deepcopy
|
|
8
|
-
from typing import TYPE_CHECKING, Any, AnyStr, Dict # noqa: F401
|
|
8
|
+
from typing import TYPE_CHECKING, Any, AnyStr, Dict, Optional # noqa: F401
|
|
9
9
|
|
|
10
|
-
from
|
|
10
|
+
from pydantic import BaseModel
|
|
11
|
+
|
|
12
|
+
from datadog_checks.base.config import is_affirmative
|
|
11
13
|
|
|
12
14
|
if TYPE_CHECKING:
|
|
13
|
-
from
|
|
15
|
+
from datadog_checks.base.types import InstanceType # noqa: F401
|
|
14
16
|
|
|
15
17
|
LOGGER = logging.getLogger(__file__)
|
|
16
18
|
|
|
@@ -21,6 +23,10 @@ LOGGER = logging.getLogger(__file__)
|
|
|
21
23
|
# prefix.
|
|
22
24
|
UNIQUE_FIELD_PREFIX = '_tls_context_'
|
|
23
25
|
|
|
26
|
+
# https://github.com/python/cpython/blob/ef516d11c1a0f885dba0aba8cf5366502077cdd4/Lib/ssl.py#L158-L165
|
|
27
|
+
DEFAULT_PROTOCOL_VERSIONS = ('SSLv3', 'TLSv1.2', 'TLSv1.3')
|
|
28
|
+
SUPPORTED_PROTOCOL_VERSIONS = ('SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3')
|
|
29
|
+
|
|
24
30
|
STANDARD_FIELDS = {
|
|
25
31
|
'tls_verify': True,
|
|
26
32
|
'tls_ca_cert': None,
|
|
@@ -32,11 +38,95 @@ STANDARD_FIELDS = {
|
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
|
|
41
|
+
class TlsConfig(BaseModel, frozen=True):
|
|
42
|
+
"""
|
|
43
|
+
Class used internally to cache HTTPS adapters with specific TLS configurations.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
tls_ca_cert: str | bool | None = None
|
|
47
|
+
tls_intermediate_ca_certs: tuple[str, ...] | None = None
|
|
48
|
+
tls_cert: str | None = None
|
|
49
|
+
tls_ciphers: str | tuple[str, ...] = 'ALL'
|
|
50
|
+
tls_use_host_header: bool = False
|
|
51
|
+
tls_ignore_warning: bool = False
|
|
52
|
+
tls_private_key: str | None = None
|
|
53
|
+
tls_private_key_password: str | None = None
|
|
54
|
+
tls_protocols_allowed: tuple[str, ...] = DEFAULT_PROTOCOL_VERSIONS
|
|
55
|
+
tls_validate_hostname: bool = True
|
|
56
|
+
tls_verify: bool = True
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def create_ssl_context(config):
|
|
60
|
+
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext
|
|
61
|
+
# https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLS_CLIENT
|
|
62
|
+
context = ssl.SSLContext(protocol=ssl.PROTOCOL_TLS)
|
|
63
|
+
|
|
64
|
+
LOGGER.debug('Creating SSL context with config: %s', config)
|
|
65
|
+
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.check_hostname
|
|
66
|
+
context.check_hostname = is_affirmative(config['tls_verify']) and config.get('tls_validate_hostname', True)
|
|
67
|
+
|
|
68
|
+
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.verify_mode
|
|
69
|
+
context.verify_mode = ssl.CERT_REQUIRED if is_affirmative(config['tls_verify']) else ssl.CERT_NONE
|
|
70
|
+
|
|
71
|
+
ciphers = config.get('tls_ciphers', [])
|
|
72
|
+
if isinstance(ciphers, str):
|
|
73
|
+
# If ciphers is a string, assume that it is formatted correctly
|
|
74
|
+
configured_ciphers = "ALL" if "ALL" in ciphers else ciphers
|
|
75
|
+
else:
|
|
76
|
+
configured_ciphers = "ALL" if "ALL" in ciphers else ":".join(ciphers)
|
|
77
|
+
if configured_ciphers:
|
|
78
|
+
LOGGER.debug('Setting TLS ciphers to: %s', configured_ciphers)
|
|
79
|
+
context.set_ciphers(configured_ciphers)
|
|
80
|
+
|
|
81
|
+
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_verify_locations
|
|
82
|
+
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_default_certs
|
|
83
|
+
ca_cert = config.get('tls_ca_cert')
|
|
84
|
+
try:
|
|
85
|
+
if ca_cert:
|
|
86
|
+
ca_cert = os.path.expanduser(ca_cert)
|
|
87
|
+
if os.path.isdir(ca_cert):
|
|
88
|
+
context.load_verify_locations(cafile=None, capath=ca_cert, cadata=None)
|
|
89
|
+
else:
|
|
90
|
+
context.load_verify_locations(cafile=ca_cert, capath=None, cadata=None)
|
|
91
|
+
else:
|
|
92
|
+
context.load_default_certs(ssl.Purpose.SERVER_AUTH)
|
|
93
|
+
except FileNotFoundError:
|
|
94
|
+
LOGGER.warning(
|
|
95
|
+
'TLS CA certificate file not found: %s. Please check the `tls_ca_cert` configuration option.',
|
|
96
|
+
ca_cert,
|
|
97
|
+
)
|
|
98
|
+
intermediate_ca_certs = config.get('tls_intermediate_ca_certs')
|
|
99
|
+
try:
|
|
100
|
+
if intermediate_ca_certs:
|
|
101
|
+
context.load_verify_locations(cadata='\n'.join(intermediate_ca_certs))
|
|
102
|
+
except ssl.SSLError:
|
|
103
|
+
LOGGER.warning(
|
|
104
|
+
"TLS intermediate CA certificate(s) could not be loaded: %s. ",
|
|
105
|
+
intermediate_ca_certs,
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_cert_chain
|
|
109
|
+
client_cert, client_key = config.get('tls_cert'), config.get('tls_private_key')
|
|
110
|
+
client_key_pass = config.get('tls_private_key_password')
|
|
111
|
+
try:
|
|
112
|
+
if client_key:
|
|
113
|
+
client_key = os.path.expanduser(client_key)
|
|
114
|
+
if client_cert:
|
|
115
|
+
client_cert = os.path.expanduser(client_cert)
|
|
116
|
+
context.load_cert_chain(client_cert, keyfile=client_key, password=client_key_pass)
|
|
117
|
+
except FileNotFoundError:
|
|
118
|
+
LOGGER.warning(
|
|
119
|
+
'TLS client certificate file not found: %s. Please check the `tls_cert` configuration option.',
|
|
120
|
+
client_cert,
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
return context
|
|
124
|
+
|
|
125
|
+
|
|
35
126
|
class TlsContextWrapper(object):
|
|
36
127
|
__slots__ = ('logger', 'config', 'tls_context')
|
|
37
128
|
|
|
38
129
|
def __init__(self, instance, remapper=None, overrides=None):
|
|
39
|
-
# type: (InstanceType, Dict[AnyStr, Dict[AnyStr, Any]], Dict[AnyStr, Any]) -> None
|
|
40
130
|
default_fields = dict(STANDARD_FIELDS)
|
|
41
131
|
|
|
42
132
|
# Override existing config options if there exists any overrides
|
|
@@ -98,56 +188,8 @@ class TlsContextWrapper(object):
|
|
|
98
188
|
del config[unique_name]
|
|
99
189
|
|
|
100
190
|
self.config = config
|
|
101
|
-
self.tls_context = self.
|
|
102
|
-
|
|
103
|
-
def _create_tls_context(self):
|
|
104
|
-
# type: () -> ssl.SSLContext
|
|
105
|
-
|
|
106
|
-
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext
|
|
107
|
-
# https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLS
|
|
108
|
-
context = ssl.SSLContext(protocol=ssl.PROTOCOL_TLS)
|
|
109
|
-
|
|
110
|
-
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.verify_mode
|
|
111
|
-
context.verify_mode = ssl.CERT_REQUIRED if self.config['tls_verify'] else ssl.CERT_NONE
|
|
112
|
-
|
|
113
|
-
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.check_hostname
|
|
114
|
-
if context.verify_mode == ssl.CERT_REQUIRED:
|
|
115
|
-
context.check_hostname = self.config.get('tls_validate_hostname', True)
|
|
116
|
-
else:
|
|
117
|
-
context.check_hostname = False
|
|
118
|
-
|
|
119
|
-
ciphers = self.config.get('tls_ciphers')
|
|
120
|
-
if ciphers:
|
|
121
|
-
if 'ALL' in ciphers:
|
|
122
|
-
updated_ciphers = "ALL"
|
|
123
|
-
else:
|
|
124
|
-
updated_ciphers = ":".join(ciphers)
|
|
125
|
-
|
|
126
|
-
context.set_ciphers(updated_ciphers)
|
|
127
|
-
|
|
128
|
-
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_verify_locations
|
|
129
|
-
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_default_certs
|
|
130
|
-
ca_cert = self.config['tls_ca_cert']
|
|
131
|
-
if ca_cert:
|
|
132
|
-
ca_cert = os.path.expanduser(ca_cert)
|
|
133
|
-
if os.path.isdir(ca_cert):
|
|
134
|
-
context.load_verify_locations(cafile=None, capath=ca_cert, cadata=None)
|
|
135
|
-
else:
|
|
136
|
-
context.load_verify_locations(cafile=ca_cert, capath=None, cadata=None)
|
|
137
|
-
else:
|
|
138
|
-
context.load_default_certs(ssl.Purpose.SERVER_AUTH)
|
|
139
|
-
|
|
140
|
-
# https://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_cert_chain
|
|
141
|
-
client_cert, client_key = self.config['tls_cert'], self.config['tls_private_key']
|
|
142
|
-
client_key_pass = self.config['tls_private_key_password']
|
|
143
|
-
if client_key:
|
|
144
|
-
client_key = os.path.expanduser(client_key)
|
|
145
|
-
if client_cert:
|
|
146
|
-
client_cert = os.path.expanduser(client_cert)
|
|
147
|
-
context.load_cert_chain(client_cert, keyfile=client_key, password=client_key_pass)
|
|
148
|
-
|
|
149
|
-
return context
|
|
191
|
+
self.tls_context = create_ssl_context(self.config)
|
|
150
192
|
|
|
151
193
|
def refresh_tls_context(self):
|
|
152
194
|
# type: () -> None
|
|
153
|
-
self.tls_context = self.
|
|
195
|
+
self.tls_context = create_ssl_context(self.config)
|
|
@@ -10,9 +10,8 @@ from typing import TYPE_CHECKING
|
|
|
10
10
|
import lazy_loader
|
|
11
11
|
|
|
12
12
|
from datadog_checks.base.agent import datadog_agent
|
|
13
|
-
|
|
14
|
-
from
|
|
15
|
-
from ..utils.common import to_native_string
|
|
13
|
+
from datadog_checks.base.config import is_affirmative
|
|
14
|
+
from datadog_checks.base.utils.common import to_native_string
|
|
16
15
|
|
|
17
16
|
if TYPE_CHECKING:
|
|
18
17
|
import inspect as _module_inspect
|
|
@@ -123,9 +122,9 @@ def traced_class(cls):
|
|
|
123
122
|
try:
|
|
124
123
|
integration_tracing_exhaustive = is_affirmative(datadog_agent.get_config('integration_tracing_exhaustive'))
|
|
125
124
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
125
|
+
# https://ddtrace.readthedocs.io/en/stable/basic_usage.html#ddtrace-auto
|
|
126
|
+
import ddtrace.auto # noqa: F401
|
|
127
|
+
from ddtrace import tracer
|
|
129
128
|
|
|
130
129
|
def decorate(cls):
|
|
131
130
|
for attr in cls.__dict__:
|
|
@@ -23,4 +23,5 @@ Please refer to `checks.lib.wmi.counter_type` for more information*
|
|
|
23
23
|
Original discussion thread: https://github.com/DataDog/dd-agent/issues/1952
|
|
24
24
|
Credits to @TheCloudlessSky (https://github.com/TheCloudlessSky)
|
|
25
25
|
"""
|
|
26
|
+
|
|
26
27
|
from ....win.wmi.sampler import WMISampler
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: datadog-checks-base
|
|
3
|
-
Version: 37.
|
|
3
|
+
Version: 37.16.0
|
|
4
4
|
Summary: The Datadog Check Toolkit
|
|
5
5
|
Project-URL: Source, https://github.com/DataDog/integrations-core
|
|
6
6
|
Author-email: Datadog <packages@datadoghq.com>
|
|
@@ -15,15 +15,15 @@ Classifier: Topic :: System :: Monitoring
|
|
|
15
15
|
Provides-Extra: db
|
|
16
16
|
Requires-Dist: mmh3==5.1.0; extra == 'db'
|
|
17
17
|
Provides-Extra: deps
|
|
18
|
-
Requires-Dist: binary==1.0.
|
|
19
|
-
Requires-Dist: cachetools==6.
|
|
20
|
-
Requires-Dist: cryptography==45.0.
|
|
21
|
-
Requires-Dist: ddtrace==3.9.
|
|
18
|
+
Requires-Dist: binary==1.0.2; extra == 'deps'
|
|
19
|
+
Requires-Dist: cachetools==6.1.0; extra == 'deps'
|
|
20
|
+
Requires-Dist: cryptography==45.0.4; extra == 'deps'
|
|
21
|
+
Requires-Dist: ddtrace==3.9.3; extra == 'deps'
|
|
22
22
|
Requires-Dist: jellyfish==1.2.0; extra == 'deps'
|
|
23
23
|
Requires-Dist: lazy-loader==0.4; extra == 'deps'
|
|
24
24
|
Requires-Dist: prometheus-client==0.22.1; extra == 'deps'
|
|
25
25
|
Requires-Dist: protobuf==6.31.1; extra == 'deps'
|
|
26
|
-
Requires-Dist: pydantic==2.11.
|
|
26
|
+
Requires-Dist: pydantic==2.11.7; extra == 'deps'
|
|
27
27
|
Requires-Dist: python-dateutil==2.9.0.post0; extra == 'deps'
|
|
28
28
|
Requires-Dist: pywin32==310; (sys_platform == 'win32') and extra == 'deps'
|
|
29
29
|
Requires-Dist: pyyaml==6.0.2; extra == 'deps'
|
|
@@ -31,12 +31,12 @@ Requires-Dist: requests-toolbelt==1.0.0; extra == 'deps'
|
|
|
31
31
|
Requires-Dist: requests-unixsocket2==1.0.0; extra == 'deps'
|
|
32
32
|
Requires-Dist: requests==2.32.4; extra == 'deps'
|
|
33
33
|
Requires-Dist: simplejson==3.20.1; extra == 'deps'
|
|
34
|
-
Requires-Dist: urllib3==2.
|
|
34
|
+
Requires-Dist: urllib3==2.5.0; extra == 'deps'
|
|
35
35
|
Requires-Dist: wrapt==1.17.2; extra == 'deps'
|
|
36
36
|
Provides-Extra: http
|
|
37
37
|
Requires-Dist: aws-requests-auth==0.4.3; extra == 'http'
|
|
38
|
-
Requires-Dist: botocore==1.38.
|
|
39
|
-
Requires-Dist: oauthlib==3.
|
|
38
|
+
Requires-Dist: botocore==1.38.41; extra == 'http'
|
|
39
|
+
Requires-Dist: oauthlib==3.3.1; extra == 'http'
|
|
40
40
|
Requires-Dist: pyjwt==2.10.1; extra == 'http'
|
|
41
41
|
Requires-Dist: pyopenssl==25.1.0; extra == 'http'
|
|
42
42
|
Requires-Dist: pysocks==1.7.1; extra == 'http'
|
|
@@ -46,7 +46,7 @@ Requires-Dist: requests-oauthlib==2.0.0; extra == 'http'
|
|
|
46
46
|
Provides-Extra: json
|
|
47
47
|
Requires-Dist: orjson==3.10.18; extra == 'json'
|
|
48
48
|
Provides-Extra: kube
|
|
49
|
-
Requires-Dist: kubernetes==
|
|
49
|
+
Requires-Dist: kubernetes==33.1.0; extra == 'kube'
|
|
50
50
|
Requires-Dist: requests-oauthlib==2.0.0; extra == 'kube'
|
|
51
51
|
Description-Content-Type: text/markdown
|
|
52
52
|
|
|
@@ -3,7 +3,7 @@ datadog_checks/config.py,sha256=PrAXGdlLnoV2VMQff_noSaSJJ0wg4BAiGnw7jCQLSik,196
|
|
|
3
3
|
datadog_checks/errors.py,sha256=eFwmnrX-batIgbu-iJyseqAPNO_4rk1UuaKK89evLhg,155
|
|
4
4
|
datadog_checks/log.py,sha256=orvOgMKGNEsqSTLalCAQpWP-ouorpG1A7Gn-j2mRD80,301
|
|
5
5
|
datadog_checks/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
|
|
6
|
-
datadog_checks/base/__about__.py,sha256=
|
|
6
|
+
datadog_checks/base/__about__.py,sha256=Obo5Tb1tuahMAF-iZILME3FbOd4SLn3HoyvW-6KfTlM,139
|
|
7
7
|
datadog_checks/base/__init__.py,sha256=yWegSLE-TZWIGSvAiJj9PSrUxzlOo_UVJLt2zORZ8Ek,363
|
|
8
8
|
datadog_checks/base/__init__.pyi,sha256=eH8XhrtvnD6uE6FWfEyCmKwOaaLJxNolS08D6IRHZuU,995
|
|
9
9
|
datadog_checks/base/agent.py,sha256=nX9x_BYYizRKGNYfXq5z7S0FZ9xcX_wd2tuxpGe3_8k,350
|
|
@@ -15,16 +15,16 @@ datadog_checks/base/types.py,sha256=anajZS0W0TsxUHJQw-JHOP2NSeuC9BisXSy9mAStlxQ,
|
|
|
15
15
|
datadog_checks/base/checks/__init__.py,sha256=q7V6v-FwQWkQC1QWaVzKaPjZMaxPJHJcLd71C0uM7bA,211
|
|
16
16
|
datadog_checks/base/checks/__init__.pyi,sha256=LASfm-daLNQIYe6-w0NPqBw4cl83nYIX5_B-VhV6ARo,262
|
|
17
17
|
datadog_checks/base/checks/_config_ast.py,sha256=v1rAhwORF80b3kfZKhf6zXZ7S5D3A2QPUK4tSo8eo-Y,3268
|
|
18
|
-
datadog_checks/base/checks/base.py,sha256=
|
|
19
|
-
datadog_checks/base/checks/network.py,sha256=
|
|
18
|
+
datadog_checks/base/checks/base.py,sha256=UjjhAJaVUBhbJcdWkRCkWRSX5ocoeWRBvuFdbB3blKg,60027
|
|
19
|
+
datadog_checks/base/checks/network.py,sha256=UkgqkVHaoX7Hqi0WKEx-TvaFiF6-37VyF9A3m2aSaJM,1966
|
|
20
20
|
datadog_checks/base/checks/kube_leader/__init__.py,sha256=q7V6v-FwQWkQC1QWaVzKaPjZMaxPJHJcLd71C0uM7bA,211
|
|
21
21
|
datadog_checks/base/checks/kube_leader/__init__.pyi,sha256=UGDywoRwmCIz3Zii1uHsp7jiFGWRdn5fFMZZxgGGlQs,398
|
|
22
|
-
datadog_checks/base/checks/kube_leader/base_check.py,sha256=
|
|
23
|
-
datadog_checks/base/checks/kube_leader/mixins.py,sha256=
|
|
22
|
+
datadog_checks/base/checks/kube_leader/base_check.py,sha256=x8waP-vztJzK9e6KQLGSLFfrWdzwKcsWGzCL1bs6WRc,733
|
|
23
|
+
datadog_checks/base/checks/kube_leader/mixins.py,sha256=vJUFhziwVdvVct0WvCKFk6oM3HYjnTNtwxCSIFvOyH8,5469
|
|
24
24
|
datadog_checks/base/checks/kube_leader/record.py,sha256=aqM0VFsFWu2pA0O5ds-6v5WQOM7lgQMyGwom6Q6qCaU,3825
|
|
25
25
|
datadog_checks/base/checks/kubelet_base/__init__.py,sha256=1wYk1GS86jfv3-_Uy4zbJvuOAYPuy9y49FD0KIRVlQw,211
|
|
26
26
|
datadog_checks/base/checks/kubelet_base/__init__.pyi,sha256=C-xJZ8zucbG7yAwts7J-SBneesG-TPgL1bBrFm4L8vc,172
|
|
27
|
-
datadog_checks/base/checks/kubelet_base/base.py,sha256=
|
|
27
|
+
datadog_checks/base/checks/kubelet_base/base.py,sha256=5Iopwtmp0IQIhkB1Vl3Mg5V5N9sseUYn9DRGIzZaqH0,6799
|
|
28
28
|
datadog_checks/base/checks/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
29
|
datadog_checks/base/checks/libs/prometheus.py,sha256=CPiXzSaqFxk818NtTALRJRGZ6np4nusKQsfUu3ISt90,4055
|
|
30
30
|
datadog_checks/base/checks/libs/thread_pool.py,sha256=mBIZ3GP-RS-WB14PyRS-4UEXlzVGMXnkv8k-LCC4urc,24570
|
|
@@ -38,50 +38,52 @@ datadog_checks/base/checks/logs/crawler/base.py,sha256=kK42pNw0mw0PwawQLzwhsdAQC
|
|
|
38
38
|
datadog_checks/base/checks/logs/crawler/stream.py,sha256=MAp8I-zEj5cvTp7pNJNFl32ADdzqNZxGgkJfydrfhH4,1516
|
|
39
39
|
datadog_checks/base/checks/openmetrics/__init__.py,sha256=q7V6v-FwQWkQC1QWaVzKaPjZMaxPJHJcLd71C0uM7bA,211
|
|
40
40
|
datadog_checks/base/checks/openmetrics/__init__.pyi,sha256=AqcFP5LGKKZ7fWqgAZAH0fPp4kLJk9Nv9Kk44ac2NBs,196
|
|
41
|
-
datadog_checks/base/checks/openmetrics/base_check.py,sha256=
|
|
42
|
-
datadog_checks/base/checks/openmetrics/mixins.py,sha256=
|
|
41
|
+
datadog_checks/base/checks/openmetrics/base_check.py,sha256=OqFpv2GMSCSb2b05jGYDP1L8nfzQ5omdXL4FL-kB_yk,6548
|
|
42
|
+
datadog_checks/base/checks/openmetrics/mixins.py,sha256=fwiyuO6kVy69OH9ys9cSec8aREUOGgB1jcBW22yr35Y,60907
|
|
43
43
|
datadog_checks/base/checks/openmetrics/v2/__init__.py,sha256=P81FBhJLA9MGpz4L7o_7C-pvEwd4A_8jWFWQZ1jg0Eg,115
|
|
44
|
-
datadog_checks/base/checks/openmetrics/v2/base.py,sha256=
|
|
44
|
+
datadog_checks/base/checks/openmetrics/v2/base.py,sha256=4PLGsKTaqmg-3Vh1ZxjgsWSqV0G55O21l9nABi07i1M,4152
|
|
45
45
|
datadog_checks/base/checks/openmetrics/v2/first_scrape_handler.py,sha256=In-tZXMzieSdL2OXJlIAFi78KbQVwuJnGP0iaLH9974,941
|
|
46
|
-
datadog_checks/base/checks/openmetrics/v2/labels.py,sha256=
|
|
46
|
+
datadog_checks/base/checks/openmetrics/v2/labels.py,sha256=Q6bQ-XfcK4DEFcynvCe0El68H9d2gwTiAIgh4QZHJxw,8923
|
|
47
47
|
datadog_checks/base/checks/openmetrics/v2/metrics.py,sha256=uDVZOHHRWMW8YUQZBY9jCLzecN5DueRNjImxBm1K82k,2189
|
|
48
|
-
datadog_checks/base/checks/openmetrics/v2/
|
|
49
|
-
datadog_checks/base/checks/openmetrics/v2/transform.py,sha256=qv7Y1yvqWm-269mGU7Oq0it8x3VkWUZU2m2d3q-VJZ0,8377
|
|
48
|
+
datadog_checks/base/checks/openmetrics/v2/transform.py,sha256=p27NFqHlTWMCIyP32Zqr1ReZdTTgTnweD4BQR8bT4kU,8394
|
|
50
49
|
datadog_checks/base/checks/openmetrics/v2/utils.py,sha256=tpk3htJAz_KwCRqFs2CTjajHkLCs_2TbGdBp514rWOQ,3565
|
|
50
|
+
datadog_checks/base/checks/openmetrics/v2/scraper/__init__.py,sha256=CmPditUEIuUa2hfsag0b9AoX_w_OR5GwYaA1kxV43es,302
|
|
51
|
+
datadog_checks/base/checks/openmetrics/v2/scraper/base_scraper.py,sha256=n_R_2EEatyjEFF61CI9z_q4hAIEKGzi1c0TfdkTf6v8,25610
|
|
52
|
+
datadog_checks/base/checks/openmetrics/v2/scraper/decorators.py,sha256=SOB-4WNHRFfppZXXbrTm_US-IKDF8J7e8d0UP63XAGc,1784
|
|
51
53
|
datadog_checks/base/checks/openmetrics/v2/transformers/__init__.py,sha256=bqHxA7SxvyJzSyLdNfISOPtJKyF132bHkzdrMaKbjoA,211
|
|
52
54
|
datadog_checks/base/checks/openmetrics/v2/transformers/__init__.pyi,sha256=oykbGmabU_Lkp_sKDgStqQeSlKacoGFhHjqoLOy_-aA,722
|
|
53
55
|
datadog_checks/base/checks/openmetrics/v2/transformers/counter.py,sha256=mmNi4EGtLNYFxWa0yI_38NY9aBIi414M9pRSaGNbcaI,921
|
|
54
56
|
datadog_checks/base/checks/openmetrics/v2/transformers/counter_gauge.py,sha256=ob1CvCdHr-Vrc5BSlaT3OXL5F2M6B7OGahUAekVF3Fw,1062
|
|
55
57
|
datadog_checks/base/checks/openmetrics/v2/transformers/gauge.py,sha256=_2oZ14m_5_b7lOR-tMxJRhseF6r6f9DsO-4LbAIyiPE,645
|
|
56
|
-
datadog_checks/base/checks/openmetrics/v2/transformers/histogram.py,sha256=
|
|
58
|
+
datadog_checks/base/checks/openmetrics/v2/transformers/histogram.py,sha256=wZGTeZA_3E8-5F9aFqs8QCMJWN994Z-zJMvkTWendE8,9348
|
|
57
59
|
datadog_checks/base/checks/openmetrics/v2/transformers/metadata.py,sha256=BpsJN1D9Jy94uxLe7kpHL14ELdlhUwyTml5R89MAOuo,1043
|
|
58
60
|
datadog_checks/base/checks/openmetrics/v2/transformers/rate.py,sha256=e-t17cFCsAKnfXgQrdUh95w0lsly3iuA02MizGP_ocM,521
|
|
59
|
-
datadog_checks/base/checks/openmetrics/v2/transformers/service_check.py,sha256=
|
|
61
|
+
datadog_checks/base/checks/openmetrics/v2/transformers/service_check.py,sha256=W6jZA0_iD3XtdHWBOWdne9h6tkaDKTKy5PCikLBsQog,2301
|
|
60
62
|
datadog_checks/base/checks/openmetrics/v2/transformers/summary.py,sha256=0B1Wk7ea4H2nfdsOX8oQEiooBGNqypFDcjBPKjHVtS4,1586
|
|
61
|
-
datadog_checks/base/checks/openmetrics/v2/transformers/temporal_percent.py,sha256=
|
|
62
|
-
datadog_checks/base/checks/openmetrics/v2/transformers/time_elapsed.py,sha256=
|
|
63
|
+
datadog_checks/base/checks/openmetrics/v2/transformers/temporal_percent.py,sha256=FCXV9u1dcmFo5zO-ZQBXBJ8TgUHHFbh4NeA08h_21UY,1963
|
|
64
|
+
datadog_checks/base/checks/openmetrics/v2/transformers/time_elapsed.py,sha256=tqeGrRc07n2Az4OTmB1l7NLUZBXY1sBP5Qd8epfRnNo,662
|
|
63
65
|
datadog_checks/base/checks/prometheus/__init__.py,sha256=q7V6v-FwQWkQC1QWaVzKaPjZMaxPJHJcLd71C0uM7bA,211
|
|
64
66
|
datadog_checks/base/checks/prometheus/__init__.pyi,sha256=gLe9ktvTHnk2TJtZIFQ5mRdQk3ds5-zhH17h8GKQVog,403
|
|
65
|
-
datadog_checks/base/checks/prometheus/base_check.py,sha256=
|
|
66
|
-
datadog_checks/base/checks/prometheus/mixins.py,sha256=
|
|
67
|
-
datadog_checks/base/checks/prometheus/prometheus_base.py,sha256=
|
|
67
|
+
datadog_checks/base/checks/prometheus/base_check.py,sha256=2O3rFQAlebKVvTXfR-wLmte2wP9YgpYEhThhI0UyPo4,8443
|
|
68
|
+
datadog_checks/base/checks/prometheus/mixins.py,sha256=8Fwn19ikNaQIWb3Fy2PgI61yk7njsFXV1YT7HWazrdc,33847
|
|
69
|
+
datadog_checks/base/checks/prometheus/prometheus_base.py,sha256=Jqr18FE1R-LUIPlujYaXAW3W-oAp-_c9jR-bQvmngnE,4007
|
|
68
70
|
datadog_checks/base/checks/win/__init__.py,sha256=q7V6v-FwQWkQC1QWaVzKaPjZMaxPJHJcLd71C0uM7bA,211
|
|
69
71
|
datadog_checks/base/checks/win/__init__.pyi,sha256=9c7eiwszs-9Cv0S_v6r75jH_2PULjGTVpYt58kb3l0k,232
|
|
70
72
|
datadog_checks/base/checks/win/winpdh.py,sha256=ihF4BB1_3EoWvFTCAZ4TMQSOLaWlv1nWM8AAqlthBa4,11280
|
|
71
|
-
datadog_checks/base/checks/win/winpdh_base.py,sha256=
|
|
73
|
+
datadog_checks/base/checks/win/winpdh_base.py,sha256=z3pPHG0H5ixwjeGi08cLe00VbZ3XMdntdJhgg623T7I,10763
|
|
72
74
|
datadog_checks/base/checks/win/winpdh_stub.py,sha256=M5fyBkzAuEKvoZrG9ktQapwkH_7K-KOIYF5VpS83LMk,391
|
|
73
75
|
datadog_checks/base/checks/win/wmi/__init__.py,sha256=q7V6v-FwQWkQC1QWaVzKaPjZMaxPJHJcLd71C0uM7bA,211
|
|
74
76
|
datadog_checks/base/checks/win/wmi/__init__.pyi,sha256=2lgW_cDX36mGgwjBQ4jcUUkD4pIN73QfXvlPO7oK-X8,594
|
|
75
|
-
datadog_checks/base/checks/win/wmi/base.py,sha256=
|
|
77
|
+
datadog_checks/base/checks/win/wmi/base.py,sha256=QzwCEgzu9DF8hZwcwTNpomq0ApUWwZSNRS-oqbeJXG8,15155
|
|
76
78
|
datadog_checks/base/checks/win/wmi/counter_type.py,sha256=7772XGtWyPJXewyvaYyowVmDy9DxZ42ki9WD5XabuVE,5773
|
|
77
|
-
datadog_checks/base/checks/win/wmi/sampler.py,sha256=
|
|
79
|
+
datadog_checks/base/checks/win/wmi/sampler.py,sha256=NJlkALF8y1khAWRocpbH2LpwxtQb2F8fzBhCavvRX4w,23490
|
|
78
80
|
datadog_checks/base/checks/win/wmi/types.py,sha256=4E8e1ypp2P-eOxgLsRrftlauqvapWCuVaAPocqCrwVg,412
|
|
79
81
|
datadog_checks/base/checks/windows/__init__.py,sha256=suGjLrhZGp1UGpNapcVvIPp-u8PeaM8k3zplAZjycSo,115
|
|
80
82
|
datadog_checks/base/checks/windows/perf_counters/__init__.py,sha256=xM7W2r2ht-Kx_j0i8Duue_lEM2Bv_bq3vg0Es0AJ5KE,155
|
|
81
|
-
datadog_checks/base/checks/windows/perf_counters/base.py,sha256=
|
|
82
|
-
datadog_checks/base/checks/windows/perf_counters/connection.py,sha256=
|
|
83
|
+
datadog_checks/base/checks/windows/perf_counters/base.py,sha256=cXbQVwb496B-kuHaAM3fE3X33LMUbKoYC4FSSJKJrbc,7934
|
|
84
|
+
datadog_checks/base/checks/windows/perf_counters/connection.py,sha256=mG7TdSfSZkXFR6eU4Y-49K4ELJiqer6Cw4Y6FxeKEQY,3998
|
|
83
85
|
datadog_checks/base/checks/windows/perf_counters/constants.py,sha256=_aqAbatcu9eQv9NqbVCaQ9c5S-HkkiUERV5oqC3Dl5k,587
|
|
84
|
-
datadog_checks/base/checks/windows/perf_counters/counter.py,sha256
|
|
86
|
+
datadog_checks/base/checks/windows/perf_counters/counter.py,sha256=-qDXCf4Vsh2rd4-MLyG8H7czW6bd_SP8pypKGlwZSU8,33754
|
|
85
87
|
datadog_checks/base/checks/windows/perf_counters/transform.py,sha256=bZPxftDw0d1VFX49yiFIa-naGOYlKcMgpvueSRkgEz8,770
|
|
86
88
|
datadog_checks/base/checks/windows/perf_counters/utils.py,sha256=ov-48JNvZQ6KPEZxz6X0IYcAl3bVAFnM15-vlGfqsY0,4359
|
|
87
89
|
datadog_checks/base/checks/windows/perf_counters/utils_win32pdh_fix.py,sha256=nWTrAbB9VAD_DaaTrSBV2KDmBvipGFmI04-wDfnxUa8,7122
|
|
@@ -90,15 +92,15 @@ datadog_checks/base/checks/windows/perf_counters/transformers/count.py,sha256=gm
|
|
|
90
92
|
datadog_checks/base/checks/windows/perf_counters/transformers/gauge.py,sha256=c74fZS6FrdxDO6ZKovp17h2vhTImkaNR2OLes1r01oE,333
|
|
91
93
|
datadog_checks/base/checks/windows/perf_counters/transformers/monotonic_count.py,sha256=R5wWfDG9LkcbqrIdSc6dzjRwtAcp2r4VPuVFaqOlzi0,393
|
|
92
94
|
datadog_checks/base/checks/windows/perf_counters/transformers/rate.py,sha256=Pkxzl1XPbPto-5QriCojNh5WhMTjwDcQwqY_i2MQBS8,327
|
|
93
|
-
datadog_checks/base/checks/windows/perf_counters/transformers/service_check.py,sha256=
|
|
94
|
-
datadog_checks/base/checks/windows/perf_counters/transformers/temporal_percent.py,sha256=
|
|
95
|
-
datadog_checks/base/checks/windows/perf_counters/transformers/time_elapsed.py,sha256=
|
|
95
|
+
datadog_checks/base/checks/windows/perf_counters/transformers/service_check.py,sha256=ydeCgeUDMU7eKV_BwZCNicsCLOfosNdWamoHE8xkpwc,2217
|
|
96
|
+
datadog_checks/base/checks/windows/perf_counters/transformers/temporal_percent.py,sha256=DXu1kYZDlCN7zA2ljPzG6PxUrFMtbTTAeghPCjkDFvQ,1889
|
|
97
|
+
datadog_checks/base/checks/windows/perf_counters/transformers/time_elapsed.py,sha256=btTz2R_Xp5sTRWifDo8bZ4CQbIwJPMa6zR9vOCMzFt8,528
|
|
96
98
|
datadog_checks/base/stubs/__init__.py,sha256=wpWAR9v7BiTbbmTO6pVpshqa_z-PWaYTr33wSTZLz3c,272
|
|
97
99
|
datadog_checks/base/stubs/_util.py,sha256=ZDGtQa8F3cHf8-QvSVHMB4BGI3C9VgC7sGcGGvO0apI,1268
|
|
98
|
-
datadog_checks/base/stubs/aggregator.py,sha256=
|
|
100
|
+
datadog_checks/base/stubs/aggregator.py,sha256=bp4Z6UmwMcBpIdrUQgvTqNwO0gtNd5ogkBfm3Yr0-oo,25356
|
|
99
101
|
datadog_checks/base/stubs/common.py,sha256=ZGzF2dXy1uVFQGdG_bvz_pMMiULaBcpzra_k9wo9f04,1088
|
|
100
|
-
datadog_checks/base/stubs/datadog_agent.py,sha256=
|
|
101
|
-
datadog_checks/base/stubs/log.py,sha256=
|
|
102
|
+
datadog_checks/base/stubs/datadog_agent.py,sha256=eSL7dc2q8u_WNaq5Cdh2yerVlHjUgAAd3daxYgZGRyg,6007
|
|
103
|
+
datadog_checks/base/stubs/log.py,sha256=nXeI5OyNKRWu69nxz3ceAdhqnklqtyE4l6y8NPe_p08,854
|
|
102
104
|
datadog_checks/base/stubs/similar.py,sha256=3HO9htx9LV6pRaE1ZGKsPExavTbjPHPK6ZMM2BPYj3Y,8045
|
|
103
105
|
datadog_checks/base/stubs/tagging.py,sha256=zxLdPC4EqHxGiS_HEhbaOsL_s5nZIhN8BDkx2BATOqs,1439
|
|
104
106
|
datadog_checks/base/utils/__init__.py,sha256=TC0q7iCbNqcYjfU5azBNpCni8LAQYOfY6FADE3SZEPA,115
|
|
@@ -112,19 +114,18 @@ datadog_checks/base/utils/diagnose.py,sha256=eLMe0tISpkzS3yxVR83IHxorQJfHT_Xi6Cq
|
|
|
112
114
|
datadog_checks/base/utils/fips.py,sha256=vxm3K7wTQKYenP1LbXk7pmJ8WA6l367BTJGBNO0DkvQ,2490
|
|
113
115
|
datadog_checks/base/utils/functions.py,sha256=iGlybxR6aPPElNxNb2ELOzbk328j9OVBAxredJxdCRw,695
|
|
114
116
|
datadog_checks/base/utils/headers.py,sha256=0SSdC71jwaB61BODfusahCVr1c56GvT9iwt7cidcHP0,1779
|
|
115
|
-
datadog_checks/base/utils/http.py,sha256=
|
|
117
|
+
datadog_checks/base/utils/http.py,sha256=ePSzL7x_xsb1dnXJyU2fBXIgOU0p5UFZIpG2AX_jZZA,44651
|
|
116
118
|
datadog_checks/base/utils/limiter.py,sha256=YRTrPCX1S5EtHLVcP_-GEfzRots_LTcy1f_uHZVs90g,3027
|
|
117
|
-
datadog_checks/base/utils/network.py,sha256=YXo9JQgWUtFn4dFefWZap20OMmSReLSPOjgzodJbddw,1814
|
|
118
119
|
datadog_checks/base/utils/platform.py,sha256=wW8f6XKo4JHxvu1sN0DpLDmYjS_cCu8GoKvfTjIj4yM,2499
|
|
119
120
|
datadog_checks/base/utils/secrets.py,sha256=Tj5MBOoyGXXDWB3Hr-7UKDy5GV1NZJkFPY4T4v9PHHg,551
|
|
120
121
|
datadog_checks/base/utils/serialization.py,sha256=pcRUzZIUZkOsfnGDGbxeUwGXrSsFl_9rLhA0ekD_AZ8,975
|
|
121
|
-
datadog_checks/base/utils/subprocess_output.py,sha256=
|
|
122
|
-
datadog_checks/base/utils/tagging.py,sha256=
|
|
123
|
-
datadog_checks/base/utils/tailfile.py,sha256=
|
|
122
|
+
datadog_checks/base/utils/subprocess_output.py,sha256=Dbqxn8Fjo7f3jl-8E2Ow3cVkRi6rNoH547_ifMsLqVw,2612
|
|
123
|
+
datadog_checks/base/utils/tagging.py,sha256=a-0_pXGOwg4ewmDiJon7rM_96ZJvVpHVMwhy1J5RrEI,412
|
|
124
|
+
datadog_checks/base/utils/tailfile.py,sha256=QZmH8eCxeClFWRMZn6zDwgOx1y5dAXc5yI_uzECj0ak,3892
|
|
124
125
|
datadog_checks/base/utils/time.py,sha256=cNy7CtsJzSUMi7J-3WReZVUvNyYOGkJwItqJMY01qqA,1373
|
|
125
126
|
datadog_checks/base/utils/timeout.py,sha256=eOBZofFN-hOu5xJeMOF3ac_ofcy9EY6-kvmBvP4QEFg,2140
|
|
126
|
-
datadog_checks/base/utils/tls.py,sha256=
|
|
127
|
-
datadog_checks/base/utils/tracing.py,sha256=
|
|
127
|
+
datadog_checks/base/utils/tls.py,sha256=DoJqqpnWTC8up_UF4AL_UUBJ9Sb-1Fvwjd2gSxmiVBY,7434
|
|
128
|
+
datadog_checks/base/utils/tracing.py,sha256=2QZjQKNKvowRYFpqOQc4sUoYUWu6JJKJofk-rvstUgY,6076
|
|
128
129
|
datadog_checks/base/utils/tracking.py,sha256=FYIouqu3KB-JsxgxM1iX5Ipv_cWhs8zQOTN4SxXOkJ4,3701
|
|
129
130
|
datadog_checks/base/utils/agent/__init__.py,sha256=o3aWvy3PhykD_h7YT3s628O0W2YpHis0NlQsSV1PI04,115
|
|
130
131
|
datadog_checks/base/utils/agent/common.py,sha256=1XRsPJWdpmbxAKKBVHGBPUm4WHdviq0ovuggtpx7LWo,217
|
|
@@ -136,15 +137,15 @@ datadog_checks/base/utils/concurrency/__init__.py,sha256=ORssE5bXZuYua5UCLesGfPv
|
|
|
136
137
|
datadog_checks/base/utils/concurrency/limiter.py,sha256=is2ZpUEjfsI4nBGtXG2D0Zgv0GD38_i5jJQCkdzPW_Y,3170
|
|
137
138
|
datadog_checks/base/utils/db/__init__.py,sha256=EVTc2FtnHWLHXI3M79jyMn9ypZAMa9eqG3EKLAiMF-M,211
|
|
138
139
|
datadog_checks/base/utils/db/__init__.pyi,sha256=ewmGxxyJ52wAaYxNZahi2koEUnddfvHcn3HYxQ3RUr0,240
|
|
139
|
-
datadog_checks/base/utils/db/core.py,sha256=
|
|
140
|
-
datadog_checks/base/utils/db/query.py,sha256
|
|
140
|
+
datadog_checks/base/utils/db/core.py,sha256=bYanwXIqBzsSxK7b-Ofb0W1WiHbFBtKyYdUBonBLe_Q,11165
|
|
141
|
+
datadog_checks/base/utils/db/query.py,sha256=-PyxdqpbShkQ78h7sWnghQZVtjdLGVrm71n8OpHuPW4,14432
|
|
141
142
|
datadog_checks/base/utils/db/sql.py,sha256=oiEzQa_vC_w3U65VFrFCoQHWj5GQLLRlSO0CfiSlp4A,2490
|
|
142
143
|
datadog_checks/base/utils/db/sql_commenter.py,sha256=r_efK6TGRQxM_-Qj-ndEJdECk47J4nCFjkVyxu1XmvU,1522
|
|
143
144
|
datadog_checks/base/utils/db/statement_metrics.py,sha256=U7EtERkmFzfCtfyd3094fBaKQ-CuJxoRt-3AcDBCkIA,7087
|
|
144
145
|
datadog_checks/base/utils/db/timed_cache.py,sha256=a9Ks5KKUvExB6GOATXTSCLamVtLD919Dn6HpweGKtFw,2114
|
|
145
|
-
datadog_checks/base/utils/db/transform.py,sha256=
|
|
146
|
+
datadog_checks/base/utils/db/transform.py,sha256=H3JN8_MF0Pk0HaXvIZeX1A8iQrP8KBgS741MPeBiWDo,23969
|
|
146
147
|
datadog_checks/base/utils/db/types.py,sha256=OLX2Oq58JQPFBD4oqUpCLkAP7ovRGN_i1vFk1E0N8Lg,267
|
|
147
|
-
datadog_checks/base/utils/db/utils.py,sha256=
|
|
148
|
+
datadog_checks/base/utils/db/utils.py,sha256=_ocLUqRwY3AWDbAcvDP8DsJdX5SRfB5OURzKUqnT-Pw,21680
|
|
148
149
|
datadog_checks/base/utils/discovery/__init__.py,sha256=vPCOdsThBcBjFJRPhDm6IsZGOwk8HlvciwCe_l8dKLk,211
|
|
149
150
|
datadog_checks/base/utils/discovery/__init__.pyi,sha256=ScVLU1Njj9ekZmewltb0cULI6BylssVHfn4CcPNeyr8,173
|
|
150
151
|
datadog_checks/base/utils/discovery/cache.py,sha256=f9L3A7YZpZ-mpZpFIwjsa5ab9cZMGkqdetdr9EpalbI,887
|
|
@@ -156,9 +157,9 @@ datadog_checks/base/utils/format/json.py,sha256=Gy84c9l0zOy731qCDiy21HphZiC3w2wS
|
|
|
156
157
|
datadog_checks/base/utils/metadata/__init__.py,sha256=EVTc2FtnHWLHXI3M79jyMn9ypZAMa9eqG3EKLAiMF-M,211
|
|
157
158
|
datadog_checks/base/utils/metadata/__init__.pyi,sha256=WVov07aPKEdydcy8e5Ahd9CMT_DcQxiOtCqjGx1kSf4,180
|
|
158
159
|
datadog_checks/base/utils/metadata/constants.py,sha256=XHfPwvQMbyNE2FYmB_7XyWiGI0N2GxdBXbtXL4eDnic,464
|
|
159
|
-
datadog_checks/base/utils/metadata/core.py,sha256=
|
|
160
|
+
datadog_checks/base/utils/metadata/core.py,sha256=7rIKrfw1lNAocO9HBd2M6_g-cKEP2vmYOOPO6OkmuTk,4977
|
|
160
161
|
datadog_checks/base/utils/metadata/utils.py,sha256=03VpRqefooCt0VEAi9BvolZD3m3-uhT2r2QuJ2xc4D4,330
|
|
161
|
-
datadog_checks/base/utils/metadata/version.py,sha256=
|
|
162
|
+
datadog_checks/base/utils/metadata/version.py,sha256=rQ6_aHprA4dTCkeUMwbdBNvwSOlpOF7632sW264sdbs,1956
|
|
162
163
|
datadog_checks/base/utils/models/__init__.py,sha256=suGjLrhZGp1UGpNapcVvIPp-u8PeaM8k3zplAZjycSo,115
|
|
163
164
|
datadog_checks/base/utils/models/types.py,sha256=ybUEp9z_rDlr2-oIkVjEWB-mRAvUwoEDpAUcZQTEIIw,400
|
|
164
165
|
datadog_checks/base/utils/models/validation/__init__.py,sha256=aZVX38W1pkLHk7koHgK5Jn2POCT5QKKPGzW_w9Lggto,141
|
|
@@ -167,11 +168,11 @@ datadog_checks/base/utils/models/validation/utils.py,sha256=dIrRg8h5Xuk-QDsIyJKF
|
|
|
167
168
|
datadog_checks/base/utils/prometheus/__init__.py,sha256=pNLX20kXJrtQDIhFD6jnnIE18vF19MdAKAm34aOlg7w,205
|
|
168
169
|
datadog_checks/base/utils/prometheus/__init__.pyi,sha256=53Ssj7fP-yyvYk85kOebUX5Ie-bmHjH-bVKYn9X47Wc,193
|
|
169
170
|
datadog_checks/base/utils/prometheus/functions.py,sha256=xnTyg9iTes_83mWlc1Gs8FFQ1jSRY-lLPo5TCAFibys,1054
|
|
170
|
-
datadog_checks/base/utils/prometheus/metrics_pb2.py,sha256=
|
|
171
|
+
datadog_checks/base/utils/prometheus/metrics_pb2.py,sha256=i_7puABrfN4yCTk-vhOw3GF__5Q4aiDxKyXvtQad9so,3941
|
|
171
172
|
datadog_checks/base/utils/replay/__init__.py,sha256=ORssE5bXZuYua5UCLesGfPvcrQKcADHaDsXrUyfARF0,115
|
|
172
173
|
datadog_checks/base/utils/replay/constants.py,sha256=exDGsDgLI7u1GWveelXdgzWJTjxHoYJmQT7o7w1FCeM,659
|
|
173
|
-
datadog_checks/base/utils/replay/execute.py,sha256=
|
|
174
|
-
datadog_checks/base/utils/replay/redirect.py,sha256=
|
|
174
|
+
datadog_checks/base/utils/replay/execute.py,sha256=ZYaqVqtA3iA9gstslmEdDYWKkPSCRwO91rI5UcOUEUo,3285
|
|
175
|
+
datadog_checks/base/utils/replay/redirect.py,sha256=02qC0ioQiVxEFuTxB9Hbjr4u-L9rIImKoWWzhqJob5g,2959
|
|
175
176
|
datadog_checks/checks/__init__.py,sha256=djgfqnKs_OaGMDFQGlO5VdLQRxUAI-X4KEJLLlPpVIM,217
|
|
176
177
|
datadog_checks/checks/base.py,sha256=3wYbhugNA3Wlrt_-EEpBmJSSl8lHKuUtrRP-nV2KBfQ,161
|
|
177
178
|
datadog_checks/checks/network.py,sha256=5bfRHxmsUoaJclnCrB6CCe577pTfGZ1RVeGxdMzmr7w,189
|
|
@@ -184,7 +185,7 @@ datadog_checks/checks/libs/vmware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
|
184
185
|
datadog_checks/checks/libs/vmware/all_metrics.py,sha256=hJyiC_07hqqMjuuIcytAJv2KDnSgqWq2y-JpJwtxqMM,176
|
|
185
186
|
datadog_checks/checks/libs/vmware/basic_metrics.py,sha256=aDr0FNObjXfWb9lxRpmd5L16e-mrk07ZIkhnoLdMCZ8,178
|
|
186
187
|
datadog_checks/checks/libs/wmi/__init__.py,sha256=IwDDEDhDqPPU1j4PyveGkdu1CMv9kbfeK90IAvmBx3c,239
|
|
187
|
-
datadog_checks/checks/libs/wmi/sampler.py,sha256=
|
|
188
|
+
datadog_checks/checks/libs/wmi/sampler.py,sha256=48mB0zKJxVraJJq-tRscUJXAbLEbmZH5pCKKaVJR5FU,1153
|
|
188
189
|
datadog_checks/checks/openmetrics/__init__.py,sha256=lrkQscNZoLN6CodTtuHlDIA641v08eejFBhnjPFnksA,169
|
|
189
190
|
datadog_checks/checks/openmetrics/base_check.py,sha256=qczSEzuqEFj3ROSU4rtDy1Ih-7tBtsO4oFU-rX9qhR8,180
|
|
190
191
|
datadog_checks/checks/openmetrics/mixins.py,sha256=tbnPnXfI3abXUqTTfTA0BfoZNawHGxek6LBVFgt9Kig,176
|
|
@@ -218,6 +219,6 @@ datadog_checks/utils/tracing.py,sha256=HQbQakKM-Lw75MDkItaYJYipS6YO24Z_ymDVxDsx5
|
|
|
218
219
|
datadog_checks/utils/prometheus/__init__.py,sha256=8WwXnM9g1sfS5267QYCJX_hd8MZl5kRgBgQ_SzdNdXs,161
|
|
219
220
|
datadog_checks/utils/prometheus/functions.py,sha256=4vWsTGLgujHwdYZo0tlAQkqDPHofqUJM3k9eItJqERQ,197
|
|
220
221
|
datadog_checks/utils/prometheus/metrics_pb2.py,sha256=xg3UdUHe4TjeR4s13LUKZ2U1WVSt6U6zjsVRG6lX6dc,173
|
|
221
|
-
datadog_checks_base-37.
|
|
222
|
-
datadog_checks_base-37.
|
|
223
|
-
datadog_checks_base-37.
|
|
222
|
+
datadog_checks_base-37.16.0.dist-info/METADATA,sha256=DJlhTWQ8ALONgXmzOFGd8sIrtmZsInckNItfjHSj-Z4,4245
|
|
223
|
+
datadog_checks_base-37.16.0.dist-info/WHEEL,sha256=tkmg4JIqwd9H8mL30xA7crRmoStyCtGp0VWshokd1Jc,105
|
|
224
|
+
datadog_checks_base-37.16.0.dist-info/RECORD,,
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import socket
|
|
2
|
-
import ssl
|
|
3
|
-
|
|
4
|
-
from requests.adapters import HTTPAdapter, PoolManager
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def create_socket_connection(hostname, port=443, sock_type=socket.SOCK_STREAM, timeout=10):
|
|
8
|
-
"""See: https://github.com/python/cpython/blob/40ee9a3640d702bce127e9877c82a99ce817f0d1/Lib/socket.py#L691"""
|
|
9
|
-
err = None
|
|
10
|
-
try:
|
|
11
|
-
for res in socket.getaddrinfo(hostname, port, 0, sock_type):
|
|
12
|
-
af, socktype, proto, canonname, sa = res
|
|
13
|
-
sock = None
|
|
14
|
-
try:
|
|
15
|
-
sock = socket.socket(af, socktype, proto)
|
|
16
|
-
sock.settimeout(timeout)
|
|
17
|
-
sock.connect(sa)
|
|
18
|
-
# Break explicitly a reference cycle
|
|
19
|
-
err = None
|
|
20
|
-
return sock
|
|
21
|
-
|
|
22
|
-
except socket.error as _:
|
|
23
|
-
err = _
|
|
24
|
-
if sock is not None:
|
|
25
|
-
sock.close()
|
|
26
|
-
|
|
27
|
-
if err is not None:
|
|
28
|
-
raise err
|
|
29
|
-
else:
|
|
30
|
-
raise socket.error('No valid addresses found, try checking your IPv6 connectivity') # noqa: G
|
|
31
|
-
except socket.gaierror as e:
|
|
32
|
-
err_code, message = e.args
|
|
33
|
-
if err_code == socket.EAI_NODATA or err_code == socket.EAI_NONAME:
|
|
34
|
-
raise socket.error('Unable to resolve host, check your DNS: {}'.format(message)) # noqa: G
|
|
35
|
-
|
|
36
|
-
raise
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
class CertAdapter(HTTPAdapter):
|
|
40
|
-
def __init__(self, **kwargs):
|
|
41
|
-
self.certs = kwargs['certs']
|
|
42
|
-
super(CertAdapter, self).__init__()
|
|
43
|
-
|
|
44
|
-
def init_poolmanager(self, connections, maxsize, block=False, **pool_kwargs):
|
|
45
|
-
context = ssl.create_default_context()
|
|
46
|
-
for cert in self.certs:
|
|
47
|
-
context.load_verify_locations(cadata=cert)
|
|
48
|
-
pool_kwargs['ssl_context'] = context
|
|
49
|
-
self.poolmanager = PoolManager(num_pools=connections, maxsize=maxsize, block=block, strict=True, **pool_kwargs)
|
|
File without changes
|