apache / apache/kyuubi

[FEATURE] Support Kafka Metrics Report in JsonReporterService

Open
#6,450 1 comment 0 reactions 0 assignees View on GitHub
kind:feature priority:major
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.