mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 03:42:07 +08:00
[Bugfix]修复ZK四字命令解析错误的问题
1、四字命令结果为Float类型的字符串时,使用Long.valueOf()会抛出格式转换失败异常。因此为了方便处理,将使用ConvertUtil.string2Float()方法进行转换。 2、规范调整过程中,涉及到的代码。
This commit is contained in:
@@ -27,6 +27,10 @@ public abstract class BaseMetrics implements Serializable {
|
|||||||
protected Map<String, Float> metrics = new ConcurrentHashMap<>();
|
protected Map<String, Float> metrics = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public void putMetric(String key, Float value){
|
public void putMetric(String key, Float value){
|
||||||
|
if (value == null || key == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
metrics.put(key, value);
|
metrics.put(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,15 +25,15 @@ public class MonitorCmdData extends BaseFourLetterWordCmdData {
|
|||||||
private Float zkAvgLatency;
|
private Float zkAvgLatency;
|
||||||
private Float zkMaxLatency;
|
private Float zkMaxLatency;
|
||||||
private Float zkMinLatency;
|
private Float zkMinLatency;
|
||||||
private Long zkPacketsReceived;
|
private Float zkPacketsReceived;
|
||||||
private Long zkPacketsSent;
|
private Float zkPacketsSent;
|
||||||
private Long zkNumAliveConnections;
|
private Float zkNumAliveConnections;
|
||||||
private Long zkOutstandingRequests;
|
private Float zkOutstandingRequests;
|
||||||
private String zkServerState;
|
private String zkServerState;
|
||||||
private Long zkZnodeCount;
|
private Float zkZnodeCount;
|
||||||
private Long zkWatchCount;
|
private Float zkWatchCount;
|
||||||
private Long zkEphemeralsCount;
|
private Float zkEphemeralsCount;
|
||||||
private Long zkApproximateDataSize;
|
private Float zkApproximateDataSize;
|
||||||
private Long zkOpenFileDescriptorCount;
|
private Float zkOpenFileDescriptorCount;
|
||||||
private Long zkMaxFileDescriptorCount;
|
private Float zkMaxFileDescriptorCount;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ public class ServerCmdData extends BaseFourLetterWordCmdData {
|
|||||||
private Float zkAvgLatency;
|
private Float zkAvgLatency;
|
||||||
private Float zkMaxLatency;
|
private Float zkMaxLatency;
|
||||||
private Float zkMinLatency;
|
private Float zkMinLatency;
|
||||||
private Long zkPacketsReceived;
|
private Float zkPacketsReceived;
|
||||||
private Long zkPacketsSent;
|
private Float zkPacketsSent;
|
||||||
private Long zkNumAliveConnections;
|
private Float zkNumAliveConnections;
|
||||||
private Long zkOutstandingRequests;
|
private Float zkOutstandingRequests;
|
||||||
private String zkServerState;
|
private String zkServerState;
|
||||||
private Long zkZnodeCount;
|
private Float zkZnodeCount;
|
||||||
private Long zkZxid;
|
private Long zkZxid;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class MonitorCmdDataParser implements FourLetterWordDataParser<MonitorCmd
|
|||||||
}
|
}
|
||||||
|
|
||||||
MonitorCmdData monitorCmdData = new MonitorCmdData();
|
MonitorCmdData monitorCmdData = new MonitorCmdData();
|
||||||
dataMap.entrySet().stream().forEach(elem -> {
|
dataMap.entrySet().forEach(elem -> {
|
||||||
try {
|
try {
|
||||||
switch (elem.getKey()) {
|
switch (elem.getKey()) {
|
||||||
case "zk_version":
|
case "zk_version":
|
||||||
@@ -67,37 +67,37 @@ public class MonitorCmdDataParser implements FourLetterWordDataParser<MonitorCmd
|
|||||||
monitorCmdData.setZkMinLatency(ConvertUtil.string2Float(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(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "zk_packets_sent":
|
case "zk_packets_sent":
|
||||||
monitorCmdData.setZkPacketsSent(Long.valueOf(elem.getValue()));
|
monitorCmdData.setZkPacketsSent(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "zk_num_alive_connections":
|
case "zk_num_alive_connections":
|
||||||
monitorCmdData.setZkNumAliveConnections(Long.valueOf(elem.getValue()));
|
monitorCmdData.setZkNumAliveConnections(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "zk_outstanding_requests":
|
case "zk_outstanding_requests":
|
||||||
monitorCmdData.setZkOutstandingRequests(Long.valueOf(elem.getValue()));
|
monitorCmdData.setZkOutstandingRequests(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "zk_server_state":
|
case "zk_server_state":
|
||||||
monitorCmdData.setZkServerState(elem.getValue());
|
monitorCmdData.setZkServerState(elem.getValue());
|
||||||
break;
|
break;
|
||||||
case "zk_znode_count":
|
case "zk_znode_count":
|
||||||
monitorCmdData.setZkZnodeCount(Long.valueOf(elem.getValue()));
|
monitorCmdData.setZkZnodeCount(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "zk_watch_count":
|
case "zk_watch_count":
|
||||||
monitorCmdData.setZkWatchCount(Long.valueOf(elem.getValue()));
|
monitorCmdData.setZkWatchCount(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "zk_ephemerals_count":
|
case "zk_ephemerals_count":
|
||||||
monitorCmdData.setZkEphemeralsCount(Long.valueOf(elem.getValue()));
|
monitorCmdData.setZkEphemeralsCount(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "zk_approximate_data_size":
|
case "zk_approximate_data_size":
|
||||||
monitorCmdData.setZkApproximateDataSize(Long.valueOf(elem.getValue()));
|
monitorCmdData.setZkApproximateDataSize(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "zk_open_file_descriptor_count":
|
case "zk_open_file_descriptor_count":
|
||||||
monitorCmdData.setZkOpenFileDescriptorCount(Long.valueOf(elem.getValue()));
|
monitorCmdData.setZkOpenFileDescriptorCount(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "zk_max_file_descriptor_count":
|
case "zk_max_file_descriptor_count":
|
||||||
monitorCmdData.setZkMaxFileDescriptorCount(Long.valueOf(elem.getValue()));
|
monitorCmdData.setZkMaxFileDescriptorCount(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "Proposal sizes last/min/max":
|
case "Proposal sizes last/min/max":
|
||||||
case "zk_fsync_threshold_exceed_count":
|
case "zk_fsync_threshold_exceed_count":
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class ServerCmdDataParser implements FourLetterWordDataParser<ServerCmdDa
|
|||||||
}
|
}
|
||||||
|
|
||||||
ServerCmdData serverCmdData = new ServerCmdData();
|
ServerCmdData serverCmdData = new ServerCmdData();
|
||||||
dataMap.entrySet().stream().forEach(elem -> {
|
dataMap.entrySet().forEach(elem -> {
|
||||||
try {
|
try {
|
||||||
switch (elem.getKey()) {
|
switch (elem.getKey()) {
|
||||||
case "Zookeeper version":
|
case "Zookeeper version":
|
||||||
@@ -59,22 +59,22 @@ public class ServerCmdDataParser implements FourLetterWordDataParser<ServerCmdDa
|
|||||||
serverCmdData.setZkMaxLatency(ConvertUtil.string2Float(data[2]));
|
serverCmdData.setZkMaxLatency(ConvertUtil.string2Float(data[2]));
|
||||||
break;
|
break;
|
||||||
case "Received":
|
case "Received":
|
||||||
serverCmdData.setZkPacketsReceived(Long.valueOf(elem.getValue()));
|
serverCmdData.setZkPacketsReceived(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "Sent":
|
case "Sent":
|
||||||
serverCmdData.setZkPacketsSent(Long.valueOf(elem.getValue()));
|
serverCmdData.setZkPacketsSent(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "Connections":
|
case "Connections":
|
||||||
serverCmdData.setZkNumAliveConnections(Long.valueOf(elem.getValue()));
|
serverCmdData.setZkNumAliveConnections(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "Outstanding":
|
case "Outstanding":
|
||||||
serverCmdData.setZkOutstandingRequests(Long.valueOf(elem.getValue()));
|
serverCmdData.setZkOutstandingRequests(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "Mode":
|
case "Mode":
|
||||||
serverCmdData.setZkServerState(elem.getValue());
|
serverCmdData.setZkServerState(elem.getValue());
|
||||||
break;
|
break;
|
||||||
case "Node count":
|
case "Node count":
|
||||||
serverCmdData.setZkZnodeCount(Long.valueOf(elem.getValue()));
|
serverCmdData.setZkZnodeCount(ConvertUtil.string2Float(elem.getValue()));
|
||||||
break;
|
break;
|
||||||
case "Zxid":
|
case "Zxid":
|
||||||
serverCmdData.setZkZxid(Long.parseUnsignedLong(elem.getValue().trim().substring(2), 16));
|
serverCmdData.setZkZxid(Long.parseUnsignedLong(elem.getValue().trim().substring(2), 16));
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ public class ZookeeperMetricServiceImpl extends BaseMetricService implements Zoo
|
|||||||
|
|
||||||
// 格式转化
|
// 格式转化
|
||||||
List<MetricLineVO> voList = new ArrayList<>();
|
List<MetricLineVO> voList = new ArrayList<>();
|
||||||
pointVOMap.entrySet().stream().forEach(entry ->
|
pointVOMap.entrySet().forEach(entry ->
|
||||||
voList.add(new MetricLineVO(String.valueOf(clusterPhyId), entry.getKey(), entry.getValue()))
|
voList.add(new MetricLineVO(String.valueOf(clusterPhyId), entry.getKey(), entry.getValue()))
|
||||||
);
|
);
|
||||||
return Result.buildSuc(voList);
|
return Result.buildSuc(voList);
|
||||||
@@ -208,11 +208,11 @@ public class ZookeeperMetricServiceImpl extends BaseMetricService implements Zoo
|
|||||||
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());
|
metrics.putMetric(ZOOKEEPER_METRIC_MIN_REQUEST_LATENCY, cmdData.getZkMinLatency());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_MAX_REQUEST_LATENCY, cmdData.getZkMaxLatency());
|
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());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_NODE_COUNT, cmdData.getZkZnodeCount().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_NODE_COUNT, cmdData.getZkZnodeCount());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_NUM_ALIVE_CONNECTIONS, cmdData.getZkNumAliveConnections().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_NUM_ALIVE_CONNECTIONS, cmdData.getZkNumAliveConnections());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_PACKETS_RECEIVED, cmdData.getZkPacketsReceived().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_PACKETS_RECEIVED, cmdData.getZkPacketsReceived());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_PACKETS_SENT, cmdData.getZkPacketsSent().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_PACKETS_SENT, cmdData.getZkPacketsSent());
|
||||||
|
|
||||||
return Result.buildSuc(metrics);
|
return Result.buildSuc(metrics);
|
||||||
}
|
}
|
||||||
@@ -257,16 +257,16 @@ public class ZookeeperMetricServiceImpl extends BaseMetricService implements Zoo
|
|||||||
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());
|
metrics.putMetric(ZOOKEEPER_METRIC_MIN_REQUEST_LATENCY, cmdData.getZkMinLatency());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_MAX_REQUEST_LATENCY, cmdData.getZkMaxLatency());
|
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());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_NODE_COUNT, cmdData.getZkZnodeCount().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_NODE_COUNT, cmdData.getZkZnodeCount());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_WATCH_COUNT, cmdData.getZkWatchCount().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_WATCH_COUNT, cmdData.getZkWatchCount());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_NUM_ALIVE_CONNECTIONS, cmdData.getZkNumAliveConnections().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_NUM_ALIVE_CONNECTIONS, cmdData.getZkNumAliveConnections());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_PACKETS_RECEIVED, cmdData.getZkPacketsReceived().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_PACKETS_RECEIVED, cmdData.getZkPacketsReceived());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_PACKETS_SENT, cmdData.getZkPacketsSent().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_PACKETS_SENT, cmdData.getZkPacketsSent());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_EPHEMERALS_COUNT, cmdData.getZkEphemeralsCount().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_EPHEMERALS_COUNT, cmdData.getZkEphemeralsCount());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_APPROXIMATE_DATA_SIZE, cmdData.getZkApproximateDataSize().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_APPROXIMATE_DATA_SIZE, cmdData.getZkApproximateDataSize());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_OPEN_FILE_DESCRIPTOR_COUNT, cmdData.getZkOpenFileDescriptorCount().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_OPEN_FILE_DESCRIPTOR_COUNT, cmdData.getZkOpenFileDescriptorCount());
|
||||||
metrics.putMetric(ZOOKEEPER_METRIC_MAX_FILE_DESCRIPTOR_COUNT, cmdData.getZkMaxFileDescriptorCount().floatValue());
|
metrics.putMetric(ZOOKEEPER_METRIC_MAX_FILE_DESCRIPTOR_COUNT, cmdData.getZkMaxFileDescriptorCount());
|
||||||
|
|
||||||
return Result.buildSuc(metrics);
|
return Result.buildSuc(metrics);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user