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

[Metricbeat] Add New Metrics to the Kafka Module #13366

Closed
sorantis opened this issue Aug 28, 2019 · 6 comments
Closed

[Metricbeat] Add New Metrics to the Kafka Module #13366

sorantis opened this issue Aug 28, 2019 · 6 comments
Labels
candidate Candidate to be added to the current iteration enhancement in progress Pull request is currently in progress. :infrastructure Metricbeat Metricbeat

Comments

@sorantis
Copy link
Contributor

Currently the Kafka module in Metricbeat supports two Kafka entities - consumergroup, partition. Customer is requesting to expand the modules with metricsets covering the following metrics:

- kafka.net.bytes_out
- kafka.net.bytes_in
- kafka.net.bytes_rejected
- kafka.messages_in
- kafka.request.channel.queue.size
- kafka.request.fetch.failed
- kafka.request.fetch.failed_per_second
- kafka.request.produce.failed_per_second
- kafka.request.produce.failed
- kafka.replication.leader_elections
- kafka.replication.unclean_leader_elections
- kafka.session.zookeeper.disconnect
- kafka.session.zookeeper.expire
- kafka.session.zookeeper.readonly
- kafka.session.zookeeper.sync
- kafka.log.flush_rate
- kafka.consumer.delayed_requests
- kafka.consumer.expires_per_second
- kafka.producer.available_buffer_bytes
- kafka.producer.batch_size_avg
- kafka.producer.delayed_requests
- kafka.producer.expires_per_seconds
- kafka.producer.batch_size_max
- kafka.producer.record_send_rate
- kafka.producer.record_retry_rate
- kafka.producer.record_error_rate
- kafka.producer.records_per_request
- kafka.producer.record_size_avg
- kafka.producer.record_size_max
- kafka.producer.request_rate
- kafka.producer.response_rate
- kafka.producer.bytes_out
- kafka.producer.message_rate
- kafka.producer.io_wait
- kafka.consumer.max_lag
- kafka.consumer.fetch_rate
- kafka.consumer.bytes_consumed
- kafka.consumer.bytes_in
- kafka.consumer.messages_in
- kafka.consumer.zookeeper_commits
- kafka.consumer.kafka_commits
- kafka.consumer.records_consumed
- kafka.topic.messages_in
- kafka.topic.net.bytes_out
- kafka.topic.net.bytes_in
- kafka.topic.net.bytes_rejected

More information about these metrics can be found here.

@sorantis sorantis added Team:Integrations Label for the Integrations team enhancement Metricbeat Metricbeat labels Aug 28, 2019
@jsoriano
Copy link
Member

As they are JMX metrics I guess that this would have to be implemented as a light module based on the Jolokia one. We might want to wait to have this before #13316.

@sorantis
Copy link
Contributor Author

+1, except the kafka.session.zookeeper.* metrics, which are mentioned here.

@andresrc andresrc added [zube]: Inbox candidate Candidate to be added to the current iteration [zube]: Ready and removed [zube]: Inbox labels Sep 9, 2019
@andresrc andresrc changed the title [Metricbeat] Add New Metrics to the Kafka Module [Metricbeat] Add New Metrics to the Kafka Module Oct 21, 2019
@andresrc andresrc added :infrastructure and removed Team:Integrations Label for the Integrations team labels Oct 21, 2019
@ChrsMark ChrsMark added [zube]: In Progress in progress Pull request is currently in progress. labels Oct 30, 2019
@ChrsMark
Copy link
Member

ChrsMark commented Oct 30, 2019

This will be implemented in 3 different metricsets:

@ChrsMark
Copy link
Member

ChrsMark commented Nov 25, 2019

Final mapping:

- kafka.net.bytes_out -> kafka.broker.net.out.bytes_per_sec
- kafka.net.bytes_in -> kafka.broker.net.in.bytes_per_sec
- kafka.net.bytes_rejected -> kafka.broker.net.rejected.bytes_per_sec
- kafka.messages_in -> kafka.broker.messages_in
- kafka.request.channel.queue.size  -> kafka.broker.request.channel.queue.size
- kafka.request.fetch.failed_per_second -> kafka.broker.request.fetch.failed_per_second
- kafka.request.produce.failed_per_second -> kafka.broker.request.produce.failed_per_second
- kafka.request.produce.failed -> kafka.broker.request.produce.failed_per_second
- kafka.request.fetch.failed -> kafka.broker.request.fetch.failed_per_second
- kafka.replication.leader_elections -> kafka.broker.replication.leader_elections
- kafka.replication.unclean_leader_elections -> kafka.broker.replication.unclean_leader_elections
- kafka.session.zookeeper.disconnect -> kafka.broker.session.zookeeper.disconnect
- kafka.session.zookeeper.expire -> kafka.broker.session.zookeeper.expire
- kafka.session.zookeeper.readonly -> kafka.broker.session.zookeeper.readonly
- kafka.session.zookeeper.sync -> kafka.broker.session.zookeeper.sync
- kafka.log.flush_rate -> kafka.broker.log.flush_rate
- kafka.producer.available_buffer_bytes -> kafka.producer.available_buffer_bytes
- kafka.producer.batch_size_avg -> kafka.producer.batch_size_avg
- kafka.producer.batch_size_max -> kafka.producer.batch_size_max
- kafka.producer.record_send_rate -> kafka.producer.record_send_rate
- kafka.producer.record_retry_rate -> kafka.producer.record_retry_rate
- kafka.producer.record_error_rate -> kafka.producer.record_error_rate
- kafka.producer.records_per_request -> kafka.producer.records_per_request
- kafka.producer.record_size_avg -> kafka.producer.record_size_avg
- kafka.producer.record_size_max -> kafka.producer.record_size_max
- kafka.producer.request_rate -> kafka.producer.request_rate
- kafka.producer.response_rate -> kafka.producer.response_rate
- kafka.producer.bytes_out -> kafka.producer.out.bytes_per_sec
- kafka.producer.io_wait -> kafka.producer.io_wait
- kafka.consumer.max_lag -> kafka.consumer.max_lag
- kafka.consumer.fetch_rate -> kafka.consumer.fetch_rate
- kafka.consumer.bytes_consumed -> kafka.consumer.bytes_consumed
- kafka.consumer.bytes_in -> kafka.consumer.in.bytes_per_sec
- kafka.consumer.records_consumed -> kafka.consumer.records_consumed
- kafka.topic.messages_in -> kafka.broker.topic.messages_in
- kafka.topic.net.bytes_out -> kafka.broker.topic.net.out.bytes_per_sec
- kafka.topic.net.bytes_in -> kafka.broker.topic.net.in.bytes_per_sec
- kafka.topic.net.bytes_rejected -> kafka.broker.topic.net.rejected.bytes_per_sec
- kafka.consumer.zookeeper_commits -> kafka.consumer.zookeeper_commits
- kafka.consumer.kafka_commits -> kafka.consumer.kafka_commits
- kafka.producer.message_rate -> kafka.producer.message_rate
- kafka.consumer.messages_in -> kafka.consumer.messages_in


Not found for current versions:
- kafka.producer.delayed_requests -> Not found
- kafka.producer.expires_per_seconds -> Not found

@ChrsMark
Copy link
Member

Last PR adding tests and final missing fields is #14677.

@sorantis feel free to comment on the final list of fields or give a green light for closing this after the PR is merged 🙂.

@sorantis
Copy link
Contributor Author

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
candidate Candidate to be added to the current iteration enhancement in progress Pull request is currently in progress. :infrastructure Metricbeat Metricbeat
Projects
None yet
Development

No branches or pull requests

4 participants