/** * The Constructor. * * @param opsServer the Operations Server * @param nodeInfo the node info */ public OperationsServerMeta(ThriftOperationsServer opsServer, OperationsNodeInfo nodeInfo) { this.opsServer = opsServer; this.nodeInfo = nodeInfo; history = new OperationsServerLoadHistory(opsLoadHistoryTtl); history.addOpsServerLoad(nodeInfo.getLoadInfo()); } }
@Override public void onNodeUpdated(OperationsNodeInfo nodeInfo) { String dnsName = getNameFromConnectionInfo(nodeInfo.getConnectionInfo()); int accessPointId = ServerNameUtil.crc32(nodeInfo.getConnectionInfo()); LOG.info("Operations server [{}][{}] updated", accessPointId, dnsName); if (opsServersMap.containsKey(accessPointId)) { opsServersMap.get(accessPointId).history.addOpsServerLoad(nodeInfo.getLoadInfo()); } else { addNewOperationsServer(accessPointId, dnsName, nodeInfo); } }
@Override public void onStatusUpdate(AkkaServiceStatus status) { try { OperationsNodeInfo nodeInfo = operationsNode.getNodeInfo(); OperatingSystemMXBean operatingSystemMxBean = ManagementFactory.getOperatingSystemMXBean(); nodeInfo.setLoadInfo(new LoadInfo( status.getEndpointCount(), operatingSystemMxBean.getSystemLoadAverage())); operationsNode.updateNodeData(nodeInfo); LOG.info("Updated load info: {}", nodeInfo.getLoadInfo()); } catch (Exception ex) { LOG.error("Failed to report status update to control service", ex); } } }
private static String toString(OperationsNodeInfo node) { return "[" + node.getConnectionInfo().getThriftHost() + ":" + node.getConnectionInfo().getThriftPort() + ":" + node.getTimeStarted() + "]-[" + node.getLoadInfo() + "]"; }