use of com.alibaba.dubbo.monitor.simple.common.Page in project incubator-dubbo-ops by apache.
the class UnregisterPageHandler method handle.
public Page handle(URL url) {
String provider = url.getParameterAndDecoded("provider");
if (provider == null || provider.length() == 0) {
throw new IllegalArgumentException("Please input provider parameter.");
}
URL providerUrl = URL.valueOf(provider);
RegistryContainer.getInstance().getRegistry().unregister(providerUrl);
String parameter;
if (url.hasParameter("service")) {
parameter = "service=" + url.getParameter("service");
} else if (url.hasParameter("host")) {
parameter = "host=" + url.getParameter("host");
} else if (url.hasParameter("application")) {
parameter = "application=" + url.getParameter("application");
} else {
parameter = "service=" + providerUrl.getServiceInterface();
}
return new Page("<script type=\"text/javascript\">window.location.href=\"providers.html?" + parameter + "\";</script>");
}
use of com.alibaba.dubbo.monitor.simple.common.Page in project incubator-dubbo-ops by apache.
the class UnsubscribePageHandler method handle.
public Page handle(URL url) {
String consumer = url.getParameterAndDecoded("consumer");
if (consumer == null || consumer.length() == 0) {
throw new IllegalArgumentException("Please input consumer parameter.");
}
URL consumerUrl = URL.valueOf(consumer);
RegistryContainer.getInstance().getRegistry().unsubscribe(consumerUrl, NotifyListenerAdapter.NOTIFY_LISTENER);
String parameter;
if (url.hasParameter("service")) {
parameter = "service=" + url.getParameter("service");
} else if (url.hasParameter("host")) {
parameter = "host=" + url.getParameter("host");
} else if (url.hasParameter("application")) {
parameter = "application=" + url.getParameter("application");
} else {
parameter = "service=" + consumerUrl.getServiceInterface();
}
return new Page("<script type=\"text/javascript\">window.location.href=\"consumers.html?" + parameter + "\";</script>");
}
use of com.alibaba.dubbo.monitor.simple.common.Page in project incubator-dubbo-ops by apache.
the class ChartsPageHandler method handle.
public Page handle(URL url) {
String service = url.getParameter("service");
if (service == null || service.length() == 0) {
throw new IllegalArgumentException("Please input service parameter.");
}
String date = url.getParameter("date");
if (date == null || date.length() == 0) {
date = new SimpleDateFormat("yyyyMMdd").format(new Date());
}
List<List<String>> rows = new ArrayList<List<String>>();
String directory = ConfigUtils.getProperty("dubbo.charts.directory");
File chartsDir = new File(directory);
String filename = directory + "/" + date + "/" + service;
File serviceDir = new File(filename);
if (serviceDir.exists()) {
File[] methodDirs = serviceDir.listFiles();
for (File methodDir : methodDirs) {
String methodUri = chartsDir.getName() + "/" + date + "/" + service + "/" + methodDir.getName() + "/";
rows.add(toRow(methodDir, methodUri));
}
}
StringBuilder nav = new StringBuilder();
nav.append("<a href=\"services.html\">Services</a> > ");
nav.append(service);
nav.append(" > <a href=\"providers.html?service=");
nav.append(service);
nav.append("\">Providers</a> | <a href=\"consumers.html?service=");
nav.append(service);
nav.append("\">Consumers</a> | <a href=\"statistics.html?service=");
nav.append(service);
nav.append("&date=");
nav.append(date);
nav.append("\">Statistics</a> | Charts > <input type=\"text\" style=\"width: 65px;\" name=\"date\" value=\"");
nav.append(date);
nav.append("\" onkeyup=\"if (event.keyCode == 10 || event.keyCode == 13) {window.location.href='charts.html?service=");
nav.append(service);
nav.append("&date=' + this.value;}\" />");
return new Page(nav.toString(), "Charts (" + rows.size() + ")", new String[] { "Method", "Requests per second (QPS)", "Average response time (ms)" }, rows);
}
use of com.alibaba.dubbo.monitor.simple.common.Page in project incubator-dubbo-ops by apache.
the class ConsumersPageHandler method handle.
public Page handle(URL url) {
String service = url.getParameter("service");
String host = url.getParameter("host");
String application = url.getParameter("application");
if (service != null && service.length() > 0) {
List<List<String>> rows = new ArrayList<List<String>>();
List<URL> consumers = RegistryContainer.getInstance().getConsumersByService(service);
if (consumers != null && consumers.size() > 0) {
for (URL u : consumers) {
List<String> row = new ArrayList<String>();
String s = u.toFullString();
row.add(s.replace("&", "&"));
row.add("<button onclick=\"if(confirm('Confirm unsubscribe consumer?')){window.location.href='unsubscribe.html?service=" + service + "&consumer=" + URL.encode(s) + "';}\">Unsubscribe</button>");
rows.add(row);
}
}
return new Page("<a href=\"services.html\">Services</a> > " + service + " > <a href=\"providers.html?service=" + service + "\">Providers</a> | Consumers | <a href=\"statistics.html?service=" + service + "\">Statistics</a> | <a href=\"charts.html?service=" + service + "\">Charts</a>", "Consumers (" + rows.size() + ")", new String[] { "Consumer URL:", "Unsubscribe" }, rows);
} else if (host != null && host.length() > 0) {
List<List<String>> rows = new ArrayList<List<String>>();
List<URL> consumers = RegistryContainer.getInstance().getConsumersByHost(host);
if (consumers != null && consumers.size() > 0) {
for (URL u : consumers) {
List<String> row = new ArrayList<String>();
String s = u.toFullString();
row.add(s.replace("&", "&"));
row.add("<button onclick=\"if(confirm('Confirm unsubscribe consumer?')){window.location.href='unsubscribe.html?host=" + host + "&consumer=" + URL.encode(s) + "';}\">Unsubscribe</button>");
rows.add(row);
}
}
return new Page("<a href=\"hosts.html\">Hosts</a> > " + NetUtils.getHostName(host) + "/" + host + " > <a href=\"providers.html?host=" + host + "\">Providers</a> | Consumers", "Consumers (" + rows.size() + ")", new String[] { "Consumer URL:", "Unsubscribe" }, rows);
} else if (application != null && application.length() > 0) {
List<List<String>> rows = new ArrayList<List<String>>();
List<URL> consumers = RegistryContainer.getInstance().getConsumersByApplication(application);
if (consumers != null && consumers.size() > 0) {
for (URL u : consumers) {
List<String> row = new ArrayList<String>();
String s = u.toFullString();
row.add(s.replace("&", "&"));
row.add("<button onclick=\"if(confirm('Confirm unsubscribe consumer?')){window.location.href='unsubscribe.html?application=" + application + "&consumer=" + URL.encode(s) + "';}\">Unsubscribe</button>");
rows.add(row);
}
}
return new Page("<a href=\"applications.html\">Applications</a> > " + application + " > <a href=\"providers.html?application=" + application + "\">Providers</a> | Consumers | <a href=\"dependencies.html?application=" + application + "\">Depends On</a> | <a href=\"dependencies.html?application=" + application + "&reverse=true\">Used By</a>", "Consumers (" + rows.size() + ")", new String[] { "Consumer URL:", "Unsubscribe" }, rows);
} else {
throw new IllegalArgumentException("Please input service or host or application parameter.");
}
}
use of com.alibaba.dubbo.monitor.simple.common.Page in project incubator-dubbo-ops by apache.
the class HomePageHandler method handle.
public Page handle(URL url) {
List<List<String>> rows = new ArrayList<List<String>>();
for (PageHandler handler : PageServlet.getInstance().getMenus()) {
String uri = ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler);
Menu menu = handler.getClass().getAnnotation(Menu.class);
List<String> row = new ArrayList<String>();
row.add("<a href=\"" + uri + ".html\">" + menu.name() + "</a>");
row.add(menu.desc());
rows.add(row);
}
return new Page("Home", "Menus", new String[] { "Menu Name", "Menu Desc" }, rows);
}
Aggregations