|
8 | 8 | import io
|
9 | 9 | import json
|
10 | 10 | import logging
|
11 |
| - |
12 |
| -# logging.handlers is not imported by logging. This extra import is necessary |
13 | 11 | import logging.handlers
|
14 | 12 | import os
|
15 | 13 | import platform
|
|
18 | 16 | from contextlib import contextmanager
|
19 | 17 | from copy import copy
|
20 | 18 | from datetime import datetime
|
21 |
| -from typing import TYPE_CHECKING, Optional, Union |
| 19 | +from typing import TYPE_CHECKING, Any, Optional, Union |
| 20 | + |
| 21 | +from typing_extensions import deprecated |
22 | 22 |
|
23 | 23 | if TYPE_CHECKING:
|
24 | 24 | from collections.abc import Iterator, Sequence
|
25 | 25 | from types import TracebackType
|
26 | 26 |
|
27 |
| - from opencensus.ext.azure.common.protocol import ( # type: ignore[import-untyped] |
28 |
| - Envelope, |
29 |
| - ) |
30 |
| - from opencensus.ext.azure.log_exporter import ( # type: ignore[import-untyped] |
31 |
| - AzureLogHandler, |
32 |
| - ) |
33 |
| - |
34 | 27 | import qcodes as qc
|
35 | 28 | from qcodes.utils import (
|
| 29 | + QCoDeSDeprecationWarning, |
36 | 30 | get_all_installed_package_versions,
|
37 | 31 | get_qcodes_user_path,
|
38 | 32 | is_qcodes_installed_editably,
|
39 | 33 | )
|
40 | 34 |
|
| 35 | +AzureLogHandler = Any |
| 36 | +Envelope = Any |
| 37 | + |
41 | 38 | log: logging.Logger = logging.getLogger(__name__)
|
42 | 39 |
|
43 | 40 | LevelType = Union[int, str]
|
@@ -201,11 +198,17 @@ def flush_telemetry_traces() -> None:
|
201 | 198 | telemetry_handler.flush()
|
202 | 199 |
|
203 | 200 |
|
| 201 | +@deprecated( |
| 202 | + "OpenCensus integration is deprecated. Please use your own telemetry integration as needed, we recommend OpenTelemetry", |
| 203 | + category=QCoDeSDeprecationWarning, |
| 204 | +) |
204 | 205 | def _create_telemetry_handler() -> "AzureLogHandler":
|
205 | 206 | """
|
206 | 207 | Configure, create, and return the telemetry handler
|
207 | 208 | """
|
208 |
| - from opencensus.ext.azure.log_exporter import AzureLogHandler |
| 209 | + from opencensus.ext.azure.log_exporter import ( # type: ignore[import-not-found] |
| 210 | + AzureLogHandler, |
| 211 | + ) |
209 | 212 | global telemetry_handler
|
210 | 213 |
|
211 | 214 | # The default_custom_dimensions will appear in the "customDimensions"
|
@@ -251,6 +254,7 @@ def callback_function(envelope: "Envelope") -> bool:
|
251 | 254 | connection_string=f"InstrumentationKey="
|
252 | 255 | f"{qc.config.telemetry.instrumentation_key}"
|
253 | 256 | )
|
| 257 | + assert telemetry_handler is not None |
254 | 258 | telemetry_handler.add_telemetry_processor(callback_function)
|
255 | 259 | telemetry_handler.setLevel(logging.INFO)
|
256 | 260 | telemetry_handler.addFilter(CustomDimensionsFilter(default_custom_dimensions))
|
@@ -312,7 +316,9 @@ def start_logger() -> None:
|
312 | 316 | logging.captureWarnings(capture=True)
|
313 | 317 |
|
314 | 318 | if qc.config.telemetry.enabled:
|
315 |
| - root_logger.addHandler(_create_telemetry_handler()) |
| 319 | + root_logger.addHandler( |
| 320 | + _create_telemetry_handler() # pyright: ignore[reportDeprecated] |
| 321 | + ) |
316 | 322 |
|
317 | 323 | log.info("QCoDes logger setup completed")
|
318 | 324 |
|
|
0 commit comments