open-telemetry / open-telemetry/opentelemetry-python-contrib

Add Kafka Consumer Group to Kafka Instrumentation

Open Beginner friendly
#4,593 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.