Skip to content

Commit 5547c24

Browse files
Example deprecation of get_resource_data
1 parent 1e7f6b1 commit 5547c24

File tree

3 files changed

+40
-32
lines changed
  • exporter
    • opentelemetry-exporter-otlp-proto-common/src/opentelemetry/exporter/otlp/proto/common
    • opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc
  • opentelemetry-sdk

3 files changed

+40
-32
lines changed

exporter/opentelemetry-exporter-otlp-proto-common/src/opentelemetry/exporter/otlp/proto/common/__init__.py

+30-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import logging
1717
from collections.abc import Sequence
18-
from typing import Any, Optional, List
18+
from typing import Any, Optional, List, Callable, TypeVar, Dict
1919

2020
from .version import __version__
2121
from opentelemetry.sdk.util.instrumentation import InstrumentationScope
@@ -36,6 +36,9 @@
3636

3737
_logger = logging.getLogger(__name__)
3838

39+
TypingResourceT = TypeVar("TypingResourceT")
40+
ResourceDataT = TypeVar("ResourceDataT")
41+
3942

4043
def _encode_instrumentation_scope(
4144
instrumentation_scope: InstrumentationScope,
@@ -98,4 +101,30 @@ def _encode_attributes(
98101
return pb2_attributes
99102

100103

104+
def _get_resource_data(
105+
sdk_resource_scope_data: Dict[Resource, ResourceDataT],
106+
resource_class: Callable[..., TypingResourceT],
107+
name: str,
108+
) -> List[TypingResourceT]:
109+
110+
resource_data = []
111+
112+
for (
113+
sdk_resource,
114+
scope_data,
115+
) in sdk_resource_scope_data.items():
116+
collector_resource = PB2Resource(
117+
attributes=_encode_attributes(sdk_resource.attributes)
118+
)
119+
resource_data.append(
120+
resource_class(
121+
**{
122+
"resource": collector_resource,
123+
"scope_{}".format(name): scope_data.values(),
124+
}
125+
)
126+
)
127+
return resource_data
128+
129+
101130
__all__ = ["__version__"]

exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py

+9-31
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
from typing import Sequence as TypingSequence
2424
from typing import TypeVar
2525
from urllib.parse import urlparse
26+
27+
from deprecated import deprecated
28+
29+
from opentelemetry.exporter.otlp.proto.common import _get_resource_data
2630
from opentelemetry.sdk.trace import ReadableSpan
2731

2832
import backoff
@@ -42,7 +46,6 @@
4246
ArrayValue,
4347
KeyValue,
4448
)
45-
from opentelemetry.proto.resource.v1.resource_pb2 import Resource
4649
from opentelemetry.sdk.environment_variables import (
4750
OTEL_EXPORTER_OTLP_CERTIFICATE,
4851
OTEL_EXPORTER_OTLP_COMPRESSION,
@@ -130,41 +133,16 @@ def _translate_key_values(key: str, value: Any) -> KeyValue:
130133
return KeyValue(key=key, value=_translate_value(value))
131134

132135

136+
@deprecated(
137+
version="1.16.0",
138+
reason="Use one of the encoders from opentelemetry-exporter-otlp-proto-common instead",
139+
)
133140
def get_resource_data(
134141
sdk_resource_scope_data: Dict[SDKResource, ResourceDataT],
135142
resource_class: Callable[..., TypingResourceT],
136143
name: str,
137144
) -> List[TypingResourceT]:
138-
139-
resource_data = []
140-
141-
for (
142-
sdk_resource,
143-
scope_data,
144-
) in sdk_resource_scope_data.items():
145-
146-
collector_resource = Resource()
147-
148-
for key, value in sdk_resource.attributes.items():
149-
150-
try:
151-
# pylint: disable=no-member
152-
collector_resource.attributes.append(
153-
_translate_key_values(key, value)
154-
)
155-
except Exception as error: # pylint: disable=broad-except
156-
logger.exception(error)
157-
158-
resource_data.append(
159-
resource_class(
160-
**{
161-
"resource": collector_resource,
162-
"scope_{}".format(name): scope_data.values(),
163-
}
164-
)
165-
)
166-
167-
return resource_data
145+
return _get_resource_data(sdk_resource_scope_data, resource_class, name)
168146

169147

170148
def _load_credential_from_file(filepath) -> ChannelCredentials:

opentelemetry-sdk/pyproject.toml

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ classifiers = [
2626
"Typing :: Typed",
2727
]
2828
dependencies = [
29+
"Deprecated >= 1.2.6",
2930
"opentelemetry-api == 1.16.0.dev",
3031
"opentelemetry-semantic-conventions == 0.37b0.dev",
3132
"setuptools >= 16.0",

0 commit comments

Comments
 (0)