Skip to content

Commit 87e70c4

Browse files
committed
chore: Hide classes that are not needed for the final user
Signed-off-by: Jayson Reis <[email protected]>
1 parent 7b3b43e commit 87e70c4

File tree

3 files changed

+50
-35
lines changed

3 files changed

+50
-35
lines changed

instrumentation/opentelemetry-instrumentation-pulsar/src/opentelemetry/instrumentation/pulsar/__init__.py

+28-26
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,13 @@ def consume(consumer, message):
6969

7070
import pulsar
7171
import wrapt
72-
from pulsar import Client, Consumer, Message, Producer
73-
74-
from opentelemetry import propagate, trace
7572
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
7673
from opentelemetry.instrumentation.utils import propagator, unwrap
7774
from opentelemetry.semconv.trace import MessagingOperationValues
7875
from opentelemetry.trace import Span, SpanKind, Tracer
76+
from pulsar import Client, Consumer, Message, Producer
7977

78+
from opentelemetry import propagate, trace
8079
from .package import _instruments
8180
from .utils import (
8281
_enrich_span,
@@ -90,14 +89,14 @@ def consume(consumer, message):
9089
PROPERTIES_KEY = "properties"
9190

9291

93-
class TracerMixin:
92+
class _TracerMixin:
9493
_tracer: Tracer
9594

9695
def _set_tracer(self, tracer):
9796
self._tracer = tracer
9897

9998

100-
class SpanMixin:
99+
class _SpanMixin:
101100
_current_span: Optional[Span] = None
102101

103102
def _set_current_span(self, current_span):
@@ -110,7 +109,7 @@ def _end_span(self):
110109
self._current_span = None
111110

112111

113-
class InstrumentedClient(TracerMixin, Client):
112+
class _InstrumentedClient(_TracerMixin, Client):
114113
_subscribe_signature = inspect.signature(Client.subscribe)
115114

116115
def subscribe(self, topic, *args, **kwargs):
@@ -125,7 +124,7 @@ def subscribe(self, topic, *args, **kwargs):
125124

126125
@wraps(message_listener)
127126
def wrapper( # pylint: disable=function-redefined
128-
consumer, message: InstrumentedMessage, *args, **kwargs
127+
consumer, message: _InstrumentedMessage, *args, **kwargs
129128
):
130129
ctx = propagator.extract(message.properties())
131130
span = self._tracer.start_span(
@@ -148,7 +147,7 @@ def wrapper( # pylint: disable=function-redefined
148147
return super().subscribe(*args, **bound_arguments.kwargs)
149148

150149

151-
class InstrumentedProducer(TracerMixin, Producer):
150+
class _InstrumentedProducer(_TracerMixin, Producer):
152151
_send_signature = inspect.signature(Producer.send)
153152

154153
def send(self, *args, **kwargs):
@@ -204,20 +203,20 @@ def _create_span(self):
204203
)
205204

206205

207-
class InstrumentedMessage(Message, SpanMixin):
206+
class _InstrumentedMessage(Message, _SpanMixin):
208207
pass
209208

210209

211-
class InstrumentedConsumer(TracerMixin, Consumer):
212-
_last_message: InstrumentedMessage = None
210+
class _InstrumentedConsumer(_TracerMixin, Consumer):
211+
_last_message: _InstrumentedMessage = None
213212

214213
def receive(self, *args, **kwargs):
215214
if self._last_message:
216215
self._last_message._end_span()
217216
with self._tracer.start_as_current_span(
218-
"recv", end_on_exit=True, kind=trace.SpanKind.CONSUMER
217+
"recv", end_on_exit=True, kind=trace.SpanKind.CONSUMER
219218
):
220-
message: InstrumentedMessage = super().receive(*args, **kwargs)
219+
message: _InstrumentedMessage = super().receive(*args, **kwargs)
221220
context = propagate.extract(message.properties())
222221
span = self._tracer.start_span(
223222
f"{self.topic()} process", context=context
@@ -229,19 +228,19 @@ def receive(self, *args, **kwargs):
229228

230229
return message
231230

232-
def acknowledge(self, message: InstrumentedMessage):
231+
def acknowledge(self, message: _InstrumentedMessage):
233232
message._end_span()
234233
super().acknowledge(message)
235234

236235
acknowledge.__doc__ = Consumer.acknowledge.__doc__
237236

238-
def negative_acknowledge(self, message: InstrumentedMessage):
237+
def negative_acknowledge(self, message: _InstrumentedMessage):
239238
message._end_span()
240239
super().negative_acknowledge(message)
241240

242241
negative_acknowledge.__doc__ = Consumer.negative_acknowledge.__doc__
243242

244-
def acknowledge_cumulative(self, message: InstrumentedMessage):
243+
def acknowledge_cumulative(self, message: _InstrumentedMessage):
245244
message._end_span()
246245
super().acknowledge_cumulative(message)
247246

@@ -268,10 +267,10 @@ def _instrument(self, **kwargs):
268267
self._original_pulsar_consumer = pulsar.Consumer
269268
self._original_pulsar_message = pulsar.Message
270269

271-
pulsar.Client = InstrumentedClient
272-
pulsar.Producer = InstrumentedProducer
273-
pulsar.Consumer = InstrumentedConsumer
274-
pulsar.Message = InstrumentedMessage
270+
pulsar.Client = _InstrumentedClient
271+
pulsar.Producer = _InstrumentedProducer
272+
pulsar.Consumer = _InstrumentedConsumer
273+
pulsar.Message = _InstrumentedMessage
275274

276275
tracer_provider = kwargs.get("tracer_provider")
277276
tracer = trace.get_tracer(
@@ -284,16 +283,19 @@ def init(wrapped, self, args, kwargs):
284283
wrapped(*args, **kwargs)
285284
self._set_tracer(tracer)
286285

287-
wrapt.wrap_function_wrapper(InstrumentedClient, "__init__", init)
288-
wrapt.wrap_function_wrapper(InstrumentedConsumer, "__init__", init)
289-
wrapt.wrap_function_wrapper(InstrumentedProducer, "__init__", init)
286+
wrapt.wrap_function_wrapper(_InstrumentedClient, "__init__", init)
287+
wrapt.wrap_function_wrapper(_InstrumentedConsumer, "__init__", init)
288+
wrapt.wrap_function_wrapper(_InstrumentedProducer, "__init__", init)
290289

291290
def _uninstrument(self, **kwargs):
292291
pulsar.Client = self._original_pulsar_client
293292
pulsar.Producer = self._original_pulsar_producer
294293
pulsar.Consumer = self._original_pulsar_consumer
295294
pulsar.Message = self._original_pulsar_message
296295

297-
unwrap(InstrumentedClient, "__init__")
298-
unwrap(InstrumentedConsumer, "__init__")
299-
unwrap(InstrumentedProducer, "__init__")
296+
unwrap(_InstrumentedClient, "__init__")
297+
unwrap(_InstrumentedConsumer, "__init__")
298+
unwrap(_InstrumentedProducer, "__init__")
299+
300+
301+
__all__ = (PulsarInstrumentor,)

instrumentation/opentelemetry-instrumentation-pulsar/src/opentelemetry/instrumentation/pulsar/utils.py

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
1+
# Copyright The OpenTelemetry Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
115
from typing import Optional
216

317
import pulsar
4-
518
from opentelemetry.semconv.trace import (
619
MessagingDestinationKindValues,
720
MessagingOperationValues,

instrumentation/opentelemetry-instrumentation-pulsar/tests/test_instrumentation.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
from unittest import TestCase
1818

1919
from opentelemetry.instrumentation.pulsar import (
20-
InstrumentedClient,
21-
InstrumentedConsumer,
22-
InstrumentedMessage,
23-
InstrumentedProducer,
2420
PulsarInstrumentor,
21+
_InstrumentedClient,
22+
_InstrumentedConsumer,
23+
_InstrumentedMessage,
24+
_InstrumentedProducer,
2525
)
2626

2727

@@ -34,13 +34,13 @@ def test_instrument_api(self) -> None:
3434

3535
client = Client("pulsar+ssl://localhost")
3636

37-
self.assertEqual(client.__class__, InstrumentedClient)
37+
self.assertEqual(client.__class__, _InstrumentedClient)
3838
producer = Producer()
3939

40-
self.assertEqual(producer.__class__, InstrumentedProducer)
40+
self.assertEqual(producer.__class__, _InstrumentedProducer)
4141

4242
consumer = Consumer()
43-
self.assertEqual(consumer.__class__, InstrumentedConsumer)
43+
self.assertEqual(consumer.__class__, _InstrumentedConsumer)
4444

4545
message = Message()
46-
self.assertEqual(message.__class__, InstrumentedMessage)
46+
self.assertEqual(message.__class__, _InstrumentedMessage)

0 commit comments

Comments
 (0)