mirror of
https://github.com/umami-software/umami.git
synced 2025-12-08 05:12:36 +01:00
check in producer test logic
This commit is contained in:
parent
6f4824582d
commit
d952214536
10 changed files with 338 additions and 17 deletions
76
kafka/eventProducer.js
Normal file
76
kafka/eventProducer.js
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
// import the `Kafka` instance from the kafkajs library
|
||||
const { Kafka } = require('kafkajs');
|
||||
|
||||
// the client ID lets kafka know who's producing the messages
|
||||
const clientId = 'my-app';
|
||||
// we can define the list of brokers in the cluster
|
||||
const brokers = ['localhost:9092', 'localhost:9093', 'localhost:9094'];
|
||||
// this is the topic to which we want to write messages
|
||||
const topic = 'event';
|
||||
|
||||
// initialize a new kafka client and initialize a producer from it
|
||||
const kafka = new Kafka({ clientId, brokers });
|
||||
const { Partitioners } = require('kafkajs');
|
||||
|
||||
const producer = kafka.producer({ createPartitioner: Partitioners.DefaultPartitioner });
|
||||
|
||||
// we define an async function that writes a new message each second
|
||||
async function produce_event() {
|
||||
await producer.connect();
|
||||
let i = 0;
|
||||
|
||||
// after the produce has connected, we start an interval timer
|
||||
setInterval(async () => {
|
||||
try {
|
||||
// send a message to the configured topic with
|
||||
// the key and value formed from the current value of `i`
|
||||
let y = Math.random()
|
||||
.toString(36)
|
||||
.replace(/[^a-z]+/g, '')
|
||||
.substr(0, 5);
|
||||
let z = Math.random()
|
||||
.toString(36)
|
||||
.replace(/[^a-z]+/g, '')
|
||||
.substr(0, 5);
|
||||
let x = {
|
||||
event_uuid: '00fea66e-a433-536d-a13d-2d873fab0a08',
|
||||
website_id: i,
|
||||
session_uuid: '00fea66e-a433-536d-a13d-2d873fab0a08',
|
||||
created_at: '2020-07-18 11:53:33',
|
||||
url: y,
|
||||
event_data: z,
|
||||
};
|
||||
|
||||
await producer.send({
|
||||
topic,
|
||||
messages: [
|
||||
{
|
||||
key: 'my-key',
|
||||
value: JSON.stringify(x),
|
||||
},
|
||||
{
|
||||
key: 'my-key',
|
||||
value: JSON.stringify(x),
|
||||
},
|
||||
{
|
||||
key: 'my-key',
|
||||
value: JSON.stringify(x),
|
||||
},
|
||||
{
|
||||
key: 'my-key',
|
||||
value: JSON.stringify(x),
|
||||
},
|
||||
{
|
||||
key: 'my-key',
|
||||
value: JSON.stringify(x),
|
||||
},
|
||||
],
|
||||
});
|
||||
i++;
|
||||
} catch (err) {
|
||||
console.error('could not write message ' + err);
|
||||
}
|
||||
}, 4);
|
||||
}
|
||||
|
||||
module.exports = produce_event;
|
||||
Loading…
Add table
Add a link
Reference in a new issue