@GET @Path("/gondolaStatus") public Map getGondolaStatus() throws InterruptedException { RoutingFilter routingFilter = GondolaApplication.getRoutingFilter(); Gondola gondola = routingFilter.getGondola(); ChangeLogProcessor changeLogProcessor = GondolaApplication.getRoutingFilter().getChangeLogProcessor(); Map<Object, Object> map = new LinkedHashMap<>(); map.put("hostId", gondola.getHostId()); map.put("gondolaStatus", getGondolaStatus(gondola, changeLogProcessor)); map.put("routingTable", routingFilter.getRoutingTable()); map.put("bucketTable", getBucketMapStatus(routingFilter.getBucketManager())); map.put("lock", getLockManagerStatus(routingFilter.getLockManager())); map.put("shardManager", getShardManagerStatus()); map.put("numActiveRequests", routingFilter.getBucketRequestCounters().values().stream().map(AtomicInteger::get) .reduce((i1, i2) -> i1 + i2).orElse(0)); map.put("config", getConfigInfo(gondola)); map.put("stats", gondola.getStats()); map.put("pid", gondola.getConfig().getAttributesForHost(gondola.getHostId()).get("hostname") + ":" + gondola.getProcessId()); map.put("timers", timerMap()); map.put("meters", GondolaApplication.MyMetricsServletContextListener.METRIC_REGISTRY.getMeters()); return map; }
gondola.getHostId(), memberId, role, masterId >= 0 ? "-SLAVE" : "", enabled ? "" : " (disabled)", gondola.getProcessId(), waitMs, commandQueue.size(), waitQueue.size(), incomingQueue.size(), stats.incomingMessagesRps, stats.sentMessagesRps, CoreCmd.commitLatency.get(), latency.get()));
Stats stats = gondola.getStats(); logger.info(String.format("[%s-%d] %s pid=%s wait=%dms cmdQ=%d waitQ=%d in=%d|%.1f/s out=%.1f/s lat=%.3fms/%.3fms", gondola.getHostId(), memberId, role, gondola.getProcessId(), waitMs, commandQueue.size(), waitQueue.size(), incomingQueue.size(), stats.incomingMessagesRps, stats.sentMessagesRps, CoreCmd.commitLatency.get(), latency.get()));
if (!gondola.getProcessId().equals(pid)) { logger.warn("[{}-{}] SaveQueue: another process pid={} may be updating the same tables. Current pid={}", gondola.getHostId(), cmember.memberId, pid, gondola.getProcessId());
if (pid != null && !gondola.getProcessId().equals(pid)) { logger.warn("[{}-{}] SaveQueue: another process pid={} may be updating the same tables. Current pid={}", gondola.getHostId(), cmember.memberId, pid, gondola.getProcessId());
SaveQueue(Gondola gondola, CoreMember cmember) throws GondolaException { this.gondola = gondola; this.cmember = cmember; gondola.getConfig().registerForUpdates(configListener); storage = gondola.getStorage(); stats = gondola.getStats(); numWorkers = gondola.getConfig().getInt("storage.save_queue_workers"); String address = storage.getAddress(cmember.memberId); if (address != null && !address.equals(gondola.getNetwork().getAddress()) && gondola.getNetwork().isActive(address)) { throw new IllegalStateException(String.format("[%s-%s] Process %s at address %s is currently using storage", gondola.getHostId(), cmember.memberId, gondola.getProcessId(), address)); } storage.setAddress(cmember.memberId, gondola.getNetwork().getAddress()); storage.setPid(cmember.memberId, gondola.getProcessId()); initSavedIndex(); }
SaveQueue(Gondola gondola, CoreMember cmember) throws Exception { this.gondola = gondola; this.cmember = cmember; gondola.getConfig().registerForUpdates(this); storage = gondola.getStorage(); stats = gondola.getStats(); numWorkers = gondola.getConfig().getInt("storage.save_queue_workers"); String address = storage.getAddress(cmember.memberId); if (address != null && gondola.getNetwork().isActive(address)) { throw new IllegalStateException(String.format("[%s-%s] Process %s at address %s is currently using storage", gondola.getHostId(), cmember.memberId, gondola.getProcessId(), address)); } storage.setAddress(cmember.memberId, gondola.getNetwork().getAddress()); storage.setPid(cmember.memberId, gondola.getProcessId()); initSavedIndex(); }