dt-extensions-sdk 1.1.13__tar.gz → 1.1.14__tar.gz
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.
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/PKG-INFO +2 -2
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/__about__.py +1 -1
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/callback.py +5 -12
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/extension.py +1 -1
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/pyproject.toml +3 -3
- dt_extensions_sdk-1.1.14/test.py +19 -0
- dt_extensions_sdk-1.1.14/tests/sdk/__init__.py +0 -0
- dt_extensions_sdk-1.1.13/test.py +0 -38
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/.github/workflows/gh-pages-docs.yml +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/.github/workflows/publish.yml +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/.gitignore +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/LICENSE.txt +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/README.md +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/dt-sdk-header.png +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/dt-sdk-logo.png +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/favicon.ico +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-01-new-extension.png +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-02-type.png +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-03-import.png +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-04-import-remote.png +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-05-activation.png +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-06-activation-config.png +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/events/event_severity.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/events/event_type.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/events/index.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/extension.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/metrics/index.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/metrics/metric.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/api/metrics/metric_type.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/assemble.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/build.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/create.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/gencerts.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/help.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/run.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/sign.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/upload.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/cli/wheel.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/conf.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/guides/extension_structure.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/guides/installation.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/guides/migration.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/index.rst +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/requirements.txt +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/__init__.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/__init__.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/__init__.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/create.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/.gitignore.template +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/README.md.template +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/activation.json.template +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/extension/activationSchema.json.template +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/extension/extension.yaml.template +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/extension_name/__init__.py.template +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/extension_name/__main__.py.template +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/extension_template/setup.py.template +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/main.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/schema.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/__init__.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/activation.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/communication.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/event.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/helper.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/metric.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/runtime.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/__init__.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/mureq/LICENSE +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/mureq/__init__.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/mureq/mureq.py +0 -0
- /dt_extensions_sdk-1.1.13/tests/cli/__init__.py → /dt_extensions_sdk-1.1.14/extension.pkl +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/__init__.py +0 -0
- {dt_extensions_sdk-1.1.13/tests/sdk → dt_extensions_sdk-1.1.14/tests/cli}/__init__.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/cli/test_dt_sdk.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/cli/test_templates.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/cli/test_types.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_activation.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_callback.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_communication.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_extension.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_metric.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_runtime_properties.py +0 -0
- {dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/tests/sdk/test_status.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.1
|
2
2
|
Name: dt-extensions-sdk
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.14
|
4
4
|
Project-URL: Documentation, https://github.com/dynatrace-extensions/dt-extensions-python-sdk#readme
|
5
5
|
Project-URL: Issues, https://github.com/dynatrace-extensions/dt-extensions-python-sdk/issues
|
6
6
|
Project-URL: Source, https://github.com/dynatrace-extensions/dt-extensions-python-sdk
|
@@ -5,9 +5,8 @@
|
|
5
5
|
import logging
|
6
6
|
import random
|
7
7
|
from datetime import datetime, timedelta
|
8
|
-
from inspect import signature
|
9
8
|
from timeit import default_timer as timer
|
10
|
-
from typing import Callable, Optional
|
9
|
+
from typing import Callable, Dict, Optional, Tuple
|
11
10
|
|
12
11
|
from .activation import ActivationType
|
13
12
|
from .communication import Status, StatusValue
|
@@ -19,8 +18,8 @@ class WrappedCallback:
|
|
19
18
|
interval: timedelta,
|
20
19
|
callback: Callable,
|
21
20
|
logger: logging.Logger,
|
22
|
-
args: Optional[
|
23
|
-
kwargs: Optional[
|
21
|
+
args: Optional[Tuple] = None,
|
22
|
+
kwargs: Optional[Dict] = None,
|
24
23
|
running_in_sim=False,
|
25
24
|
activation_type: Optional[ActivationType] = None,
|
26
25
|
):
|
@@ -47,12 +46,10 @@ class WrappedCallback:
|
|
47
46
|
self.timeouts_count = 0 # counter per interval = 1 min by default
|
48
47
|
self.exception_count = 0 # counter per interval = 1 min by default
|
49
48
|
|
50
|
-
self.callback_parameters = signature(callback).parameters
|
51
|
-
|
52
49
|
def get_current_time_with_cluster_diff(self):
|
53
50
|
return datetime.now() + timedelta(milliseconds=self.cluster_time_diff)
|
54
51
|
|
55
|
-
def __call__(self
|
52
|
+
def __call__(self):
|
56
53
|
self.logger.debug(f"Running scheduled callback {self}")
|
57
54
|
self.start_timestamp = self.get_current_time_with_cluster_diff()
|
58
55
|
self.running = True
|
@@ -62,11 +59,7 @@ class WrappedCallback:
|
|
62
59
|
start_time = timer()
|
63
60
|
failed = False
|
64
61
|
try:
|
65
|
-
|
66
|
-
kwargs = {"activation_config": activation_config, "extension_config": extension_config}
|
67
|
-
self.callback(*self.callback_args, **kwargs)
|
68
|
-
else:
|
69
|
-
self.callback(*self.callback_args)
|
62
|
+
self.callback(*self.callback_args, **self.callback_kwargs)
|
70
63
|
self.status = Status(StatusValue.OK)
|
71
64
|
except Exception as e:
|
72
65
|
failed = True
|
@@ -773,7 +773,7 @@ class Extension:
|
|
773
773
|
current_thread_id = threading.get_ident()
|
774
774
|
self._running_callbacks[current_thread_id] = callback
|
775
775
|
|
776
|
-
callback(
|
776
|
+
callback()
|
777
777
|
|
778
778
|
with self._sfm_metrics_lock:
|
779
779
|
self._callbackSfmReport[callback.name()] = callback
|
@@ -47,7 +47,7 @@ packages = ["dynatrace_extension"]
|
|
47
47
|
dependencies = [
|
48
48
|
"coverage[toml]>=6.5",
|
49
49
|
"pytest",
|
50
|
-
"typer",
|
50
|
+
"typer[all]",
|
51
51
|
"pyyaml",
|
52
52
|
"dt-cli>=1.6.13"
|
53
53
|
]
|
@@ -73,7 +73,7 @@ dependencies = [
|
|
73
73
|
"black>=23.1.0",
|
74
74
|
"mypy>=1.0.0",
|
75
75
|
"ruff>=0.0.243",
|
76
|
-
"typer",
|
76
|
+
"typer[all]",
|
77
77
|
"pyyaml"
|
78
78
|
]
|
79
79
|
|
@@ -100,7 +100,7 @@ dependencies = [
|
|
100
100
|
"sphinxcontrib-programoutput",
|
101
101
|
"wutch",
|
102
102
|
"dt-cli",
|
103
|
-
"typer",
|
103
|
+
"typer[all]",
|
104
104
|
"pyyaml",
|
105
105
|
"tomli"
|
106
106
|
]
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import time
|
2
|
+
from concurrent.futures import ProcessPoolExecutor
|
3
|
+
from datetime import timedelta
|
4
|
+
|
5
|
+
from dynatrace_extension import Extension
|
6
|
+
from dynatrace_extension.sdk.callback import WrappedCallback
|
7
|
+
|
8
|
+
|
9
|
+
class Mass(Extension):
|
10
|
+
def initialize(self):
|
11
|
+
with ProcessPoolExecutor(max_workers=4) as metric_executor:
|
12
|
+
metric_executor.submit(self.thing)
|
13
|
+
|
14
|
+
def thing(self):
|
15
|
+
print("EITA PORRA")
|
16
|
+
|
17
|
+
if __name__ == "__main__":
|
18
|
+
m = Mass()
|
19
|
+
m.run()
|
File without changes
|
dt_extensions_sdk-1.1.13/test.py
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
import time
|
2
|
-
from concurrent.futures import ThreadPoolExecutor
|
3
|
-
from threading import RLock, Lock
|
4
|
-
|
5
|
-
import logging
|
6
|
-
log = logging.getLogger(__name__)
|
7
|
-
st = logging.StreamHandler()
|
8
|
-
log.setLevel(logging.DEBUG)
|
9
|
-
fmt = logging.Formatter("%(asctime)s [%(levelname)s] %(name)s (%(threadName)s): %(message)s")
|
10
|
-
st.setFormatter(fmt)
|
11
|
-
log.addHandler(st)
|
12
|
-
|
13
|
-
class Test:
|
14
|
-
|
15
|
-
def __init__(self):
|
16
|
-
|
17
|
-
self.lock = RLock()
|
18
|
-
|
19
|
-
def sleep(self):
|
20
|
-
with self.lock:
|
21
|
-
log.info("Sleeping")
|
22
|
-
time.sleep(1)
|
23
|
-
log.info("Woke up")
|
24
|
-
|
25
|
-
def t1(self):
|
26
|
-
with ThreadPoolExecutor(max_workers=1) as executor:
|
27
|
-
executor.submit(self.sleep)
|
28
|
-
|
29
|
-
def run(self):
|
30
|
-
with ThreadPoolExecutor(max_workers=10) as executor:
|
31
|
-
for i in range(10):
|
32
|
-
executor.submit(self.t1)
|
33
|
-
|
34
|
-
|
35
|
-
if __name__ == "__main__":
|
36
|
-
Test().run()
|
37
|
-
|
38
|
-
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-01-new-extension.png
RENAMED
File without changes
|
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-03-import.png
RENAMED
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-04-import-remote.png
RENAMED
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/docs/_static/img/migrate-05-activation.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/__init__.py
RENAMED
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/cli/create/create.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/communication.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/__init__.py
RENAMED
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/mureq/LICENSE
RENAMED
File without changes
|
File without changes
|
{dt_extensions_sdk-1.1.13 → dt_extensions_sdk-1.1.14}/dynatrace_extension/sdk/vendor/mureq/mureq.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|