add python-kafka to docs (#1552)

This commit is contained in:
Nimrod Shlagman
2023-01-07 07:19:39 +02:00
committed by GitHub
parent 3dc2f8ee30
commit 6d1550bb0b
3 changed files with 20 additions and 12 deletions

View File

@ -29,6 +29,7 @@ elasticsearch>=2.0,<9.0
flask~=2.0 flask~=2.0
falcon~=2.0 falcon~=2.0
grpcio~=1.27 grpcio~=1.27
kafka-python>=2.0,<3.0
mysql-connector-python~=8.0 mysql-connector-python~=8.0
psutil>=5 psutil>=5
pika>=0.12.0 pika>=0.12.0

View File

@ -0,0 +1,10 @@
.. include:: ../../../instrumentation/opentelemetry-instrumentation-kafka-python/README.rst
:end-before: References
API
---
.. automodule:: opentelemetry.instrumentation.kafka
:members:
:undoc-members:
:show-inheritance:

View File

@ -13,7 +13,7 @@
# limitations under the License. # limitations under the License.
""" """
Instrument `kafka-python` to report instrumentation-kafka produced and consumed messages Instrument kafka-python to report instrumentation-kafka produced and consumed messages
Usage Usage
----- -----
@ -30,24 +30,21 @@ Usage
producer = KafkaProducer(bootstrap_servers=['localhost:9092']) producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
producer.send('my-topic', b'raw_bytes') producer.send('my-topic', b'raw_bytes')
# report a span of type consumer with the default settings # report a span of type consumer with the default settings
consumer = KafkaConsumer('my-topic', consumer = KafkaConsumer('my-topic', group_id='my-group', bootstrap_servers=['localhost:9092'])
group_id='my-group',
bootstrap_servers=['localhost:9092'])
for message in consumer: for message in consumer:
# process message # process message
The `_instrument` method accepts the following keyword args: The _instrument() method accepts the following keyword args:
tracer_provider (TracerProvider) - an optional tracer provider tracer_provider (TracerProvider) - an optional tracer provider
produce_hook (Callable) - a function with extra user-defined logic to be performed before sending the message produce_hook (Callable) - a function with extra user-defined logic to be performed before sending the message
this function signature is: this function signature is:
def produce_hook(span: Span, args, kwargs) def produce_hook(span: Span, args, kwargs)
consume_hook (Callable) - a function with extra user-defined logic to be performed after consuming a message consume_hook (Callable) - a function with extra user-defined logic to be performed after consuming a message
this function signature is: this function signature is:
def consume def consume_hook(span: Span, record: kafka.record.ABCRecord, args, kwargs)
_hook(span: Span, record: kafka.record.ABCRecord, args, kwargs)
for example: for example:
.. code: python .. code: python
from opentelemetry.instrumentation.kafka import KafkaInstrumentor from opentelemetry.instrumentation.kafka import KafkaInstrumentor
from kafka import KafkaProducer, KafkaConsumer from kafka import KafkaProducer, KafkaConsumer