SlideShare a Scribd company logo
1 of 63
Download to read offline
Gunhee Lee
SCOUTER commiter
gunlee01@gmail.com
Scouter
Tutorial & Sprint
이건희 ­ 그분은 아닙니다.
소 개 생 략 !
그래서 구글서 검색 안됨
- 설치 및 실행
- 화면 구성 및 기본 조작
- Perspective를 통한 대시보드 구성과 Tip
- plugin : java agent
- plugin : server
- 사용자 정의 알람
이야기 할 것 (1부) - 튜토리얼
- Scouter 개발환경 구성 (사전 준비)
- Scouter 소스의 대략적인 구성
- Server Plugin 소스 분석
- Web api 소스 분석
이야기 할 것 (2부) - 스프린트
아키텍처는? Agent, Collector, Client
WAS
Java Agent
WEB

application
Host Agent
Scouter
Collector
Server
성능 정보 전송
성증정보 수집
Scouter
Client성능정보
요청
SCOUTER
Scouter 설치 및 실행
# wget https://github.com/scouter-project/scouter/releases/download/
v1.7.3.1/scouter-all-1.7.3.1.tar.gz
# tar -xvzf scouter*
# cd scouter.server
# ./startup.sh
대략 이런식 …
Scouter 설치 및 실행
걍 블로그 보고 따라하면 됩니다.
https://goo.gl/Sydxhb
Scouter 설치 및 실행
여기서는 데모 시스템으로 설치해 봅니다.
https://goo.gl/YHoJS9
화면 구성 및 기본 조작
Object
Alert
Active Service
CPU
Visitor
Throughput
Elapsed
Heap
XLOG
Active service Top
Today call count
Active speed
화면 구성 및 기본 조작
Active Service
화면 구성 및 기본 조작
Active Service
화면 구성 및 기본 조작
XLog
화면 구성 및 기본 조작
Profile
화면 구성 및 기본 조작
Object View
performance counter
Object request
화면 구성 및 기본 조작
Object View와
성능 counter
화면 구성 및 기본 조작
Object request
Perspective
obj type & obj family
Scouter는 obj_type 별로 차트를 보여준다.(일종의 그루핑)
- obj_type은 설정에서 수정 가능
obj_family는 모니터링 대상의 종류이다.
obj type & obj family
복수개의 시스템을
하나의 수집서버로
모니터링 하는 경우
obj_type을 각각
설정하여
perspective를
구성할 수 있다.
https://goo.gl/pN13m8
Scouter In Practice
- Scouter Plugin
Scouter Plugin
WAS
Java Agent
WEB

application
Scouter
Collector
Server
Scripting

plugin
Built-in

plugin
Scripting plugin
WAS
Java Agent
WEB

application
Scripting

plugin
- http service plugin
http의 요청 시작 & 끝
- http call plugin
http client로 원격 서비스 호출시
- capture plugin
지정한 메소드의 시작 & 끝
Agent Plugin을 통한 사용자ID 프로파일
Http service plugin
1. 세션에서 user id 획득
String userId =

$req.getSessionAttribute(“userId”);
Java Agent ­ Http service plugin
2. XLog 항목에 id로 추가
$ctx.login(userId);
Agent Plugin을 통한 사용자ID 프로파일
Java Agent ­ Http service plugin
3. Profile에 사용자 정의 문장 기입
$ctx.profile(“Login ID = ” + userId);
Agent Plugin을 통한 사용자ID 프로파일
$ctx.login(userId);
$ctx.profile(“### It’s user defined …” + userId);
Agent Plugin을 통한 사용자ID 프로파일
Agent Plugin을 통한 Parameter debugging
Agent Plugin을 통한 Parameter debugging
A서비스가 가끔 에러가 발생하거나 느려지는데…
파라미터 확인만 되면 해결할 수 있을 듯…
근데 로깅 불가… 재기동 불가…
Agent Plugin을 통한 Parameter debugging
Capture plugin
+ hook_args_patterns
+ redefine class
Built-in Plugin (Server plugin)
WAS
Java Agent
WEB

application
Scouter
Collector
Server
Scripting

plugin
Built-in

plugin
Scouter-Alert-Telegram
Built-in Plugin (Server plugin)
Scouter-Influxdb
Scouter-Alert-Slack
Scouter-Alert-line
Scouter-Alert-email
Agent Plugin 설치 및 시연
https://github.com/scouter-project/scouter-plugin-server-
alert-line/releases
Scouter-Alert-line
모든 파일을 scouter.server/lib 에 복사
Influxdb-plugin
https://github.com/scouter-project/scouter-plugin-server-influxdb
성능 카운터를 Influxdb로 전송
Influxdb-plugin
Scouter -> InfluxDB -> Grafana
연동해 보기 참고 url
https://goo.gl/fSd8Dd
Influxdb-plugin
Built-In Plugin 제작
1. scouter.plugin.server 패키지로 시작
2. Method annotation 명시
3. jar로 만든 후 ./lib 디렉토리에 넣는다.
* Dependency
- scouter.common
- scouter.server
Built-In Plugin 제작
Built-In Plugin 제작
Guide 문서
https://github.com/scouter-project/scouter/blob/master/
scouter.document/main/Plugin-Guide.md
Plugin
Service
(Back)
Scouter
Agent
Service
(Back)
Scouter
Agent
Service
(Front)
Scouter
Agent
Service
(Back)
Scouter
Agent
<Http Service Plugin>
1) Req.에서 테넌트ID 식별
-- 프로파일링
<Http Call Plugin>
2) Http Call 헤더에
테넌트 ID 추가
<Http Service Plugin>
3) Http 헤더에서
테넌트 ID 식별
-- 프로파일에 반영
Scouter
Collector성능정보수집
Apache
Kafka
Legacy
분석계
<Collector Plugin>
4) 테넌트 ID를 포함한
프로파일을 Kafka로 전달
S
t
O
r
m
InfluxDB
RDB
Hbase
Legacy
Dashboard
Plugin 활용사례
사용자 정의 Alert (scripting 방식)
https://goo.gl/exg4fN
* 설정을 통한 alert
- cpu, disk 사용량 임계치 설정을 통한 alert
* Scripting을 통한 alert
- 모든 성능 counter에 대해 설정 가능
사용자 정의 Alert (scripting 방식)
@since 1.8.0
사용자 정의 Alert (scripting 방식)
사용자 정의 Alert (scripting 방식)
사용자 정의 Alert (scripting 방식)
* Alert 설정 시연
- CPU 임계치 초과시 Alert 하는 것
Web API 소개
Web API 소개
@since 1.8.0
curl 또는 http http://127.0.0.1:6188/scouter/v1/agent
curl 또는 http http://127.0.0.1:6188/scouter/v1/counter/realTime/Cpu,Mem/ofType/osx
curl 또는 http http://127.0.0.1:6188/scouter/v1/counter/realTime/HeapUsed/ofType/tomcat
SCOUTER에 기여하기
Github
https://github.com/scouter-project/scouter
Facebook 사용자 모임
https://www.facebook.com/groups/scouterapm
감사합니다
gunlee01@gmail.com
Scouter에 커밋하기
- Sprint 세션
소스 구성
scouter.common
scouter.server
scouter.agent.java
scouter.agent.host
scouter.webapp
scouter.client.*
hash & text
objHash : object의 unique id 값 (int)
hash : 특정 text db 값을 가르키는 id (int)
text : hash로 가져온 원본 값
e.g.) 10482034 -> /service/member/5
Pack
MapPack
XLogPack
…
package : scouter.lang.pack
Value
FloatValue
ListValue
MapValue
…
package : scouter.lang.value
Scouter Collection system
IntLongLinkedMap
IntFloatMap
LongSet
…
package : scouter.util
Scouter tcp services
CounterService
XLogService
…
package : scouter.server.netio.service.handle
Scouter web app 구성
controller -> service -> consumer
package : scouterx.webapp.layer
Scouter
Collector
Server
XXXService
@ServiceHandler
TcpProxy
Scouter web app 구성
controller
Scouter web app 구성
TcpProxy 를 통해 scouter.server로 서비스 요청
Pack getSingle(String cmd, MapPack param)
Value getSingleValue(String cmd, MapPack param)
List<Pack> process(String cmd, MapPack param)
List<Value> processValues(String cmd, MapPack param)
void process(String cmd, MapPack param, INetReader reader)
Scouter web app 구성
TcpProxy 를 통해 scouter.server로 서비스 요청
IDE에서 Scouter server 실행
* Main class
scouter.server.Main
* working directory
적당한 곳으로 설정 (하위에 database및 logs 등의 디렉토리 생성됨)
IDE에서 Scouter web app 실행
* Main class
scouterx.webapp.main.WebAppMain
* working directory
적당한 곳으로 설정 (server에 설정한 곳과 다른 곳으로)
CLA 작성
Contributor License agreement
작성 후 PR 요청 코멘트에 해당 링크를 포함 시킨다.
https://goo.gl/f7eQcT

More Related Content

What's hot

모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)
IMQA
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
SANG WON PARK
 

What's hot (20)

[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리
 
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
 
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint [D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기
 
Kafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and GrafanaKafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and Grafana
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
 
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
 
OPENMARU APM 브로셔
OPENMARU APM 브로셔OPENMARU APM 브로셔
OPENMARU APM 브로셔
 
Stream Processing 과 Confluent Cloud 시작하기
Stream Processing 과 Confluent Cloud 시작하기Stream Processing 과 Confluent Cloud 시작하기
Stream Processing 과 Confluent Cloud 시작하기
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
 
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우
 

Similar to Scouter Tutorial & Sprint

Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
지수 윤
 
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
LGU+
 
How to contribute at OpenStack
How to contribute at OpenStackHow to contribute at OpenStack
How to contribute at OpenStack
SK Telecom
 

Similar to Scouter Tutorial & Sprint (20)

Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practice
 
Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practice
 
Opensource APM SCOUTER in practice
Opensource APM SCOUTER in practiceOpensource APM SCOUTER in practice
Opensource APM SCOUTER in practice
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
 
텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축
 
Pp3 devweb
Pp3 devwebPp3 devweb
Pp3 devweb
 
Bug sense 분석
Bug sense 분석Bug sense 분석
Bug sense 분석
 
2회 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
2회 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread2회 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
2회 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 
혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...
혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...
혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...
 
Angular 2 rc5 조사
Angular 2 rc5 조사Angular 2 rc5 조사
Angular 2 rc5 조사
 
Python on Android
Python on AndroidPython on Android
Python on Android
 
postgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdfpostgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdf
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
 
How to contribute at OpenStack
How to contribute at OpenStackHow to contribute at OpenStack
How to contribute at OpenStack
 
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
 

Recently uploaded

파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Recently uploaded (6)

오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
 
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
 

Scouter Tutorial & Sprint