glide.opentelemetry
OpenTelemetry singleton for async client.
See glide_shared.opentelemetry module documentation for configuration details.
OpenTelemetry
Singleton class for managing OpenTelemetry configuration and operations.
This class provides a centralized way to initialize OpenTelemetry and control sampling behavior at runtime.
Example usage
from glide import OpenTelemetry, OpenTelemetryConfig, OpenTelemetryTracesConfig, OpenTelemetryMetricsConfig
OpenTelemetry.init(OpenTelemetryConfig(
traces=OpenTelemetryTracesConfig(
endpoint="http://localhost:4318/v1/traces",
sample_percentage=10 # Optional, defaults to 1. Can also be changed at runtime via set_sample_percentage().
),
metrics=OpenTelemetryMetricsConfig(
endpoint="http://localhost:4318/v1/metrics"
),
flush_interval_ms=1000 # Optional, defaults to 5000
))
Note
OpenTelemetry can only be initialized once per process. Subsequent calls to init() will be ignored. This is by design, as OpenTelemetry is a global resource that should be configured once at application startup.
Source code in doc-gen/valkey-glide/python/glide-async/python/glide/opentelemetry.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | |
init(config)
classmethod
Initialize the OpenTelemetry instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
OpenTelemetryConfig
|
The OpenTelemetry configuration |
required |
Note
OpenTelemetry can only be initialized once per process. Subsequent calls will be ignored and a warning will be logged.
Source code in doc-gen/valkey-glide/python/glide-async/python/glide/opentelemetry.py
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | |
is_initialized()
classmethod
Check if the OpenTelemetry instance is initialized.
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
True if the OpenTelemetry instance is initialized, False otherwise |
Source code in doc-gen/valkey-glide/python/glide-async/python/glide/opentelemetry.py
119 120 121 122 123 124 125 126 127 | |
get_sample_percentage()
classmethod
Get the sample percentage for traces.
Returns:
| Type | Description |
|---|---|
Optional[int]
|
Optional[int]: The sample percentage for traces only if OpenTelemetry is initialized and the traces config is set, otherwise None. |
Source code in doc-gen/valkey-glide/python/glide-async/python/glide/opentelemetry.py
129 130 131 132 133 134 135 136 137 138 139 140 | |
should_sample()
classmethod
Determines if the current request should be sampled for OpenTelemetry tracing. Uses the configured sample percentage to randomly decide whether to create a span for this request.
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
True if the request should be sampled, False otherwise |
Source code in doc-gen/valkey-glide/python/glide-async/python/glide/opentelemetry.py
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | |
set_sample_percentage(percentage)
classmethod
Set the percentage of requests to be sampled and traced. Must be a value between 0 and 100. This setting only affects traces, not metrics.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
percentage
|
int
|
The sample percentage 0-100 |
required |
Raises:
| Type | Description |
|---|---|
ConfigurationError
|
If OpenTelemetry is not initialized or traces config is not set |
Remarks
This method can be called at runtime to change the sampling percentage without reinitializing OpenTelemetry.
Source code in doc-gen/valkey-glide/python/glide-async/python/glide/opentelemetry.py
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | |