提交 8c497469 编写于 作者: L liangfei0201

DUBBO-467 MonitorService增加lookup方法便于集成

上级 82c79fbf
......@@ -15,6 +15,8 @@
*/
package com.alibaba.dubbo.monitor;
import java.util.List;
import com.alibaba.dubbo.common.URL;
/**
......@@ -61,10 +63,27 @@ public interface MonitorService {
String MAX_CONCURRENT = "max.concurrent";
/**
* collect.
* 监控数据采集.
* 1. 支持调用次数统计:count://host/interface?application=foo&method=foo&provider=10.20.153.11:20880&success=12&failure=2&elapsed=135423423
* 1.1 host,application,interface,group,version,method 记录监控来源主机,应用,接口,方法信息。
* 1.2 如果是消费者发送的数据,加上provider地址参数,反之,加上来源consumer地址参数。
* 1.3 success,faulure,elapsed 记录距上次采集,调用的成功次数,失败次数,成功调用总耗时,平均时间将用总耗时除以成功次数。
*
* @param statistics
*/
void collect(URL statistics);
/**
* 监控数据查询. 
* 1. 支持按天查询:count://host/interface?application=foo&method=foo&side=provider&view=chart&date=2012-07-03
* 1.1 host,application,interface,group,version,method 查询主机,应用,接口,方法的匹配条件,缺失的条件的表示全部,host用0.0.0.0表示全部。
* 1.2 side=consumer,provider 查询由调用的哪一端采集的数据,缺省为都查询。
* 1.3 缺省为view=summary,返回全天汇总信息,支持view=chart表示返回全天趋势图表图片的URL地址,可以进接嵌入其它系统的页面上展示。
* 1.4 date=2012-07-03 指定查询数据的日期,缺省为当天。
*
* @param query
* @return statistics
*/
List<URL> lookup(URL query);
}
\ No newline at end of file
......@@ -17,6 +17,8 @@ package com.alibaba.dubbo.monitor.support;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Arrays;
import java.util.List;
import junit.framework.Assert;
......@@ -83,6 +85,9 @@ public class MonitorFilterTest {
public void collect(URL statistics) {
MonitorFilterTest.this.lastStatistics = statistics;
}
public List<URL> lookup(URL query) {
return Arrays.asList(MonitorFilterTest.this.lastStatistics);
}
};
}
};
......
......@@ -15,6 +15,7 @@
*/
package com.alibaba.dubbo.monitor.dubbo;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
......@@ -181,6 +182,10 @@ public class DubboMonitor implements Monitor {
} while (! reference.compareAndSet(current, update));
}
public List<URL> lookup(URL query) {
return monitorService.lookup(query);
}
public URL getUrl() {
return monitorInvoker.getUrl();
}
......
......@@ -15,6 +15,9 @@
*/
package com.alibaba.dubbo.monitor.dubbo;
import java.util.Arrays;
import java.util.List;
import junit.framework.Assert;
import org.junit.Test;
......@@ -63,6 +66,10 @@ public class DubboMonitorTest {
public void collect(URL statistics) {
DubboMonitorTest.this.lastStatistics = statistics;
}
public List<URL> lookup(URL query) {
return Arrays.asList(DubboMonitorTest.this.lastStatistics);
}
};
......
......@@ -15,6 +15,9 @@
*/
package com.alibaba.dubbo.monitor.dubbo;
import java.util.Arrays;
import java.util.List;
import com.alibaba.dubbo.common.URL;
import com.alibaba.dubbo.monitor.MonitorService;
......@@ -35,4 +38,8 @@ public class MockMonitorService implements MonitorService {
return statistics;
}
public List<URL> lookup(URL query) {
return Arrays.asList(statistics);
}
}
......@@ -28,6 +28,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executors;
......@@ -426,4 +427,9 @@ public class SimpleMonitorService implements MonitorService {
}
}
public List<URL> lookup(URL query) {
// TODO Auto-generated method stub
return null;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册