Skip to content

Commit 8480740

Browse files
yazebochanRoman Nedzvetskiy
andauthored
Fixed issue with wrong parameter type (#65)
* Fixed issue with wrong parameter type * Changed object to number * Changede object to number jmx metrics Co-authored-by: Roman Nedzvetskiy <[email protected]>
1 parent fd60bda commit 8480740

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

kafka-ui-api/src/main/java/com/provectus/kafka/ui/cluster/mapper/ClusterMapper.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
import com.provectus.kafka.ui.model.*;
99
import org.mapstruct.Mapper;
1010
import org.mapstruct.Mapping;
11-
import org.mapstruct.ValueMapping;
11+
12+
import java.math.BigDecimal;
1213

1314
@Mapper(componentModel = "spring")
1415
public interface ClusterMapper {
@@ -22,6 +23,10 @@ public interface ClusterMapper {
2223
@Mapping(target = "bytesOutPerSec", source = "metrics.bytesOutPerSec")
2324
Cluster toCluster(KafkaCluster cluster);
2425

26+
default BigDecimal map (Number number) {
27+
return new BigDecimal(number.toString());
28+
}
29+
2530
BrokersMetrics toBrokerMetrics(InternalClusterMetrics metrics);
2631
Topic toTopic(InternalTopic topic);
2732
TopicDetails toTopicDetails(InternalTopic topic);

kafka-ui-api/src/main/java/com/provectus/kafka/ui/cluster/model/InternalClusterMetrics.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ public class InternalClusterMetrics {
1919
private final int offlinePartitionCount;
2020
private final int inSyncReplicasCount;
2121
private final int outOfSyncReplicasCount;
22-
private final Map<String, BigDecimal> bytesInPerSec;
23-
private final Map<String, BigDecimal> bytesOutPerSec;
22+
private final Map<String, Number> bytesInPerSec;
23+
private final Map<String, Number> bytesOutPerSec;
2424
private final int segmentCount;
2525
private final long segmentSize;
2626
private final Map<Integer, InternalBrokerMetrics> internalBrokerMetrics;

kafka-ui-api/src/main/java/com/provectus/kafka/ui/cluster/util/JmxClusterUtil.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,18 @@ public class JmxClusterUtil {
3232

3333
private static final List<String> attrNames = Arrays.asList("OneMinuteRate", "FiveMinuteRate", "FifteenMinuteRate");
3434

35-
public Map<String, BigDecimal> getJmxTrafficMetrics(int jmxPort, String jmxHost, String metricName) {
35+
public Map<String, Number> getJmxTrafficMetrics(int jmxPort, String jmxHost, String metricName) {
3636
String jmxUrl = JMX_URL + jmxHost + ":" + jmxPort + "/" + JMX_SERVICE_TYPE;
37-
Map<String, BigDecimal> result = new HashMap<>();
37+
Map<String, Number> result = new HashMap<>();
3838
JMXConnector srv = null;
3939
try {
4040
srv = pool.borrowObject(jmxUrl);
4141
MBeanServerConnection msc = srv.getMBeanServerConnection();
4242
ObjectName name = metricName.equals(BYTES_IN_PER_SEC) ? new ObjectName(BYTES_IN_PER_SEC_MBEAN_OBJECT_NAME) :
4343
new ObjectName(BYTES_OUT_PER_SEC_MBEAN_OBJECT_NAME);
4444
for (String attrName : attrNames) {
45-
result.put(attrName, BigDecimal.valueOf((Double) msc.getAttribute(name, attrName)));
45+
Number value = (Number) msc.getAttribute(name, attrName);
46+
result.put(attrName, value instanceof Double ? BigDecimal.valueOf((Double) value) : Integer.valueOf(value.toString()));
4647
}
4748
pool.returnObject(jmxUrl, srv);
4849
} catch (MalformedURLException url) {

kafka-ui-api/src/main/java/com/provectus/kafka/ui/kafka/KafkaService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ private Mono<InternalClusterMetrics> getClusterMetrics(KafkaCluster cluster, Adm
166166
c -> {
167167
InternalClusterMetrics.InternalClusterMetricsBuilder metricsBuilder = InternalClusterMetrics.builder();
168168
metricsBuilder.brokerCount(brokers.size()).activeControllers(c != null ? 1 : 0);
169-
Map<String, BigDecimal> bytesInPerSec = jmxClusterUtil.getJmxTrafficMetrics(cluster.getJmxPort(), c.host(), JmxClusterUtil.BYTES_IN_PER_SEC);
170-
Map<String, BigDecimal> bytesOutPerSec = jmxClusterUtil.getJmxTrafficMetrics(cluster.getJmxPort(), c.host(), JmxClusterUtil.BYTES_OUT_PER_SEC);
169+
Map<String, Number> bytesInPerSec = jmxClusterUtil.getJmxTrafficMetrics(cluster.getJmxPort(), c.host(), JmxClusterUtil.BYTES_IN_PER_SEC);
170+
Map<String, Number> bytesOutPerSec = jmxClusterUtil.getJmxTrafficMetrics(cluster.getJmxPort(), c.host(), JmxClusterUtil.BYTES_OUT_PER_SEC);
171171
metricsBuilder
172172
.internalBrokerMetrics((brokers.stream().map(Node::id).collect(Collectors.toMap(k -> k, v -> InternalBrokerMetrics.builder().build()))))
173173
.bytesOutPerSec(bytesOutPerSec)

0 commit comments

Comments
 (0)