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
falcon~=2.0
grpcio~=1.27
kafka-python>=2.0,<3.0
mysql-connector-python~=8.0
psutil>=5
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.
"""
Instrument `kafka-python` to report instrumentation-kafka produced and consumed messages
Instrument kafka-python to report instrumentation-kafka produced and consumed messages
Usage
-----
@ -30,24 +30,21 @@ Usage
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
producer.send('my-topic', b'raw_bytes')
# report a span of type consumer with the default settings
consumer = KafkaConsumer('my-topic',
group_id='my-group',
bootstrap_servers=['localhost:9092'])
consumer = KafkaConsumer('my-topic', group_id='my-group', bootstrap_servers=['localhost:9092'])
for message in consumer:
# 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
produce_hook (Callable) - a function with extra user-defined logic to be performed before sending the message
this function signature is:
def produce_hook(span: Span, args, kwargs)
this function signature is:
def produce_hook(span: Span, args, kwargs)
consume_hook (Callable) - a function with extra user-defined logic to be performed after consuming a message
this function signature is:
def consume
_hook(span: Span, record: kafka.record.ABCRecord, args, kwargs)
this function signature is:
def consume_hook(span: Span, record: kafka.record.ABCRecord, args, kwargs)
for example:
.. code: python
from opentelemetry.instrumentation.kafka import KafkaInstrumentor
from kafka import KafkaProducer, KafkaConsumer