exonware-xwsystem 0.0.1.407__py3-none-any.whl → 0.0.1.409__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.
- exonware/__init__.py +21 -12
- exonware/conf.py +89 -149
- exonware/xwsystem/__init__.py +18 -159
- exonware/xwsystem/caching/__init__.py +1 -1
- exonware/xwsystem/caching/base.py +1 -1
- exonware/xwsystem/caching/bloom_cache.py +1 -1
- exonware/xwsystem/caching/cache_manager.py +1 -1
- exonware/xwsystem/caching/conditional.py +1 -1
- exonware/xwsystem/caching/contracts.py +1 -1
- exonware/xwsystem/caching/decorators.py +1 -1
- exonware/xwsystem/caching/defs.py +1 -1
- exonware/xwsystem/caching/disk_cache.py +1 -1
- exonware/xwsystem/caching/distributed.py +1 -1
- exonware/xwsystem/caching/errors.py +1 -1
- exonware/xwsystem/caching/events.py +1 -1
- exonware/xwsystem/caching/eviction_strategies.py +1 -1
- exonware/xwsystem/caching/fluent.py +1 -1
- exonware/xwsystem/caching/integrity.py +1 -1
- exonware/xwsystem/caching/lfu_cache.py +1 -1
- exonware/xwsystem/caching/lfu_optimized.py +1 -1
- exonware/xwsystem/caching/lru_cache.py +1 -1
- exonware/xwsystem/caching/memory_bounded.py +1 -1
- exonware/xwsystem/caching/metrics_exporter.py +1 -1
- exonware/xwsystem/caching/observable_cache.py +1 -1
- exonware/xwsystem/caching/pluggable_cache.py +1 -1
- exonware/xwsystem/caching/rate_limiter.py +1 -1
- exonware/xwsystem/caching/read_through.py +1 -1
- exonware/xwsystem/caching/secure_cache.py +1 -1
- exonware/xwsystem/caching/serializable.py +1 -1
- exonware/xwsystem/caching/stats.py +1 -1
- exonware/xwsystem/caching/tagging.py +1 -1
- exonware/xwsystem/caching/ttl_cache.py +1 -1
- exonware/xwsystem/caching/two_tier_cache.py +1 -1
- exonware/xwsystem/caching/utils.py +1 -1
- exonware/xwsystem/caching/validation.py +1 -1
- exonware/xwsystem/caching/warming.py +1 -1
- exonware/xwsystem/caching/write_behind.py +1 -1
- exonware/xwsystem/cli/__init__.py +1 -1
- exonware/xwsystem/cli/args.py +1 -1
- exonware/xwsystem/cli/base.py +1 -1
- exonware/xwsystem/cli/colors.py +1 -1
- exonware/xwsystem/cli/console.py +1 -1
- exonware/xwsystem/cli/contracts.py +1 -1
- exonware/xwsystem/cli/defs.py +1 -1
- exonware/xwsystem/cli/errors.py +1 -1
- exonware/xwsystem/cli/progress.py +1 -1
- exonware/xwsystem/cli/prompts.py +1 -1
- exonware/xwsystem/cli/tables.py +1 -1
- exonware/xwsystem/conf.py +1 -21
- exonware/xwsystem/config/__init__.py +1 -1
- exonware/xwsystem/config/base.py +1 -1
- exonware/xwsystem/config/contracts.py +1 -1
- exonware/xwsystem/config/defaults.py +1 -1
- exonware/xwsystem/config/defs.py +1 -1
- exonware/xwsystem/config/errors.py +1 -1
- exonware/xwsystem/config/logging.py +1 -1
- exonware/xwsystem/config/logging_setup.py +1 -1
- exonware/xwsystem/config/performance.py +1 -1
- exonware/xwsystem/http/__init__.py +1 -1
- exonware/xwsystem/http/advanced_client.py +5 -1
- exonware/xwsystem/http/base.py +1 -1
- exonware/xwsystem/http/client.py +5 -1
- exonware/xwsystem/http/contracts.py +1 -1
- exonware/xwsystem/http/defs.py +1 -1
- exonware/xwsystem/http/errors.py +1 -1
- exonware/xwsystem/io/__init__.py +1 -1
- exonware/xwsystem/io/archive/__init__.py +1 -1
- exonware/xwsystem/io/archive/archive.py +1 -1
- exonware/xwsystem/io/archive/archive_files.py +1 -1
- exonware/xwsystem/io/archive/archivers.py +1 -1
- exonware/xwsystem/io/archive/base.py +1 -1
- exonware/xwsystem/io/archive/codec_integration.py +1 -1
- exonware/xwsystem/io/archive/compression.py +1 -1
- exonware/xwsystem/io/archive/formats/__init__.py +1 -1
- exonware/xwsystem/io/archive/formats/brotli_format.py +1 -1
- exonware/xwsystem/io/archive/formats/lz4_format.py +1 -1
- exonware/xwsystem/io/archive/formats/rar.py +1 -1
- exonware/xwsystem/io/archive/formats/sevenzip.py +1 -1
- exonware/xwsystem/io/archive/formats/squashfs_format.py +1 -1
- exonware/xwsystem/io/archive/formats/tar.py +1 -1
- exonware/xwsystem/io/archive/formats/wim_format.py +1 -1
- exonware/xwsystem/io/archive/formats/zip.py +1 -1
- exonware/xwsystem/io/archive/formats/zpaq_format.py +1 -1
- exonware/xwsystem/io/archive/formats/zstandard.py +1 -1
- exonware/xwsystem/io/base.py +1 -1
- exonware/xwsystem/io/codec/__init__.py +1 -1
- exonware/xwsystem/io/codec/base.py +1 -1
- exonware/xwsystem/io/codec/contracts.py +1 -1
- exonware/xwsystem/io/codec/registry.py +1 -1
- exonware/xwsystem/io/common/__init__.py +1 -1
- exonware/xwsystem/io/common/base.py +1 -1
- exonware/xwsystem/io/common/lock.py +1 -1
- exonware/xwsystem/io/common/watcher.py +1 -1
- exonware/xwsystem/io/contracts.py +1 -1
- exonware/xwsystem/io/defs.py +1 -1
- exonware/xwsystem/io/errors.py +1 -1
- exonware/xwsystem/io/facade.py +1 -1
- exonware/xwsystem/io/file/__init__.py +1 -1
- exonware/xwsystem/io/file/base.py +1 -1
- exonware/xwsystem/io/file/conversion.py +1 -1
- exonware/xwsystem/io/file/file.py +1 -1
- exonware/xwsystem/io/file/paged_source.py +1 -1
- exonware/xwsystem/io/file/paging/__init__.py +1 -1
- exonware/xwsystem/io/file/paging/byte_paging.py +1 -1
- exonware/xwsystem/io/file/paging/line_paging.py +1 -1
- exonware/xwsystem/io/file/paging/record_paging.py +1 -1
- exonware/xwsystem/io/file/paging/registry.py +1 -1
- exonware/xwsystem/io/file/source.py +1 -1
- exonware/xwsystem/io/filesystem/__init__.py +1 -1
- exonware/xwsystem/io/filesystem/base.py +1 -1
- exonware/xwsystem/io/filesystem/local.py +1 -1
- exonware/xwsystem/io/folder/__init__.py +1 -1
- exonware/xwsystem/io/folder/base.py +1 -1
- exonware/xwsystem/io/folder/folder.py +1 -1
- exonware/xwsystem/io/serialization/__init__.py +1 -1
- exonware/xwsystem/io/serialization/auto_serializer.py +1 -1
- exonware/xwsystem/io/serialization/base.py +2 -2
- exonware/xwsystem/io/serialization/contracts.py +1 -1
- exonware/xwsystem/io/serialization/defs.py +1 -1
- exonware/xwsystem/io/serialization/errors.py +1 -1
- exonware/xwsystem/io/serialization/flyweight.py +1 -1
- exonware/xwsystem/io/serialization/format_detector.py +1 -1
- exonware/xwsystem/io/serialization/formats/__init__.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/bson.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/cbor.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/marshal.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/msgpack.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/pickle.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/plistlib.py +1 -1
- exonware/xwsystem/io/serialization/formats/database/dbm.py +1 -1
- exonware/xwsystem/io/serialization/formats/database/shelve.py +1 -1
- exonware/xwsystem/io/serialization/formats/database/sqlite3.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/configparser.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/csv.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/formdata.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/json.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/json5.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/jsonlines.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/multipart.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/toml.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/xml.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/yaml.py +1 -1
- exonware/xwsystem/io/serialization/registry.py +1 -1
- exonware/xwsystem/io/serialization/serializer.py +1 -1
- exonware/xwsystem/io/serialization/utils/__init__.py +1 -1
- exonware/xwsystem/io/serialization/utils/path_ops.py +1 -1
- exonware/xwsystem/io/stream/__init__.py +1 -1
- exonware/xwsystem/io/stream/async_operations.py +1 -1
- exonware/xwsystem/io/stream/base.py +1 -1
- exonware/xwsystem/io/stream/codec_io.py +1 -1
- exonware/xwsystem/ipc/async_fabric.py +1 -1
- exonware/xwsystem/ipc/base.py +1 -1
- exonware/xwsystem/ipc/contracts.py +1 -1
- exonware/xwsystem/ipc/defs.py +1 -1
- exonware/xwsystem/ipc/errors.py +1 -1
- exonware/xwsystem/lazy_bootstrap.py +79 -0
- exonware/xwsystem/monitoring/base.py +1 -1
- exonware/xwsystem/monitoring/contracts.py +1 -1
- exonware/xwsystem/monitoring/defs.py +1 -1
- exonware/xwsystem/monitoring/errors.py +1 -1
- exonware/xwsystem/monitoring/performance_manager_generic.py +1 -1
- exonware/xwsystem/monitoring/system_monitor.py +1 -1
- exonware/xwsystem/monitoring/tracing.py +17 -15
- exonware/xwsystem/monitoring/tracker.py +1 -1
- exonware/xwsystem/operations/__init__.py +1 -1
- exonware/xwsystem/operations/base.py +1 -1
- exonware/xwsystem/operations/defs.py +1 -1
- exonware/xwsystem/operations/diff.py +1 -1
- exonware/xwsystem/operations/merge.py +1 -1
- exonware/xwsystem/operations/patch.py +1 -1
- exonware/xwsystem/patterns/base.py +1 -1
- exonware/xwsystem/patterns/contracts.py +1 -1
- exonware/xwsystem/patterns/defs.py +1 -1
- exonware/xwsystem/patterns/errors.py +1 -1
- exonware/xwsystem/patterns/registry.py +1 -1
- exonware/xwsystem/plugins/__init__.py +1 -1
- exonware/xwsystem/plugins/base.py +1 -1
- exonware/xwsystem/plugins/contracts.py +1 -1
- exonware/xwsystem/plugins/defs.py +1 -1
- exonware/xwsystem/plugins/errors.py +1 -1
- exonware/xwsystem/runtime/__init__.py +1 -1
- exonware/xwsystem/runtime/base.py +1 -1
- exonware/xwsystem/runtime/contracts.py +1 -1
- exonware/xwsystem/runtime/defs.py +1 -1
- exonware/xwsystem/runtime/env.py +1 -1
- exonware/xwsystem/runtime/errors.py +1 -1
- exonware/xwsystem/runtime/reflection.py +1 -1
- exonware/xwsystem/security/auth.py +1 -1
- exonware/xwsystem/security/base.py +1 -1
- exonware/xwsystem/security/contracts.py +1 -1
- exonware/xwsystem/security/crypto.py +1 -1
- exonware/xwsystem/security/defs.py +1 -1
- exonware/xwsystem/security/errors.py +1 -1
- exonware/xwsystem/security/hazmat.py +1 -1
- exonware/xwsystem/shared/__init__.py +1 -1
- exonware/xwsystem/shared/base.py +1 -1
- exonware/xwsystem/shared/contracts.py +1 -1
- exonware/xwsystem/shared/defs.py +1 -1
- exonware/xwsystem/shared/errors.py +1 -1
- exonware/xwsystem/structures/base.py +1 -1
- exonware/xwsystem/structures/contracts.py +1 -1
- exonware/xwsystem/structures/defs.py +1 -1
- exonware/xwsystem/structures/errors.py +1 -1
- exonware/xwsystem/threading/async_primitives.py +1 -1
- exonware/xwsystem/threading/base.py +1 -1
- exonware/xwsystem/threading/contracts.py +1 -1
- exonware/xwsystem/threading/defs.py +1 -1
- exonware/xwsystem/threading/errors.py +1 -1
- exonware/xwsystem/utils/base.py +1 -1
- exonware/xwsystem/utils/contracts.py +1 -1
- exonware/xwsystem/utils/dt/__init__.py +1 -1
- exonware/xwsystem/utils/dt/base.py +1 -1
- exonware/xwsystem/utils/dt/contracts.py +1 -1
- exonware/xwsystem/utils/dt/defs.py +1 -1
- exonware/xwsystem/utils/dt/errors.py +1 -1
- exonware/xwsystem/utils/dt/formatting.py +1 -1
- exonware/xwsystem/utils/dt/humanize.py +1 -1
- exonware/xwsystem/utils/dt/parsing.py +1 -1
- exonware/xwsystem/utils/dt/timezone_utils.py +1 -1
- exonware/xwsystem/utils/errors.py +1 -1
- exonware/xwsystem/utils/test_runner.py +1 -1
- exonware/xwsystem/utils/utils_contracts.py +1 -1
- exonware/xwsystem/validation/__init__.py +1 -1
- exonware/xwsystem/validation/base.py +1 -1
- exonware/xwsystem/validation/contracts.py +1 -1
- exonware/xwsystem/validation/declarative.py +1 -1
- exonware/xwsystem/validation/defs.py +1 -1
- exonware/xwsystem/validation/errors.py +1 -1
- exonware/xwsystem/validation/fluent_validator.py +1 -1
- exonware/xwsystem/version.py +2 -2
- {exonware_xwsystem-0.0.1.407.dist-info → exonware_xwsystem-0.0.1.409.dist-info}/METADATA +3 -3
- exonware_xwsystem-0.0.1.409.dist-info/RECORD +274 -0
- exonware/xwsystem/_lazy_bootstrap.py +0 -77
- exonware/xwsystem/utils/lazy_package/ARCHITECTURE.md +0 -820
- exonware/xwsystem/utils/lazy_package/__init__.py +0 -268
- exonware/xwsystem/utils/lazy_package/config.py +0 -163
- exonware/xwsystem/utils/lazy_package/lazy_base.py +0 -465
- exonware/xwsystem/utils/lazy_package/lazy_contracts.py +0 -290
- exonware/xwsystem/utils/lazy_package/lazy_core.py +0 -2248
- exonware/xwsystem/utils/lazy_package/lazy_errors.py +0 -253
- exonware/xwsystem/utils/lazy_package/lazy_state.py +0 -86
- exonware_xwsystem-0.0.1.407.dist-info/RECORD +0 -282
- {exonware_xwsystem-0.0.1.407.dist-info → exonware_xwsystem-0.0.1.409.dist-info}/WHEEL +0 -0
- {exonware_xwsystem-0.0.1.407.dist-info → exonware_xwsystem-0.0.1.409.dist-info}/licenses/LICENSE +0 -0
exonware/xwsystem/ipc/base.py
CHANGED
exonware/xwsystem/ipc/defs.py
CHANGED
exonware/xwsystem/ipc/errors.py
CHANGED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Minimal-intrusion lazy mode bootstrap for xwsystem.
|
|
3
|
+
|
|
4
|
+
This module provides a simple one-line integration to enable optimized lazy mode
|
|
5
|
+
for xwsystem using the fastest mode combination from benchmarks.
|
|
6
|
+
|
|
7
|
+
Company: eXonware.com
|
|
8
|
+
Author: Eng. Muhammad AlShehri
|
|
9
|
+
Email: connect@exonware.com
|
|
10
|
+
Version: 0.0.1.409
|
|
11
|
+
Generation Date: 19-Nov-2025
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
# Fastest mode from benchmarks: cached + full (1.482 ms - fastest overall)
|
|
15
|
+
_OPTIMAL_LOAD_MODE = "cached" # LazyLoadMode.CACHED
|
|
16
|
+
_OPTIMAL_INSTALL_MODE = "full" # LazyInstallMode.FULL
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _bootstrap_lazy_mode() -> None:
|
|
20
|
+
"""
|
|
21
|
+
Bootstrap lazy mode for xwsystem with optimal performance settings.
|
|
22
|
+
|
|
23
|
+
Uses fastest mode from benchmarks:
|
|
24
|
+
- Load Mode: CACHED (fastest for light/enterprise loads)
|
|
25
|
+
- Install Mode: FULL (fastest overall: 1.482 ms)
|
|
26
|
+
|
|
27
|
+
This is completely non-intrusive:
|
|
28
|
+
- Only activates if xwlazy is installed
|
|
29
|
+
- Zero overhead when xwlazy is not available
|
|
30
|
+
- Scoped to xwsystem package only
|
|
31
|
+
- No interference with xwsystem's own imports
|
|
32
|
+
"""
|
|
33
|
+
try:
|
|
34
|
+
from xwlazy.lazy import (
|
|
35
|
+
config_package_lazy_install_enabled,
|
|
36
|
+
install_import_hook,
|
|
37
|
+
LazyLoadMode,
|
|
38
|
+
LazyInstallMode,
|
|
39
|
+
)
|
|
40
|
+
from xwlazy.host.packages import register_host_package
|
|
41
|
+
|
|
42
|
+
# Register xwsystem as host package (for serialization prefixes)
|
|
43
|
+
register_host_package(
|
|
44
|
+
"xwsystem",
|
|
45
|
+
module_prefixes=(
|
|
46
|
+
"exonware.xwsystem.io.serialization.",
|
|
47
|
+
"exonware.xwsystem.io.archive.formats.",
|
|
48
|
+
"xwsystem.io.serialization.",
|
|
49
|
+
"xwsystem.io.archive.formats.",
|
|
50
|
+
),
|
|
51
|
+
method_prefixes=(
|
|
52
|
+
"exonware.xwsystem.io.serialization.",
|
|
53
|
+
"xwsystem.io.serialization.",
|
|
54
|
+
),
|
|
55
|
+
auto_config=False, # We handle config ourselves
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
# Configure with optimal mode from benchmarks
|
|
59
|
+
config_package_lazy_install_enabled(
|
|
60
|
+
"xwsystem",
|
|
61
|
+
enabled=True,
|
|
62
|
+
load_mode=LazyLoadMode(_OPTIMAL_LOAD_MODE),
|
|
63
|
+
install_mode=LazyInstallMode(_OPTIMAL_INSTALL_MODE),
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# Install the import hook
|
|
67
|
+
install_import_hook("xwsystem")
|
|
68
|
+
|
|
69
|
+
except ImportError:
|
|
70
|
+
# xwlazy not installed - silently continue (non-intrusive)
|
|
71
|
+
pass
|
|
72
|
+
except Exception:
|
|
73
|
+
# Best-effort: xwsystem must continue even if lazy setup fails
|
|
74
|
+
pass
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
# Auto-bootstrap on module import (non-intrusive - only if xwlazy is available)
|
|
78
|
+
_bootstrap_lazy_mode()
|
|
79
|
+
|
|
@@ -10,7 +10,7 @@ health monitoring, and recommendations without being tied to specific implementa
|
|
|
10
10
|
Company: eXonware.com
|
|
11
11
|
Author: Eng. Muhammad AlShehri
|
|
12
12
|
Email: connect@exonware.com
|
|
13
|
-
Version: 0.0.1.
|
|
13
|
+
Version: 0.0.1.409
|
|
14
14
|
Generation Date: November 04, 2025
|
|
15
15
|
"""
|
|
16
16
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Company: eXonware.com
|
|
3
3
|
Author: Eng. Muhammad AlShehri
|
|
4
4
|
Email: connect@exonware.com
|
|
5
|
-
Version: 0.0.1.
|
|
5
|
+
Version: 0.0.1.409
|
|
6
6
|
Generation Date: September 05, 2025
|
|
7
7
|
|
|
8
8
|
Distributed Tracing Integration for Enterprise Observability
|
|
@@ -26,7 +26,6 @@ from .defs import SpanKind
|
|
|
26
26
|
from ..version import __version__
|
|
27
27
|
|
|
28
28
|
from opentelemetry import trace
|
|
29
|
-
from opentelemetry.exporter.jaeger.thrift import JaegerExporter
|
|
30
29
|
from opentelemetry.sdk.trace import TracerProvider
|
|
31
30
|
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
|
32
31
|
|
|
@@ -64,7 +63,7 @@ class OpenTelemetryTracer(ATracingProvider):
|
|
|
64
63
|
def __init__(
|
|
65
64
|
self,
|
|
66
65
|
service_name: str = "xwsystem",
|
|
67
|
-
|
|
66
|
+
otlp_endpoint: Optional[str] = None,
|
|
68
67
|
zipkin_endpoint: Optional[str] = None
|
|
69
68
|
):
|
|
70
69
|
"""
|
|
@@ -72,7 +71,7 @@ class OpenTelemetryTracer(ATracingProvider):
|
|
|
72
71
|
|
|
73
72
|
Args:
|
|
74
73
|
service_name: Name of the service
|
|
75
|
-
|
|
74
|
+
otlp_endpoint: Optional OTLP collector endpoint (modern standard, works with Jaeger/Zipkin)
|
|
76
75
|
zipkin_endpoint: Optional Zipkin endpoint
|
|
77
76
|
"""
|
|
78
77
|
# OpenTelemetry is now required
|
|
@@ -85,26 +84,29 @@ class OpenTelemetryTracer(ATracingProvider):
|
|
|
85
84
|
self.tracer = trace.get_tracer(service_name)
|
|
86
85
|
|
|
87
86
|
# Set up exporters
|
|
88
|
-
if
|
|
89
|
-
self.
|
|
87
|
+
if otlp_endpoint:
|
|
88
|
+
self._setup_otlp_exporter(otlp_endpoint)
|
|
90
89
|
|
|
91
90
|
if zipkin_endpoint:
|
|
92
91
|
self._setup_zipkin_exporter(zipkin_endpoint)
|
|
93
92
|
|
|
94
|
-
def
|
|
95
|
-
"""Set up
|
|
93
|
+
def _setup_otlp_exporter(self, endpoint: str) -> None:
|
|
94
|
+
"""Set up OTLP exporter (modern standard, Python 3.8+ only, no legacy deps)."""
|
|
96
95
|
try:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
agent_port=6831,
|
|
100
|
-
collector_endpoint=endpoint,
|
|
101
|
-
)
|
|
96
|
+
# Lazy import to avoid pulling in dependencies unless actually used
|
|
97
|
+
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
|
|
102
98
|
|
|
103
|
-
|
|
99
|
+
otlp_exporter = OTLPSpanExporter(endpoint=endpoint)
|
|
100
|
+
span_processor = BatchSpanProcessor(otlp_exporter)
|
|
104
101
|
trace.get_tracer_provider().add_span_processor(span_processor)
|
|
102
|
+
logger.info(f"OTLP exporter configured for endpoint: {endpoint}")
|
|
105
103
|
|
|
104
|
+
except ImportError:
|
|
105
|
+
logger.warning(
|
|
106
|
+
"OTLP exporter not available. Install with: pip install opentelemetry-exporter-otlp-proto-http"
|
|
107
|
+
)
|
|
106
108
|
except Exception as e:
|
|
107
|
-
logger.warning(f"Failed to setup
|
|
109
|
+
logger.warning(f"Failed to setup OTLP exporter: {e}")
|
|
108
110
|
|
|
109
111
|
def _setup_zipkin_exporter(self, endpoint: str) -> None:
|
|
110
112
|
"""Set up Zipkin exporter."""
|
exonware/xwsystem/runtime/env.py
CHANGED