esd-services-api-client 2.6.3a155.dev9__tar.gz → 2.6.3a160.dev2__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.
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/PKG-INFO +1 -1
- esd_services_api_client-2.6.3a160.dev2/esd_services_api_client/_version.py +1 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/abstractions/metrics_provider_factory.py +6 -9
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/algorithms/_baseline_algorithm.py +1 -1
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/algorithms/_remote_algorithm.py +1 -1
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/algorithms/forked_algorithm.py +1 -1
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/core/app_core.py +14 -7
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/pyproject.toml +1 -1
- esd_services_api_client-2.6.3a155.dev9/esd_services_api_client/_version.py +0 -1
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/LICENSE +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/README.md +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/beast/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/beast/v3/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/beast/v3/_connector.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/beast/v3/_models.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/boxer/README.md +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/boxer/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/boxer/_auth.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/boxer/_base.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/boxer/_connector.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/boxer/_models.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/common/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/crystal/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/crystal/_api_versions.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/crystal/_connector.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/crystal/_models.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/README.md +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/abstractions/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/abstractions/algrorithm_cache.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/abstractions/input_object.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/abstractions/logger_factory.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/abstractions/nexus_object.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/abstractions/socket_provider.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/algorithms/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/algorithms/distributed.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/algorithms/minimalistic.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/algorithms/recursive.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/configurations/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/configurations/algorithm_configuration.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/core/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/core/app_dependencies.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/core/serializers.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/exceptions/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/exceptions/_nexus_error.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/exceptions/cache_errors.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/exceptions/input_reader_error.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/exceptions/startup_error.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/input/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/input/input_processor.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/input/input_reader.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/input/payload_reader.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/modules/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/modules/astra_client_module.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/modules/mlflow_module.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/telemetry/__init__.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/telemetry/recorder.py +0 -0
- {esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/esd_services_api_client/nexus/telemetry/user_telemetry_recorder.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = 'v2.6.3a160.dev2'
|
@@ -89,18 +89,15 @@ class MetricsProviderFactory:
|
|
89
89
|
Creates a metrics provider enriched with additional tags for each metric emitted by this algorithm.
|
90
90
|
In case of DatadogMetricsProvider, takes care of UDP/UDS specific initialization.
|
91
91
|
"""
|
92
|
-
self._metrics_settings.
|
92
|
+
init_args = self._metrics_settings.init_args | {
|
93
|
+
"fixed_tags": self._metrics_settings.fixed_tags | self._global_tags
|
94
|
+
}
|
93
95
|
|
94
96
|
if self._metrics_class == DatadogMetricsProvider:
|
95
97
|
if self._metrics_settings.protocol == "udp":
|
96
|
-
return self._metrics_class.udp(**
|
98
|
+
return self._metrics_class.udp(**init_args)
|
97
99
|
|
98
100
|
if self._metrics_settings.protocol == "uds":
|
99
|
-
return self._metrics_class.uds(**
|
101
|
+
return self._metrics_class.uds(**init_args)
|
100
102
|
|
101
|
-
return self._metrics_class(
|
102
|
-
**(
|
103
|
-
self._metrics_settings.init_args
|
104
|
-
| {"fixed_tags": self._metrics_settings.fixed_tags}
|
105
|
-
)
|
106
|
-
)
|
103
|
+
return self._metrics_class(**init_args)
|
@@ -74,7 +74,7 @@ class BaselineAlgorithm(NexusObject[TPayload, AlgorithmResult]):
|
|
74
74
|
"""
|
75
75
|
|
76
76
|
@run_time_metrics_async(
|
77
|
-
metric_name="
|
77
|
+
metric_name="algorithm_run",
|
78
78
|
on_finish_message_template="Finished running {algorithm} in {elapsed:.2f}s seconds",
|
79
79
|
template_args={
|
80
80
|
"algorithm": self.__class__.alias().upper(),
|
@@ -92,7 +92,7 @@ class RemoteAlgorithm(NexusObject[TPayload, AlgorithmResult]):
|
|
92
92
|
"""
|
93
93
|
|
94
94
|
@run_time_metrics_async(
|
95
|
-
metric_name="
|
95
|
+
metric_name="algorithm_run",
|
96
96
|
on_finish_message_template="Launched a new remote {algorithm} in {elapsed:.2f}s seconds",
|
97
97
|
template_args={
|
98
98
|
"algorithm": self.__class__.alias().upper(),
|
@@ -131,7 +131,7 @@ class ForkedAlgorithm(NexusObject[TPayload, AlgorithmResult]):
|
|
131
131
|
"""
|
132
132
|
|
133
133
|
@run_time_metrics_async(
|
134
|
-
metric_name="
|
134
|
+
metric_name="algorithm_run",
|
135
135
|
on_finish_message_template="Finished running algorithm {algorithm} in {elapsed:.2f}s seconds",
|
136
136
|
template_args={
|
137
137
|
"algorithm": self.__class__.alias().upper(),
|
@@ -395,11 +395,6 @@ class Nexus:
|
|
395
395
|
scope=singleton,
|
396
396
|
)
|
397
397
|
|
398
|
-
self._injector.binder.bind(
|
399
|
-
metrics_provider.__class__,
|
400
|
-
to=metrics_provider,
|
401
|
-
scope=singleton,
|
402
|
-
)
|
403
398
|
except BaseException as ex: # pylint: disable=broad-except
|
404
399
|
bootstrap_logger.error("Error reading algorithm payload", ex)
|
405
400
|
|
@@ -420,7 +415,7 @@ class Nexus:
|
|
420
415
|
|
421
416
|
root_logger.info(
|
422
417
|
"Running algorithm {algorithm} on Nexus version {version}",
|
423
|
-
algorithm=algorithm.__class__.
|
418
|
+
algorithm=algorithm.__class__.alias().upper(),
|
424
419
|
version=__version__,
|
425
420
|
)
|
426
421
|
|
@@ -439,15 +434,20 @@ class Nexus:
|
|
439
434
|
root_logger.error(
|
440
435
|
"Algorithm {algorithm} run failed on Nexus version {version}",
|
441
436
|
ex,
|
442
|
-
algorithm=algorithm.__class__.
|
437
|
+
algorithm=algorithm.__class__.alias().upper(),
|
443
438
|
version=__version__,
|
444
439
|
)
|
440
|
+
metrics_provider.count("failed_runs", 1)
|
441
|
+
metrics_provider.count("successful_runs", 0)
|
445
442
|
|
446
443
|
await self._submit_result(
|
447
444
|
self._algorithm_run_task.result() if not ex else None,
|
448
445
|
self._algorithm_run_task.exception(),
|
449
446
|
)
|
450
447
|
|
448
|
+
metrics_provider.count("failed_runs", 0)
|
449
|
+
metrics_provider.count("successful_runs", 1)
|
450
|
+
|
451
451
|
# record telemetry
|
452
452
|
root_logger.info(
|
453
453
|
"Recording telemetry for the run {run_id}",
|
@@ -471,16 +471,23 @@ class Nexus:
|
|
471
471
|
on_complete_tasks, return_when=asyncio.FIRST_EXCEPTION
|
472
472
|
)
|
473
473
|
if len(pending) > 0:
|
474
|
+
metrics_provider.count("telemetry_reports_incomplete", 1)
|
474
475
|
root_logger.warning(
|
475
476
|
"Some post-processing operations did not complete or failed. Please review application logs for more information"
|
476
477
|
)
|
478
|
+
else:
|
479
|
+
metrics_provider.count("telemetry_reports_incomplete", 0)
|
480
|
+
|
477
481
|
for done_on_complete_task in done:
|
478
482
|
on_complete_task_exc = done_on_complete_task.exception()
|
479
483
|
if on_complete_task_exc:
|
484
|
+
metrics_provider.increment("telemetry_reports_failed")
|
480
485
|
root_logger.warning(
|
481
486
|
"Post processing task failed",
|
482
487
|
exception=on_complete_task_exc,
|
483
488
|
)
|
489
|
+
else:
|
490
|
+
metrics_provider.increment("telemetry_reports_succeeded")
|
484
491
|
else:
|
485
492
|
root_logger.info(
|
486
493
|
"No post processing tasks were defined for this run."
|
{esd_services_api_client-2.6.3a155.dev9 → esd_services_api_client-2.6.3a160.dev2}/pyproject.toml
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "esd-services-api-client"
|
3
|
-
version = "v2.6.
|
3
|
+
version = "v2.6.3a160.dev2"
|
4
4
|
description = "Python clients for ESD services"
|
5
5
|
authors = ["ECCO Sneaks & Data <esdsupport@ecco.com>"]
|
6
6
|
maintainers = ['GZU <gzu@ecco.com>', 'JRB <ext-jrb@ecco.com>', 'VISA <visa@ecco.com>']
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = 'v2.6.3a155.dev9'
|
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
|
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
|