[Bugfix]解决在解析命令执行后返回指标的值时发生的数据类型转换错误与指标存储上报时报空指针的问题(#912)

1.zk_min_latency、zk_max_latency指标数据类型变更为float
2.使用ConvertUtil.string2Float()方法进行string到float到类型转换
This commit is contained in:
slhu
2023-02-15 14:30:36 +08:00
committed by EricZeng
parent e4651ef749
commit eed9571ffa
5 changed files with 16 additions and 14 deletions

View File

@@ -23,8 +23,8 @@ import lombok.Data;
public class MonitorCmdData extends BaseFourLetterWordCmdData { public class MonitorCmdData extends BaseFourLetterWordCmdData {
private String zkVersion; private String zkVersion;
private Float zkAvgLatency; private Float zkAvgLatency;
private Long zkMaxLatency; private Float zkMaxLatency;
private Long zkMinLatency; private Float zkMinLatency;
private Long zkPacketsReceived; private Long zkPacketsReceived;
private Long zkPacketsSent; private Long zkPacketsSent;
private Long zkNumAliveConnections; private Long zkNumAliveConnections;

View File

@@ -18,8 +18,8 @@ import lombok.Data;
public class ServerCmdData extends BaseFourLetterWordCmdData { public class ServerCmdData extends BaseFourLetterWordCmdData {
private String zkVersion; private String zkVersion;
private Float zkAvgLatency; private Float zkAvgLatency;
private Long zkMaxLatency; private Float zkMaxLatency;
private Long zkMinLatency; private Float zkMinLatency;
private Long zkPacketsReceived; private Long zkPacketsReceived;
private Long zkPacketsSent; private Long zkPacketsSent;
private Long zkNumAliveConnections; private Long zkNumAliveConnections;

View File

@@ -3,6 +3,7 @@ package com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.fourletter
import com.didiglobal.logi.log.ILog; import com.didiglobal.logi.log.ILog;
import com.didiglobal.logi.log.LogFactory; import com.didiglobal.logi.log.LogFactory;
import com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.fourletterword.MonitorCmdData; import com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.fourletterword.MonitorCmdData;
import com.xiaojukeji.know.streaming.km.common.utils.ConvertUtil;
import com.xiaojukeji.know.streaming.km.common.utils.zookeeper.FourLetterWordUtil; import com.xiaojukeji.know.streaming.km.common.utils.zookeeper.FourLetterWordUtil;
import lombok.Data; import lombok.Data;
@@ -57,13 +58,13 @@ public class MonitorCmdDataParser implements FourLetterWordDataParser<MonitorCmd
monitorCmdData.setZkVersion(elem.getValue().split("-")[0]); monitorCmdData.setZkVersion(elem.getValue().split("-")[0]);
break; break;
case "zk_avg_latency": case "zk_avg_latency":
monitorCmdData.setZkAvgLatency(Float.valueOf(elem.getValue())); monitorCmdData.setZkAvgLatency(ConvertUtil.string2Float(elem.getValue()));
break; break;
case "zk_max_latency": case "zk_max_latency":
monitorCmdData.setZkMaxLatency(Long.valueOf(elem.getValue())); monitorCmdData.setZkMaxLatency(ConvertUtil.string2Float(elem.getValue()));
break; break;
case "zk_min_latency": case "zk_min_latency":
monitorCmdData.setZkMinLatency(Long.valueOf(elem.getValue())); monitorCmdData.setZkMinLatency(ConvertUtil.string2Float(elem.getValue()));
break; break;
case "zk_packets_received": case "zk_packets_received":
monitorCmdData.setZkPacketsReceived(Long.valueOf(elem.getValue())); monitorCmdData.setZkPacketsReceived(Long.valueOf(elem.getValue()));

View File

@@ -3,6 +3,7 @@ package com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.fourletter
import com.didiglobal.logi.log.ILog; import com.didiglobal.logi.log.ILog;
import com.didiglobal.logi.log.LogFactory; import com.didiglobal.logi.log.LogFactory;
import com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.fourletterword.ServerCmdData; import com.xiaojukeji.know.streaming.km.common.bean.entity.zookeeper.fourletterword.ServerCmdData;
import com.xiaojukeji.know.streaming.km.common.utils.ConvertUtil;
import com.xiaojukeji.know.streaming.km.common.utils.zookeeper.FourLetterWordUtil; import com.xiaojukeji.know.streaming.km.common.utils.zookeeper.FourLetterWordUtil;
import lombok.Data; import lombok.Data;
@@ -53,9 +54,9 @@ public class ServerCmdDataParser implements FourLetterWordDataParser<ServerCmdDa
break; break;
case "Latency min/avg/max": case "Latency min/avg/max":
String[] data = elem.getValue().split("/"); String[] data = elem.getValue().split("/");
serverCmdData.setZkMinLatency(Long.valueOf(data[0])); serverCmdData.setZkMinLatency(ConvertUtil.string2Float(data[0]));
serverCmdData.setZkAvgLatency(Float.valueOf(data[1])); serverCmdData.setZkAvgLatency(ConvertUtil.string2Float(data[1]));
serverCmdData.setZkMaxLatency(Long.valueOf(data[2])); serverCmdData.setZkMaxLatency(ConvertUtil.string2Float(data[2]));
break; break;
case "Received": case "Received":
serverCmdData.setZkPacketsReceived(Long.valueOf(elem.getValue())); serverCmdData.setZkPacketsReceived(Long.valueOf(elem.getValue()));

View File

@@ -206,8 +206,8 @@ public class ZookeeperMetricServiceImpl extends BaseMetricService implements Zoo
ZookeeperMetrics metrics = new ZookeeperMetrics(param.getClusterPhyId()); ZookeeperMetrics metrics = new ZookeeperMetrics(param.getClusterPhyId());
metrics.putMetric(ZOOKEEPER_METRIC_AVG_REQUEST_LATENCY, cmdData.getZkAvgLatency()); metrics.putMetric(ZOOKEEPER_METRIC_AVG_REQUEST_LATENCY, cmdData.getZkAvgLatency());
metrics.putMetric(ZOOKEEPER_METRIC_MIN_REQUEST_LATENCY, cmdData.getZkMinLatency().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_MIN_REQUEST_LATENCY, cmdData.getZkMinLatency());
metrics.putMetric(ZOOKEEPER_METRIC_MAX_REQUEST_LATENCY, cmdData.getZkMaxLatency().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_MAX_REQUEST_LATENCY, cmdData.getZkMaxLatency());
metrics.putMetric(ZOOKEEPER_METRIC_OUTSTANDING_REQUESTS, cmdData.getZkOutstandingRequests().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_OUTSTANDING_REQUESTS, cmdData.getZkOutstandingRequests().floatValue());
metrics.putMetric(ZOOKEEPER_METRIC_NODE_COUNT, cmdData.getZkZnodeCount().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_NODE_COUNT, cmdData.getZkZnodeCount().floatValue());
metrics.putMetric(ZOOKEEPER_METRIC_NUM_ALIVE_CONNECTIONS, cmdData.getZkNumAliveConnections().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_NUM_ALIVE_CONNECTIONS, cmdData.getZkNumAliveConnections().floatValue());
@@ -255,8 +255,8 @@ public class ZookeeperMetricServiceImpl extends BaseMetricService implements Zoo
ZookeeperMetrics metrics = new ZookeeperMetrics(param.getClusterPhyId()); ZookeeperMetrics metrics = new ZookeeperMetrics(param.getClusterPhyId());
metrics.putMetric(ZOOKEEPER_METRIC_AVG_REQUEST_LATENCY, cmdData.getZkAvgLatency()); metrics.putMetric(ZOOKEEPER_METRIC_AVG_REQUEST_LATENCY, cmdData.getZkAvgLatency());
metrics.putMetric(ZOOKEEPER_METRIC_MIN_REQUEST_LATENCY, cmdData.getZkMinLatency().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_MIN_REQUEST_LATENCY, cmdData.getZkMinLatency());
metrics.putMetric(ZOOKEEPER_METRIC_MAX_REQUEST_LATENCY, cmdData.getZkMaxLatency().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_MAX_REQUEST_LATENCY, cmdData.getZkMaxLatency());
metrics.putMetric(ZOOKEEPER_METRIC_OUTSTANDING_REQUESTS, cmdData.getZkOutstandingRequests().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_OUTSTANDING_REQUESTS, cmdData.getZkOutstandingRequests().floatValue());
metrics.putMetric(ZOOKEEPER_METRIC_NODE_COUNT, cmdData.getZkZnodeCount().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_NODE_COUNT, cmdData.getZkZnodeCount().floatValue());
metrics.putMetric(ZOOKEEPER_METRIC_WATCH_COUNT, cmdData.getZkWatchCount().floatValue()); metrics.putMetric(ZOOKEEPER_METRIC_WATCH_COUNT, cmdData.getZkWatchCount().floatValue());