mirror of
https://github.com/wahyd4/pinpoint.git
synced 2026-08-18 17:26:14 +10:00
@@ -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>
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user