Docs
Tracking Methods
Amazon Kafka

Kafka

This guide demonstrates how to plug Mixpanel into an event collection pipeline by AWS Kafka. Once set up, your events will route to Mixpanel and be available in real-time for analytics. This approach is serverless and open-source, and takes ~5 minutes to set up.

To read messages from a Kafka topic and send them to Mixpanel, you'll need to use the confluent-kafka library for Kafka and the mixpanel library for Mixpanel.

Here's a sample Python code snippet:

from confluent_kafka import Consumer, KafkaError
from mixpanel import Mixpanel
 
# Kafka setup
kafka_config = {
    'bootstrap.servers': 'localhost:9092',
    'group.id': 'my-group',
    'auto.offset.reset': 'earliest'
}
consumer = Consumer(kafka_config)
consumer.subscribe(['my_topic'])
 
# Mixpanel setup
mp = Mixpanel('YOUR_MIXPANEL_TOKEN')
 
try:
    while True:
        msg = consumer.poll(1)
 
        if msg is None:
            continue
        if msg.error():
            if msg.error().code() == KafkaError._PARTITION_EOF:
                continue
            else:
                print(msg.error())
                break
 
        # Send to Mixpanel
        # The event_data contains the entire event. Consider extracting parsing the event for properties and explicitly assigning them instead.
        event_data = msg.value().decode('utf-8')
        mp.track('some_user_id', 'My Event', {'message': event_data})
 
finally:
    consumer.close()
 

To run this code:

  1. Install Kafka and start a Kafka broker.
  2. Install necessary Python packages:
    • pip install confluent-kafka
    • pip install mixpanel
  3. Replace 'YOUR_MIXPANEL_TOKEN' with your actual Mixpanel token.
  4. Run the code.

Google has a great reference (opens in a new tab) on best practices for handling both retryable and non-retryable errors.

Was this page useful?