/** * @return ans endpoint */ @ReadOperation public Map<String, ConcurrentMap<String, ServerWrapper>> invoke() { Map<String, ConcurrentMap<String, ServerWrapper>> result = ServerListInvocationHandler .getServerRegistry(); log.info("migrate server list :" + result); return result; } }
@ReadOperation public Map<String, Object> invoke() { return EndpointManager.getSmsEndpointMessage(); } }
/** * @return scx endpoint */ @ReadOperation public Map<String, Object> invoke() { Map<String, Object> scxEndpoint = new HashMap<>(); LOGGER.info("SCX endpoint invoke, scxProperties is {}", scxProperties); scxEndpoint.put("namespace", edasProperties == null ? "" : edasProperties.getNamespace()); scxEndpoint.put("scxProperties", scxProperties); return scxEndpoint; }
@ReadOperation public SortedMap<String, Object> properties() { return filterDubboProperties(environment); }
@ReadOperation public Map<String, Object> invoke() { Map<String, Object> metaData = new LinkedHashMap<>(); metaData.put("timestamp", System.currentTimeMillis()); Map<String, String> versions = new LinkedHashMap<>(); versions.put("dubbo-spring-boot", Version.getVersion(DubboUtils.class, "1.0.0")); versions.put("dubbo", Version.getVersion()); Map<String, String> urls = new LinkedHashMap<>(); urls.put("dubbo", DUBBO_GITHUB_URL); urls.put("mailing-list", DUBBO_MAILING_LIST); urls.put("github", DUBBO_SPRING_BOOT_GITHUB_URL); urls.put("issues", DUBBO_SPRING_BOOT_ISSUES_URL); urls.put("git", DUBBO_SPRING_BOOT_GIT_URL); metaData.put("versions", versions); metaData.put("urls", urls); return metaData; }
/** * @return nacos discovery endpoint */ @ReadOperation public Map<String, Object> nacosDiscovery() { Map<String, Object> result = new HashMap<>(); result.put("NacosDiscoveryProperties", nacosDiscoveryProperties); NamingService namingService = nacosDiscoveryProperties.namingServiceInstance(); List<ServiceInfo> subscribe = Collections.emptyList(); try { subscribe = namingService.getSubscribeServices(); } catch (Exception e) { LOGGER.error("get subscribe services from nacos fail,", e); } result.put("subscribe", subscribe); return result; } }
@ReadOperation public Map<String, Object> invoke() { Map<String, Object> result = new HashMap<>(); if (instrumentationManager != null) { result.put("metrics", instrumentationManager.getMetricRegistry().getMetrics()); result.put("runtime", instrumentationManager.getRuntime()); } else { result.put("warning", "please add metrics-core dependency, we use it for metrics"); } return result; }
@ReadOperation public Map<String, Map<String, Object>> services() { Map<String, ServiceBean> serviceBeansMap = getServiceBeansMap(); Map<String, Map<String, Object>> servicesMetadata = new LinkedHashMap<>(serviceBeansMap.size()); for (Map.Entry<String, ServiceBean> entry : serviceBeansMap.entrySet()) { String serviceBeanName = entry.getKey(); ServiceBean serviceBean = entry.getValue(); Map<String, Object> serviceBeanMetadata = resolveBeanMetadata(serviceBean); Object service = resolveServiceBean(serviceBeanName, serviceBean); if (service != null) { // Add Service implementation class serviceBeanMetadata.put("serviceClass", service.getClass().getName()); } servicesMetadata.put(serviceBeanName, serviceBeanMetadata); } return servicesMetadata; }
@ReadOperation public Map<String, Object> invoke() { Map<String, Object> result = new HashMap<>(); result.put("config", properties); Map<String, Object> runtime = new HashMap<>(); List<AcmPropertySource> all = propertySourceRepository.getAll(); List<Map<String, Object>> sources = new ArrayList<>(); for (AcmPropertySource ps : all) { Map<String, Object> source = new HashMap<>(); source.put("dataId", ps.getDataId()); source.put("lastSynced", dateFormat.format(ps.getTimestamp())); sources.add(source); } runtime.put("sources", sources); runtime.put("refreshHistory", refreshHistory.getRecords()); result.put("runtime", runtime); return result; } }
@ReadOperation public Map<String, Object> invoke() { Map<String, Object> result = new HashMap<>(16); result.put("NacosConfigProperties", properties); List<NacosPropertySource> all = NacosPropertySourceRepository.getAll(); List<Map<String, Object>> sources = new ArrayList<>(); for (NacosPropertySource ps : all) { Map<String, Object> source = new HashMap<>(16); source.put("dataId", ps.getDataId()); source.put("lastSynced", dateFormat.format(ps.getTimestamp())); sources.add(source); } result.put("Sources", sources); result.put("RefreshHistory", refreshHistory.getRecords()); return result; } }
@ReadOperation public Map<String, Map<String, Object>> references() { Map<String, Map<String, Object>> referencesMetadata = new LinkedHashMap<>(); ReferenceAnnotationBeanPostProcessor beanPostProcessor = getReferenceAnnotationBeanPostProcessor(); referencesMetadata.putAll(buildReferencesMetadata(beanPostProcessor.getInjectedFieldReferenceBeanMap())); referencesMetadata.putAll(buildReferencesMetadata(beanPostProcessor.getInjectedMethodReferenceBeanMap())); return referencesMetadata; }
@ReadOperation public RateLimiterEventsEndpointResponse getAllRateLimiterEvents() { List<RateLimiterEventDTO> eventsList = eventsConsumerRegistry.getAllEventConsumer() .flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(RateLimiterEvent::getCreationTime)) .map(RateLimiterEventDTO::createRateLimiterEventDTO).toJavaList(); return new RateLimiterEventsEndpointResponse(eventsList); }
@ReadOperation public CircuitBreakerEventsEndpointResponse getAllCircuitBreakerEvents() { return new CircuitBreakerEventsEndpointResponse(eventConsumerRegistry.getAllEventConsumer() .flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(CircuitBreakerEvent::getCreationTime)) .map(CircuitBreakerEventDTOFactory::createCircuitBreakerEventDTO).toJavaList()); }
@ReadOperation public RateLimiterEndpointResponse getAllRateLimiters() { List<String> names = rateLimiterRegistry.getAllRateLimiters() .map(RateLimiter::getName).sorted().toJavaList(); return new RateLimiterEndpointResponse(names); } }
@ReadOperation public CircuitBreakerEndpointResponse getAllCircuitBreakers() { List<String> circuitBreakers = circuitBreakerRegistry.getAllCircuitBreakers() .map(CircuitBreaker::getName).sorted().toJavaList(); return new CircuitBreakerEndpointResponse(circuitBreakers); } }
@ReadOperation public CircuitBreakerEventsEndpointResponse getEventsFilteredByCircuitBreakerName(@Selector String name) { return new CircuitBreakerEventsEndpointResponse(eventConsumerRegistry.getEventConsumer(name).getBufferedEvents() .filter(event -> event.getCircuitBreakerName().equals(name)) .map(CircuitBreakerEventDTOFactory::createCircuitBreakerEventDTO).toJavaList()); }
@ReadOperation public RateLimiterEventsEndpointResponse getEventsFilteredByRateLimiterName(@Selector String name) { List<RateLimiterEventDTO> eventsList = eventsConsumerRegistry.getEventConsumer(name).getBufferedEvents() .filter(event -> event.getRateLimiterName().equals(name)) .map(RateLimiterEventDTO::createRateLimiterEventDTO).toJavaList(); return new RateLimiterEventsEndpointResponse(eventsList); }
@ReadOperation public RateLimiterEventsEndpointResponse getEventsFilteredByRateLimiterNameAndEventType(@Selector String name, @Selector String eventType) { RateLimiterEvent.Type targetType = RateLimiterEvent.Type.valueOf(eventType.toUpperCase()); List<RateLimiterEventDTO> eventsList = eventsConsumerRegistry.getEventConsumer(name).getBufferedEvents() .filter(event -> event.getRateLimiterName().equals(name)) .filter(event -> event.getEventType() == targetType) .map(RateLimiterEventDTO::createRateLimiterEventDTO).toJavaList(); return new RateLimiterEventsEndpointResponse(eventsList); } }
@ReadOperation public CircuitBreakerEventsEndpointResponse getEventsFilteredByCircuitBreakerNameAndEventType(@Selector String name, @Selector String eventType) { return new CircuitBreakerEventsEndpointResponse(eventConsumerRegistry.getEventConsumer(name).getBufferedEvents() .filter(event -> event.getCircuitBreakerName().equals(name)) .filter(event -> event.getEventType() == CircuitBreakerEvent.Type.valueOf(eventType.toUpperCase())) .map(CircuitBreakerEventDTOFactory::createCircuitBreakerEventDTO).toJavaList()); } }
@ReadOperation public Map<String, Map<String, Map<String, Object>>> configs() { Map<String, Map<String, Map<String, Object>>> configsMap = new LinkedHashMap<>(); addDubboConfigBeans(ApplicationConfig.class, configsMap); addDubboConfigBeans(ConsumerConfig.class, configsMap); addDubboConfigBeans(MethodConfig.class, configsMap); addDubboConfigBeans(ModuleConfig.class, configsMap); addDubboConfigBeans(MonitorConfig.class, configsMap); addDubboConfigBeans(ProtocolConfig.class, configsMap); addDubboConfigBeans(ProviderConfig.class, configsMap); addDubboConfigBeans(ReferenceConfig.class, configsMap); addDubboConfigBeans(RegistryConfig.class, configsMap); addDubboConfigBeans(ServiceConfig.class, configsMap); return configsMap; }