open-telemetry / open-telemetry/opentelemetry-python-contrib
Add Kafka Consumer Group to Kafka Instrumentation
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.1k
- Forks
- 1.1k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 16
Description
What problem do you want to solve?
When a Kafka topic is shared among multiple consumer groups, the current Kafka consumer span doesn't include consumer group information. As a result, it is impossible to distinguish which consumer group a given span belongs to.
The attribute of consumer group is defined as messaging.consumer.group.name in semconv
Describe the solution you'd like
Extract the group id from the instance config as shown below:
consumer_group = (KafkaPropertiesExtractor.extract_consumer_group(instance))
def extract_consumer_group(instance) -> Optional[str]:
try:
return instance.config.get("group_id")
except AttributeError:
return None
Describe alternatives you've considered
No response
Additional Context
No response
Would you like to implement a fix?
None
Tip
React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Kafka instrumentation's consumer span and the proposed KafkaPropertiesExtractor.extract_consumer_group entry point. Verify that the consumer group's instance config value is associated with the messaging.consumer.group.name semantic-convention attribute and that the resulting span distinguishes consumer groups.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kafka, python
- Domain
- observability, stream-processing
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100