Merge pull request #847 from minwoo-jung/issue-762

Issue 762
This commit is contained in:
Minwoo Jung
2015-08-18 17:14:44 +09:00
3 changed files with 56 additions and 324 deletions
@@ -1,121 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>User Group</title>
<SCRIPT type="text/javascript">
var groupSize = ${fn:length(groupMember)};
// add input form when clicked add button
function append_member_input() {
groupSize++;
var table = document.getElementById("empGroup");
var row = table.insertRow(table.rows.length-2);
row.insertCell(0).innerHTML = '<input name="choose" type="checkbox"/>';
row.insertCell(1).innerHTML = '<input type="hidden" name=emps[' + groupSize + '].id value="0"/><input name=emps[' + groupSize + '].groupName type="text"/>';
row.insertCell(2).innerHTML = '<input name=emps[' + groupSize + '].empId type="text" />';
}
//delete input form when clicked delete button
function remove_member_input() {
var table = document.getElementById("empGroup");
var choose = document.getElementsByName("choose");
for (var i=0; i<choose.length; i++){
if (choose[i].checked){
if (choose.length > 1) {
table.deleteRow(i + 3);
i--;
}
}
}
}
function onSubmitForm()
{
if(document.pressed == 'insert') {
document.empGroupForm.action ="./insertMember.pinpoint";
} else if(document.pressed == 'update') {
document.empGroupForm.action ="./updateMember.pinpoint";
} else if(document.pressed == 'delete') {
document.empGroupForm.action ="./deleteMember.pinpoint";
}
return true;
}
</SCRIPT>
</head>
<body>
<!-- screen name -->
<center>
<h1>Setting for user group</h1>
</center>
<!-- Search for user group -->
<center>
<form action="./getMember.pinpoint">
<select name="groupName">
<c:forEach var="groupName" items="${groupNameList}">
<option value="${groupName}">${groupName}</option>
</c:forEach>
</select>
<button value="Search">Search</button>
</form>
</br>
</center>
<!-- employee list -->
<center>
<form name="empGroupForm" method="post" onsubmit="return onSubmitForm();">
<table id="empGroup" frame="void" border="1">
<!-- Add employee -->
<tr bordercolor="white">
<td align="left" colspan="3">
<button type="button" onclick='append_member_input()'>add</button>
<button type="button" onclick='remove_member_input()'>delete</button>
</td>
</tr>
<tr bordercolor="white">
</tr>
<!-- employee information list -->
<tr>
<th>Delete</th>
<th>Group Name</th>
<th>Employee Id</th>
</tr>
<c:forEach var="emp" items="${groupMember}" varStatus="empIndex">
<tr>
<td><input name="choose" type="checkbox"/></td>
<td><input type="hidden" name="emps[${empIndex.index}].id" value="${emp.id}"/><input type="text" name="emps[${empIndex.index}].groupName" value="${emp.groupName}"/></td>
<td><input type="text" name="emps[${empIndex.index}].empId" value="${emp.empId}"/></td>
</tr>
</c:forEach>
<!-- register/modify employee information -->
<tr bordercolor="white">
</tr>
<tr bordercolor="white">
<td align="right" colspan="3">
<button onclick="document.pressed=this.value" value="insert">new</button>
<button onclick="document.pressed=this.value" value="update">save</button>
<button onclick="document.pressed=this.value" value="delete">delete group</button>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
@@ -1,203 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Rule Group</title>
<SCRIPT type="text/javascript">
var ruleSize = ${fn:length(ruleList)};
// add input form when clicked add button
function append_rule_input() {
ruleSize++;
var table = document.getElementById("ruleGroup");
var row = table.insertRow(table.rows.length-2);
row.insertCell(0).innerHTML = '<input name="choose" type="checkbox"/>';
row.insertCell(1).innerHTML = '<input type="hidden" name="ruleList[' + ruleSize + '].id" value="0"/><input type="text" name="ruleList[' + ruleSize + '].applicationId"/>';
row.insertCell(2).innerHTML = '<select name="ruleList[' + ruleSize + '].checkerName">'
+ ' <c:forEach var="checkerName" items="${checkerNameList}">'
+ ' <option value="${checkerName}">${checkerName}</option>'
+ ' </c:forEach>'
+ '</select>';
row.insertCell(3).innerHTML = '<input type="text" name="ruleList[' + ruleSize + '].threshold"/>';
row.insertCell(4).innerHTML = '<select name="ruleList[' + ruleSize + '].empGroup">'
+ ' <c:forEach var="groupName" items="${empGroupNameList}">'
+ ' <option value="${groupName}">${groupName}</option>'
+ ' </c:forEach>'
+ '</select>';
row.insertCell(5).innerHTML = '<select name="ruleList[' + ruleSize+ '].smsSend">'
+ ' <option value="true">true</option>'
+ ' <option value="false">false</option>'
+ '</select>';
row.insertCell(6).innerHTML = '<select name="ruleList[' + ruleSize+ '].emailSend">'
+ ' <option value="true">true</option>'
+ ' <option value="false">false</option>'
+ '</select>';
row.insertCell(7).innerHTML = '<input type="text" name="ruleList[' + ruleSize + '].notes" value="${rule.notes}"/>'
}
//delete input form when clicked delete button
function remove_rule_input() {
var table = document.getElementById("ruleGroup");
var choose = document.getElementsByName("choose");
for (var i=0; i<choose.length; i++){
if (choose[i].checked){
if (choose.length > 1) {
table.deleteRow(i + 3);
i--;
}
}
}
}
function onSubmitForm()
{
if(document.pressed == 'insert') {
document.ruleGroupForm.action ="./insertRule.pinpoint";
} else if(document.pressed == 'update') {
document.ruleGroupForm.action ="./updateRule.pinpoint";
} else if(document.pressed == 'delete') {
document.ruleGroupForm.action ="./deleteRule.pinpoint";
}
return true;
}
</SCRIPT>
</head>
<body>
<!-- Screen name -->
<center>
<h1>Setting Alarm rule</h1>
</center>
<!-- Search application -->
<center>
<form action="./getRule.pinpoint">
<select name="applicationName">
<c:forEach var="applicationName" items="${applicationNameList}">
<option value="${applicationName}">${applicationName}</option>
</c:forEach>
</select>
<button value="Search">Search</button>
</form>
</br>
</center>
<!-- employee list -->
<center>
<form name="ruleGroupForm" method="post" onsubmit="return onSubmitForm();">
<table id="ruleGroup" frame="void" border="1">
<!-- add employee -->
<tr bordercolor="white">
<td align="left" colspan="8">
<button type="button" onclick='append_rule_input()'>new</button>
<button type="button" onclick='remove_rule_input()'>delete</button>
</td>
</tr>
<tr bordercolor="white">
</tr>
<!-- employee information list -->
<tr>
<th>Delete</th>
<th>Application name</th>
<th>Rule</th>
<th>Limits</th>
<th>Employee groupName</th>
<th>Sending sms</th>
<th>Sending email</th>
<th>ETC</th>
</tr>
<c:forEach var="rule" items="${ruleList}" varStatus="ruleIndex">
<tr>
<td><input name="choose" type="checkbox"/></td>
<td><input type="hidden" name="ruleList[${ruleIndex.index}].id" value="${rule.id}"/><input type="text" name="ruleList[${ruleIndex.index}].applicationId" value="${rule.applicationId}"/></td>
<td>
<select name="ruleList[${ruleIndex.index}].checkerName">
<c:forEach var="checkerName" items="${checkerNameList}">
<c:choose>
<c:when test="${rule.checkerName == checkerName}">
<option value="${checkerName}" selected="selected">${checkerName}</option>
</c:when>
<c:when test="${rule.checkerName != checkerName}">
<option value="${checkerName}">${checkerName}</option>
</c:when>
</c:choose>
</c:forEach>
</select>
</td>
<td><input type="text" name="ruleList[${ruleIndex.index}].threshold" style="text-align:right;" value="${rule.threshold}"/></td>
<td>
<select name="ruleList[${ruleIndex.index}].empGroup">
<c:forEach var="groupName" items="${empGroupNameList}">
<c:choose>
<c:when test="${rule.empGroup == groupName}">
<option value="${groupName}" selected="selected">${groupName}</option>
</c:when>
<c:when test="${rule.empGroup != groupName}">
<option value="${groupName}">${groupName}</option>
</c:when>
</c:choose>
</c:forEach>
</select>
</td>
<td>
<select name="ruleList[${ruleIndex.index}].smsSend">
<c:choose>
<c:when test="${rule.smsSend == true}">
<option value="true" selected="selected">true</option>
<option value="false">false</option>
</c:when>
<c:when test="${rule.empGroup == false}">
<option value="true">true</option>
<option value="false" selected="selected">false</option>
</c:when>
</c:choose>
</select>
</td>
<td>
<select name="ruleList[${ruleIndex.index}].emailSend">
<c:choose>
<c:when test="${rule.emailSend == true}">
<option value="true" selected="selected">true</option>
<option value="false">false</option>
</c:when>
<c:when test="${rule.emailSend == false}">
<option value="true">true</option>
<option value="false" selected="selected">false</option>
</c:when>
</c:choose>
</select>
</td>
<td>
<input type="text" name="ruleList[${ruleIndex.index}].notes" value="${rule.notes}"/>
</td>
</tr>
</c:forEach>
<!-- register/modify rules -->
<tr bordercolor="white">
</tr>
<tr bordercolor="white">
<td align="right" colspan="8">
<button onclick="document.pressed=this.value" value="insert">new</button>
<button onclick="document.pressed=this.value" value="update">save</button>
<button onclick="document.pressed=this.value" value="delete">delete all</button>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
+56
View File
@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
batch는 3분에 한번씩 동작이 됩니다.
최근 5분동안의 데이터를 수집해서 alarm 조건을 만족하면 user group의 담당자들에게 sms/email을 전송합니다.
alarm rule의 종류 및 설명은 아래와 같습니다.
SLOW_COUNT
application 내에서 외부서버를 호출한 요청 중 slow 호출의 개수가 임계치를 초과한 경우 알람이 전송된다.
SLOW_RATE
application 내에서 외부서버를 호출한 요청 중 slow 호출의 비율(%)이 임계치를 초과한 경우 알람이 전송된다.
ERROR_COUNT
application 내에서 외부서버를 호출한 요청 중 error 가 발생한 호출의 개수가 임계치를 초과한 경우 알람이 전송된다.
ERROR_RATE
application 내에서 외부서버를 호출한 요청 중 error 가 발생한 호출의 비율이 임계치를 초과한 경우 알람이 전송된다.
RESPONSE_COUNT
application 내에서 외부서버를 호출한 요청의 개수가 임계치를 초과한 경우 알람이 전송된다.
SLOW_COUNT_TO_CALLE
외부에서 application을 호출한 요청 중에 외부서버로 응답을 늦게 준 요청의 개수가 임계치를 초과한 경우 알람이 전송된다.
SLOW_RATE_TO_CALLE
외부에서 application을 호출한 요청 중에 외부서버로 응답을 늦게 준 요청의 비율(%)이 임계치를 초과한 경우 알람이 전송된다.
ERROR_COUNT_TO_CALLE
외부에서 application을 호출한 요청 중에 에러가 발생한 요청의 개수가 임계치를 초과한 경우 알람이 전송된다.
ERROR_RATE_TO_CALLE
외부에서 application을 호출한 요청 중에 에러가 발생한 요청의 비율(%)이 임계치를 초과한 경우 알람이 전송된다.
TOTAL_COUNT_TO_CALLE
외부에서 application을 호출한 요청 개수가 임계치를 초과한 경우 알람이 전송된다.
HEAP_USAGE_RATE
heap의 사용률이 임계치를 초과한 경우 알람이 전송된다.
GC_COUNT
GC가 수행된 개수가 임계치를 초과한 경우 알람이 전송된다.
JVM_CPU_USAGE_RATE
applicaiton의 CPU 사용률이 임계치를 초과한 경우 알람이 전송된다.
</body>
</html>