본문 바로가기

Monitoring Tools/Pinpoint

pinpoint | 12. WEB - Alarm 설정

반응형
## mail smtp 정보 수정
 
 
[root@localhost classes]# pwd
/usr/local/pinpoint/tomcat9/webapps/ROOT/WEB-INF/classes
[root@localhost classes]# vim batch.properties
 
#batch enable config
batch.enable=true
 
#batch server ip to execute batch
#pinpoint web서버가 2대 이상일 경우에 동일한 batch가 여러대의 서버에서 동시에 실행되는것을 방지하기 위한 기능이다. batch.properties 파일에 설정한 ip의 값과 #pinpoint-web 서버의 ip가 일치할 경우에만 batch가 동작이 된다. (127.0.0.1을 설정한 경우 모든 pinpoint web에서 batch가 동작 된다.)
batch.server.ip=192.168.6.131
batch.server.env=release
 
#smtp config
pinpoint.url=http://192.168.6.131
alarm.mail.server.url=1.234.47.18
alarm.mail.server.port=25
alarm.mail.server.username=
alarm.mail.server.password=
alarm.mail.sender.address=gjpark@coocha.com
 
alarm.mail.transport.protocol=smtp
alarm.mail.smtp.port=25
alarm.mail.smtp.auth=false
alarm.mail.smtp.starttls.enable=false
alarm.mail.smtp.starttls.required=false
alarm.mail.debug=false
 
#flink server list
batch.flink.server=
 
 
## spring profile 옵션에 batch 추가
[root@localhost classes]# vim /usr/local/pinpoint/tomcat9/bin/setenv.sh
 
#!/bin/sh
 
-- 중략 --
 
CATALINA_OPTS="$CATALINA_OPTS -Dspring.profiles.active=release,batch"
 
## 톰캣 재시작
 
## 기타
 
batch의 동작 주기를 조정하고 싶다면 applicationContext-batch-schedule.xml 파일의 cron expression을 수정하면 된다.
<task:scheduled-tasks scheduler="scheduler">
    <task:scheduled ref="batchJobLauncher" method="alarmJob" cron="0 0/3 * * * *" />
</task:scheduled-tasks>
 
alarm batch 성능을 높이는 방법은 다음과 같다. alarm batch 성능 튜닝을 위해서 병렬로 동작이 가능하도록 구현을 해놨다. 그래서 아래에서 언급된 조건에 해당하는 경우 설정값을 조정한다면 성능을 향상 시킬수 있다. 단 병렬성을 높이면 리소스의 사용률이 높아지는것은 감안해야한다.
alarm이 등록된 application의 개수가 많다면 applicationContext-batch.xml 파일의 poolTaskExecutorForPartition의 pool size를 늘려주면 된다.
<task:executor id="poolTaskExecutorForPartition" pool-size="1" />
 
application 각각마다 등록된 alarm의 개수가 많다면 applicationContext-batch.xml 파일에 선언된 alarmStep이 병렬로 동작되도록 설정하면 된다.
<step id="alarmStep" xmlns="http://www.springframework.org/schema/batch">
    <tasklet task-executor="poolTaskExecutorForStep" throttle-limit="3">
        <chunk reader="reader" processor="processor" writer="writer" commit-interval="1"/>
    </tasklet>
</step>
<task:executor id="poolTaskExecutorForStep" pool-size="10" />

 

alarm rule 설명 : https://github.com/naver/pinpoint/blob/master/doc/alarm.md#3-configuring-mysql

 

SLOW COUNT

외부에서 application을 호출한 요청 중에 외부서버로 응답을 늦게 준 요청의 개수가 임계치를 초과한 경우 알람이 전송된다.

 

SLOW RATE

외부에서 application을 호출한 요청 중에 외부서버로 응답을 늦게 준 요청의 비율(%)이 임계치를 초과한 경우 알람이 전송된다.

 

ERROR COUNT

외부에서 application을 호출한 요청 중에 에러가 발생한 요청의 개수가 임계치를 초과한 경우 알람이 전송된다.

 

ERROR RATE

외부에서 application을 호출한 요청 중에 에러가 발생한 요청의 비율(%)이 임계치를 초과한 경우 알람이 전송된다.

 

TOTAL COUNT

외부에서 application을 호출한 요청 개수가 임계치를 초과한 경우 알람이 전송된다.

 

SLOW COUNT TO CALLEE

application 내에서 외부서버를 호출한 요청 중 slow 호출의 개수가 임계치를 초과한 경우 알람이 전송된다. 설정 화면의 Note 항목에 외부서버의 도메인 이나 주소(ip, port)를 입력해야 합니다. ex) naver.com, 127.0.0.1:8080

 

SLOW RATE TO CALLEE

application 내에서 외부서버를 호출한 요청 중 slow 호출의 비율(%)이 임계치를 초과한 경우 알람이 전송된다. 설정 화면의 Note 항목에 외부서버의 도메인 이나 주소(ip, port)를 입력해야 합니다. ex) naver.com, 127.0.0.1:8080

 

ERROR COUNT TO CALLEE

application 내에서 외부서버를 호출한 요청 중 error 가 발생한 호출의 개수가 임계치를 초과한 경우 알람이 전송된다. 설정 화면의 Note 항목에 외부서버의 도메인 이나 주소(ip, port)를 입력해야 합니다. ex) naver.com, 127.0.0.1:8080

 

ERROR RATE TO CALLEE

application 내에서 외부서버를 호출한 요청 중 error 가 발생한 호출의 비율이 임계치를 초과한 경우 알람이 전송된다. 설정 화면의 Note 항목에 외부서버의 도메인 이나 주소(ip, port)를 입력해야 합니다. ex) naver.com, 127.0.0.1:8080

 

TOTAL COUNT TO CALLEE

application 내에서 외부서버를 호출한 요청의 개수가 임계치를 초과한 경우 알람이 전송된다. 설정 화면의 Note 항목에 외부서버의 도메인 이나 주소(ip, port)를 입력해야 합니다. ex) naver.com, 127.0.0.1:8080

 

HEAP USAGE RATE

heap의 사용률이 임계치를 초과한 경우 알람이 전송된다.

 

JVM CPU USAGE RATE

applicaiton의 CPU 사용률이 임계치를 초과한 경우 알람이 전송된다.

 

SYSTEM CPU USAGE RATE

서버의 CPU 사용률이 임계치를 초과한 경우 알람이 전송된다.

 

DATASOURCE CONNECTION USAGE RATE

applicaiton의 DataSource내의 Connection 사용률이 임계치를 초과한 경우 알람이 전송된다.

 

FILE DESCRIPTOR COUNT

열려있는 File Descriptor 개수가 임계치를 초가한 경우 알람이 전송된다.

 

반응형