dt-extensions-sdk 1.2.2__py3-none-any.whl → 1.2.3__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.
- {dt_extensions_sdk-1.2.2.dist-info → dt_extensions_sdk-1.2.3.dist-info}/METADATA +1 -1
- {dt_extensions_sdk-1.2.2.dist-info → dt_extensions_sdk-1.2.3.dist-info}/RECORD +8 -8
- {dt_extensions_sdk-1.2.2.dist-info → dt_extensions_sdk-1.2.3.dist-info}/WHEEL +1 -1
- dynatrace_extension/__about__.py +1 -1
- dynatrace_extension/sdk/callback.py +11 -1
- dynatrace_extension/sdk/extension.py +3 -1
- {dt_extensions_sdk-1.2.2.dist-info → dt_extensions_sdk-1.2.3.dist-info}/entry_points.txt +0 -0
- {dt_extensions_sdk-1.2.2.dist-info → dt_extensions_sdk-1.2.3.dist-info}/licenses/LICENSE.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: dt-extensions-sdk
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.3
|
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
|
@@ -1,4 +1,4 @@
|
|
1
|
-
dynatrace_extension/__about__.py,sha256=
|
1
|
+
dynatrace_extension/__about__.py,sha256=TLyHW1TFN8BFLjdtrH0-fQP5cpool1Nmic9L4C1gsy0,109
|
2
2
|
dynatrace_extension/__init__.py,sha256=BvQuknmA7ti3WJi3zEXZfY7aAxJrie37VNitWICsUvI,752
|
3
3
|
dynatrace_extension/cli/__init__.py,sha256=HCboY_eJPoqjFmoPDsBL8Jk6aNvank8K7JpkVrgwzUM,123
|
4
4
|
dynatrace_extension/cli/main.py,sha256=ZOqxZsaMJRZsqR3Og2a9h2PDlkyJE8tAny-p7Mb7dmA,17254
|
@@ -15,10 +15,10 @@ dynatrace_extension/cli/create/extension_template/extension_name/__init__.py.tem
|
|
15
15
|
dynatrace_extension/cli/create/extension_template/extension_name/__main__.py.template,sha256=Mr7kfekNfEBUapJh_xbySZD8jPyYDspZx3KAfnhdCUk,1258
|
16
16
|
dynatrace_extension/sdk/__init__.py,sha256=RsqQ1heGyCmSK3fhuEKAcxQIRCg4gEK0-eSkIehL5Nc,86
|
17
17
|
dynatrace_extension/sdk/activation.py,sha256=goTbT1tD2kn8xfyXFdTy_cTZNcFPJpgbvQM8HOzKECA,1480
|
18
|
-
dynatrace_extension/sdk/callback.py,sha256=
|
18
|
+
dynatrace_extension/sdk/callback.py,sha256=FJSkaBF895NZquUtpSj1I2vel2Rx-y-2da8mKX_pk4I,6307
|
19
19
|
dynatrace_extension/sdk/communication.py,sha256=gD4GOHOzWdRL_KrUWtC2s8-Jp8Csn5gjZl4mHO5Lk_4,17739
|
20
20
|
dynatrace_extension/sdk/event.py,sha256=J261imbFKpxfuAQ6Nfu3RRcsIQKKivy6fme1nww2g-8,388
|
21
|
-
dynatrace_extension/sdk/extension.py,sha256=
|
21
|
+
dynatrace_extension/sdk/extension.py,sha256=48MK9E4JhAxTFOabWDJ58uZqSmGNwTC62vL1RP_q_gM,41623
|
22
22
|
dynatrace_extension/sdk/helper.py,sha256=ZNrO9ao2hE3KQ934vAYD74k0fCr6QTG-_bAvbk9-hi8,6562
|
23
23
|
dynatrace_extension/sdk/metric.py,sha256=7VClzJCFJNDCxA-d69uTu1pdPtDZBTwq7fbafs_L6nQ,3690
|
24
24
|
dynatrace_extension/sdk/runtime.py,sha256=jyYsM1x-gMnW68eWq8IoZZZBarHgIcr_nVeGDDgpRDk,2802
|
@@ -27,8 +27,8 @@ dynatrace_extension/sdk/vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
|
|
27
27
|
dynatrace_extension/sdk/vendor/mureq/LICENSE,sha256=8AVcgZgiT_mvK1fOofXtRRr2f1dRXS_K21NuxQgP4VM,671
|
28
28
|
dynatrace_extension/sdk/vendor/mureq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
29
|
dynatrace_extension/sdk/vendor/mureq/mureq.py,sha256=znF4mvzk5L03CLNozRz8UpK-fMijmSkObDFwlbhwLUg,14656
|
30
|
-
dt_extensions_sdk-1.2.
|
31
|
-
dt_extensions_sdk-1.2.
|
32
|
-
dt_extensions_sdk-1.2.
|
33
|
-
dt_extensions_sdk-1.2.
|
34
|
-
dt_extensions_sdk-1.2.
|
30
|
+
dt_extensions_sdk-1.2.3.dist-info/METADATA,sha256=Bb83R0u5D4P42VsTWCgkBw8NP1LXhVj0oCaQdQS_9RA,2793
|
31
|
+
dt_extensions_sdk-1.2.3.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
32
|
+
dt_extensions_sdk-1.2.3.dist-info/entry_points.txt,sha256=pweyOCgENGHjOlT6_kXYaBPOrE3p18K0UettqnNlnoE,55
|
33
|
+
dt_extensions_sdk-1.2.3.dist-info/licenses/LICENSE.txt,sha256=3Zihv0lOVYHNfDkJC-tUAU6euP9r2NexsDW4w-zqgVk,1078
|
34
|
+
dt_extensions_sdk-1.2.3.dist-info/RECORD,,
|
dynatrace_extension/__about__.py
CHANGED
@@ -45,6 +45,7 @@ class WrappedCallback:
|
|
45
45
|
self.ok_count = 0 # counter per interval = 1 min by default
|
46
46
|
self.timeouts_count = 0 # counter per interval = 1 min by default
|
47
47
|
self.exception_count = 0 # counter per interval = 1 min by default
|
48
|
+
self.iterations = 0 # how many times we ran the callback iterator for this callback
|
48
49
|
|
49
50
|
def get_current_time_with_cluster_diff(self):
|
50
51
|
return datetime.now() + timedelta(milliseconds=self.cluster_time_diff)
|
@@ -56,7 +57,6 @@ class WrappedCallback:
|
|
56
57
|
self.running = True
|
57
58
|
self.executions_total += 1
|
58
59
|
self.executions_per_interval += 1
|
59
|
-
self.next_run = datetime.now() + self.interval
|
60
60
|
start_time = timer()
|
61
61
|
failed = False
|
62
62
|
try:
|
@@ -133,3 +133,13 @@ class WrappedCallback:
|
|
133
133
|
self.duration_interval_total = 0
|
134
134
|
self.exception_count = 0
|
135
135
|
self.executions_per_interval = 0
|
136
|
+
|
137
|
+
def get_next_execution_timestamp(self) -> float:
|
138
|
+
"""
|
139
|
+
Get the timestamp for the next execution of the callback
|
140
|
+
This is done using execution total, the interval and the start timestamp
|
141
|
+
:return: datetime
|
142
|
+
"""
|
143
|
+
return (
|
144
|
+
self.start_timestamp + timedelta(seconds=self.interval.total_seconds() * (self.iterations or 1))
|
145
|
+
).timestamp()
|
@@ -789,7 +789,9 @@ class Extension:
|
|
789
789
|
|
790
790
|
def _callback_iteration(self, callback: WrappedCallback):
|
791
791
|
self._callbacks_executor.submit(self._run_callback, callback)
|
792
|
-
|
792
|
+
callback.iterations += 1
|
793
|
+
next_timestamp = callback.get_next_execution_timestamp()
|
794
|
+
self._scheduler.enterabs(next_timestamp, 1, self._callback_iteration, (callback,))
|
793
795
|
|
794
796
|
def _start_extension_loop(self):
|
795
797
|
api_logger.debug(f"Starting main loop for monitoring configuration: '{self.monitoring_config_name}'")
|
File without changes
|
{dt_extensions_sdk-1.2.2.dist-info → dt_extensions_sdk-1.2.3.dist-info}/licenses/LICENSE.txt
RENAMED
File without changes
|