Статьи

Мои ошибки ColdFusion визуализированы

Одна последняя запись в блоге, прежде чем я войду в забвение Марди Гра. Ранее на этой неделе я вошел в базу ошибок ColdFusion и заметил, что в системе было более 500 ошибок. Я подумал, что это круто, и мне было интересно, смогу ли я увидеть сводные данные о моих отчетах об ошибках.

Зная, что это Ajax-приложение, я открыл свои инструменты разработки и посмотрел на запрос. Вот URL (я добавил несколько пробелов, чтобы он был перенесен):

https://bugbase.adobe.com/index.cfm? event = qHome & page = 1 & pageSize = 25 & gridsortcolumn = & gridsortdirection = ASC & _cf_nodebug = true & _cf_nocache = true & _cf_clientid = 89DF20803129085712725A599228C03B & _cf_rc = 0

Заметьте переменную размера страницы? По какой-то причине я изменил это на 600, и это сработало. Примечание для разработчиков: когда вы позволяете клиенту указывать размер страницы, вы, вероятно, захотите включить разумный максимум. Я взял пакет JSON и сохранил его локально.

Следующая часть была простой. Я написал несколько быстрых jQuery, чтобы поразить JSON и перебрать все значения. На данный момент мне было просто интересно узнать о состоянии моих ошибок, поэтому мой код создал счетчик для каждого значения состояния.

$.getJSON("./mybugs.json", function(res) {

	var statusStats = {};

	var data = res.QUERY;
	var cols = {};
	for(var i=0;i<data.COLUMNS.length;i++) {
		cols[data.COLUMNS[i]] = i;
	}
	for(var i=0; i<data.DATA.length; i++) {
		var status = data.DATA[i][cols["AD_S_STATUS"]];
		if(statusStats[status]) {
			statusStats[status]++;
		} else {
			statusStats[status]=1;	
			}
	}

 Затем я решил — давайте сделаем это красиво. Я добавил код Highcharts для отображения результатов в круговой диаграмме. Мне пришлось немного поссориться с данными, но за пределами этого я буквально просто вырезал и вставил их пример кода. Результат:

Вы можете просмотреть его (и просмотреть источник) здесь: http://www.raymondcamden.com/demos/2014/feb/28/test2.html

Наслаждаться. Теперь я собираюсь поймать несколько дешевых бусинок.