Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: Perf test metrics #177

Open
eajazali87 opened this issue Dec 2, 2019 · 5 comments
Open

Question: Perf test metrics #177

eajazali87 opened this issue Dec 2, 2019 · 5 comments
Labels

Comments

@eajazali87
Copy link

eajazali87 commented Dec 2, 2019

Hi,

We are able to produce and consume messages from the kafka cluster through the kafka-pixy. I wanted to do some performance tests around this.

Simple Use Case:

  1. There are 1M messages in a topic in the Kafka cluster
  2. Consume 1M messages from topic(kafka cluster) through the kafka-pixy consumer client
  3. Report performance metrics.

NOTE:
There is kafka-consumer-perf-test.sh script that is available in the kafka library
kafka-consumer-perf-test.sh --broker-list localhost:9092 --topic dc-topic-1 --messages 1000000

If there is something like this or any pointers/scripts around this would be really really helpful

@horkhe horkhe added the question label Dec 5, 2019
@horkhe
Copy link
Member

horkhe commented Dec 5, 2019

@eajazali87 in the release package you can find testconsumer and testproducer binaries provided precisely for load testing. E.g.:

./testconsumer --addr localhost:19091 --topic demo --count 1 --group foo
./testproducer --addr localhost:19091 --topic demo --count 1000000 --threads 1000 --sync --size 1024
./testconsumer --addr localhost:19091 --topic demo --count 1000000 --threads 10 --group foo

The very first testconsumer call is there to initialise the consumer group foo partition offsets.

@eajazali87
Copy link
Author

Thanks @horkhe when I run the first script, I get this error. Any way to get rid of this?

My GO version: go version go1.12.9 darwin/amd64

eajazalimahaboobbasha:kafka-pixy-v0.17.0-darwin-amd64 emahaboobbasha$ export GRPC_GO_LOG_SEVERITY_LEVEL=info
eajazalimahaboobbasha:kafka-pixy-v0.17.0-darwin-amd64 emahaboobbasha$ ./testconsumer --addr localhost:19091 --topic main_topic --count 1 --group 20
INFO: 2019/12/05 14:38:56 Channelz: socket options are not supported on non-linux os and appengine.
INFO: 2019/12/05 14:38:56 parsed scheme: ""
INFO: 2019/12/05 14:38:56 scheme "" not registered, fallback to default scheme
INFO: 2019/12/05 14:38:56 ccResolverWrapper: sending new addresses to cc: [{localhost:19091 0  <nil>}]
INFO: 2019/12/05 14:38:56 ClientConn switching balancer to "pick_first"
INFO: 2019/12/05 14:38:56 pickfirstBalancer: HandleSubConnStateChange: 0xc00006b110, CONNECTING
INFO: 2019/12/05 14:38:56 blockingPicker: the picked transport is not ready, loop back to repick
INFO: 2019/12/05 14:38:56 pickfirstBalancer: HandleSubConnStateChange: 0xc00006b110, READY
INFO: 2019/12/05 14:38:56 transport: loopyWriter.run returning. connection error: desc = "transport is closing"
INFO: 2019/12/05 14:38:56 pickfirstBalancer: HandleSubConnStateChange: 0xc00006b110, TRANSIENT_FAILURE
INFO: 2019/12/05 14:38:56 pickfirstBalancer: HandleSubConnStateChange: 0xc00006b110, CONNECTING
INFO: 2019/12/05 14:38:56 pickfirstBalancer: HandleSubConnStateChange: 0xc00006b110, TRANSIENT_FAILURE
panic: failed to consume first: rpc error: code = Unavailable desc = transport is closing
goroutine 36 [running]:
main.main.func1.1(0xc00013a040, 0x1536600, 0xc000158000, 0xc00006b070, 0xc000146000, 0x1, 0x0)
	/Users/maxim/src/github.com/mailgun/kafka-pixy/tools/testconsumer/testconsumer.go:75 +0x858
created by main.main.func1
	/Users/maxim/src/github.com/mailgun/kafka-pixy/tools/testconsumer/testconsumer.go:57 +0xf1
eajazalimahaboobbasha:kafka-pixy-v0.17.0-darwin-amd64 emahaboobbasha$

@eajazali87
Copy link
Author

Figured out the problem, the local Kafka-pixy expects TLS where as the test consumer is trying plaintext.
Once I set this to the same type, it worked

image

@horkhe
Copy link
Member

horkhe commented Dec 6, 2019

I am glad that you figured it out. It would be great if in the end you could share the results of your load testing. Maybe post them in this ticket or in the README.md.

@emahaboobbasha
Copy link

sure I will do that @horkhe thanks for your support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants