提交 4a0609ae 编写于 作者: J jialinsun

pull resolve conflicts

......@@ -3,11 +3,23 @@ package com.dianping.cat.config.app;
import java.util.Calendar;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import org.unidal.dal.jdbc.DalException;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.Cat;
import com.dianping.cat.app.AppDataCommand;
import com.dianping.cat.app.AppDataCommandDao;
import com.dianping.cat.app.AppDataCommandEntity;
public class AppDataService {
@Inject
private AppDataCommandDao m_dao;
public static final String SUCCESS_RATIO = "successRatio";
public static final String REQUEST_COUNT = "requestCount";
......@@ -52,6 +64,11 @@ public class AppDataService {
return map;
}
private Map<String, double[]> querySuccessRatio(QueryEntity entity) {
return makeMockValue(SUCCESS_RATIO);
}
private Map<String, double[]> queryDelayAvg(QueryEntity entity) {
return makeMockValue(DELAY_AVG);
......@@ -62,9 +79,31 @@ public class AppDataService {
return makeMockValue(REQUEST_COUNT);
}
private Map<String, double[]> querySuccessRatio(QueryEntity entity) {
return makeMockValue(SUCCESS_RATIO);
public void queryAvg(QueryEntity entity) {
int commandId = entity.getCommand();
Date period = entity.getDate();
int city = entity.getCity();
int operator = entity.getOperator();
int network = entity.getNetwork();
int appVersion = entity.getVersion();
int connnectType = entity.getChannel();
int code = entity.getCode();
int platform = entity.getPlatfrom();
try {
List<AppDataCommand> datas = m_dao.findData(commandId, period, city, operator, network, appVersion,
connnectType, code, platform, AppDataCommandEntity.READSET_DATA);
for (AppDataCommand data : datas) {
int minuteOrder = data.getMinuteOrder();
long count = data.getAccessNumberSum();
long sum = data.getResponseSumTimeSum();
double avg = sum / count;
}
} catch (DalException e) {
Cat.logError(e);
}
}
public static class Statistics {
......
......@@ -16,9 +16,14 @@
<member name="access-number-sum"/>
<member name="response-sum-time-sum"/>
</readset>
<readset name="SUCCESS-DATA">
<member name="minute-order"/>
<member name="code"/>
<member name="access-number-sum"/>
</readset>
</readsets>
<query-defs>
<query name="insert-data" type="INSERT">
<query name="insert-data" type="INSERT">
<param name="command-id" />
<statement><![CDATA[INSERT INTO <TABLE/>(<FIELDS/>)
VALUES(<VALUES/>)]]></statement>
......@@ -59,6 +64,42 @@
</IF>
group by <FIELD name='minute-order'/> ]]></statement>
</query>
<query name="find-success-data" type="SELECT" multiple="true">
<param name="command-id" /><param name="period" />
<param name="period" />
<param name="city" />
<param name="operator" />
<param name="network" />
<param name="app-version" />
<param name="connnect-type" />
<param name="code" />
<param name="platform" />
<statement><![CDATA[SELECT <FIELDS/>
FROM <TABLE/>
WHERE <FIELD name='period'/> = ${period}
<IF type='NOT_ZERO' field='city'>
AND <FIELD name='city'/> = ${city}
</IF>
<IF type='NOT_ZERO' field='operator'>
AND <FIELD name='operator'/> = ${operator}
</IF>
<IF type='NOT_ZERO' field='network'>
AND <FIELD name='network'/> = ${network}
</IF>
<IF type='NOT_ZERO' field='app-version'>
AND <FIELD name='app-version'/> = ${app-version}
</IF>
<IF type='NOT_ZERO' field='connnect-type'>
AND <FIELD name='connnect-type'/> = ${connnect-type}
</IF>
<IF type='NOT_ZERO' field='code'>
AND <FIELD name='code'/> = ${code}
</IF>
<IF type='NOT_ZERO' field='platform'>
AND <FIELD name='platform'/> = ${platform}
</IF>
group by <FIELD name='minute-order'/>,<FIELD name='code'/> ]]></statement>
</query>
</query-defs>
</entity>
</entities>
......@@ -44,18 +44,17 @@ public class AppGraphCreator extends AbstractGraphCreator {
lineChart.setId(startDate.toString());
lineChart.setHtmlTitle(key);
Map<Long, Double> all = convertToMap(datas.get(key), startDate, endDate, 5);
Map<Long, Double> all = convertToMap(datas.get(key), startDate, 5);
lineChart.add(startDate.toString(), all);
}
return lineChart;
}
protected Map<Long, Double> convertToMap(double[] data, Date start, Date end, int step) {
protected Map<Long, Double> convertToMap(double[] data, Date start, int step) {
Map<Long, Double> map = new LinkedHashMap<Long, Double>();
int length = data.length;
long startTime = start.getTime();
long endTime = end.getTime();
long time = startTime;
int i = 0;
......@@ -64,9 +63,6 @@ public class AppGraphCreator extends AbstractGraphCreator {
map.put(time, data[i]);
}
for (; time < endTime; time += step * TimeUtil.ONE_MINUTE) {
map.put(time, -1D);
}
return map;
}
}
......@@ -164,14 +164,33 @@ function graphMetricChart(container, data) {
});
}
function graphMetricChart2(container, data) {
function parseMetricLineDataForApp(data) {
var res = [];
data.subTitles.forEach(function(title, i) {
var series = {}
series.name = title;
series.data = [];
var map = data.datas[i];
var j = 0;
for ( var key in map) {
var value = map[key];
series.data[j] = value;
j++;
}
res.push(series);
});
return res;
}
function graphMetricChartForApp(container, data) {
Highcharts.setOptions({
global : {
useUTC : false
}
});
var ylabelMin = data.minYlable;
var _data = parseMetricLineData(data);
var _data = parseMetricLineDataForApp(data);
$(container).highcharts(
{
chart : {
......@@ -182,16 +201,15 @@ function graphMetricChart2(container, data) {
useHTML: true
},
xAxis : {
type : 'datetime',
dateTimeLabelFormats : {
second : '%H:%M:%S',
minute : '%H:%M',
hour : '%H:%M',
day : '%m-%d',
week : '%Y-%m-%d',
month : '%m-%d',
year : '%Y-%m'
},
type : "category",
labels : {
step : 12,
maxStaggerLines : 1,
formatter: function() {
return this.value / 12;
}
},
max : 288
},
yAxis : {
min : ylabelMin,
......
......@@ -174,7 +174,7 @@
}
var data = ${model.lineChart.jsonString};
graphMetricChart2(document.getElementById('${model.lineChart.id}'), data);
graphMetricChartForApp(document.getElementById('${model.lineChart.id}'), data);
});
</script>
......
package com.dianping.cat.report.analyzer;
import java.text.ParseException;
import java.io.File;
import java.text.SimpleDateFormat;
import org.junit.Test;
import org.unidal.eunit.helper.Files;
import org.unidal.lookup.ComponentTestCase;
import com.dianping.cat.consumer.metric.ProductLineConfigManager;
import com.dianping.cat.home.dependency.graph.entity.TopologyGraph;
import com.dianping.cat.report.page.dependency.graph.TopologyGraphManager;
public class TopologyGraphTest extends ComponentTestCase{
public class TopologyGraphTest extends ComponentTestCase {
@Test
public void test() throws ParseException{
public void test() throws Exception {
build("2014-07-06 18:00");
build("2014-07-06 18:01");
build("2014-07-06 18:02");
build("2014-07-06 18:03");
build("2014-07-06 18:04");
build("2014-07-06 18:05");
build("2014-07-06 18:06");
build("2014-07-06 18:07");
build("2014-07-06 18:08");
build("2014-07-06 18:09");
}
public void build(String date) throws Exception {
TopologyGraphManager manager = lookup(TopologyGraphManager.class);
String date = "2014-07-06 18:00";
SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm");
TopologyGraph graph = manager.queryGraphFromDB(formate.parse(date).getTime());
System.out.println(graph);
}
@Test
public void test1(){
ProductLineConfigManager manager = lookup(ProductLineConfigManager.class);
System.out.println(manager.getCompany());
try {
TopologyGraph graph = manager.queryGraphFromDB(formate.parse(date).getTime());
if (graph != null) {
File file = new File("/tmp/" + date + ".txt");
if (!file.exists()) {
file.createNewFile();
}
Files.forIO().writeTo(file, graph.toString());
}else{
System.err.println(date+" is null1");
}
} catch (Exception e) {
System.err.println(date+" is null1");
}
}
}
......@@ -328,7 +328,7 @@ CREATE TABLE `alert_summary` (
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统一告警信息';
CREATE TABLE `app_data_command` (
CREATE TABLE `app_data_command_1` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
`period` date NOT NULL COMMENT '时间',
`minute_order` smallint NOT NULL COMMENT '分钟',
......@@ -353,8 +353,4 @@ CREATE TABLE `app_data_command` (
KEY IX_period_connnect_minute (period,connnect_type,minute_order),
KEY IX_period_platform_minute (period,platform,minute_order),
KEY IX_period_code_minute (period,code,minute_order)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='app基本数据';
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='app基本数据';
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册