[FEATURE] Support Kafka Metrics Report in JsonReporterService
- Dominant language
- Scala
- Stars
- 2.4k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before asking
- [X] I have searched in the [issues](https://github.com/apache/kyuubi/issues?q=is%3Aissue) and found no similar issues.
### Describe the feature
Support reporting metrics to Kafka topic in JsonReporterService
### Motivation
Currently JsonReporterService only support sinking metrics to a file, which is not feasible for us to analyse metrics in realtime. So I think supporting sinking metrics to a kafka topic is neccessary.
### Describe the solution
1. New options for JsonReporterService to configure output option, such as "kyuubi.metrics.json.output", values could be file/kafka
2.New options for JsonReporterService kafka topic and kafka properties
3.In JsonReporterService, creating kafka producer and produce message to kafka according to the options
### Additional context
_No response_
### Are you willing to submit PR?
- [X] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
- [ ] No. I cannot submit a PR at this time.
Contributor guide
Research direction
Start by locating JsonReporterService and reading how it currently sinks metrics to a file and loads its options. Define the output, Kafka topic, and Kafka properties behavior described in the issue, then verify that file output still works and Kafka messages are produced according to the selected configuration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kafka, scala
- Domain
- distributed-systems, observability
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100