Top Banner
[email protected] SCOUTER 커미터 이건희 Open Source APM SCOUTER로 모니터링 잘~ 하기
50

Open source APM Scouter로 모니터링 잘 하기

Jan 10, 2017

Download

Software

GunHee Lee
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Open source APM Scouter로 모니터링 잘 하기

[email protected]�커미터

이건희

Open�Source�APMSCOUTER로 모니터링

잘~ 하기

Page 2: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

Page 3: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

APM

- Application�performancemanagement

Page 4: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

화면은 이런 모양이다.

Page 5: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

뙇!

Page 6: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

아키텍처는? Agent,�Collector,�ClientWAS

Java Agent

WEBapplication

Host�Agent

ScouterCollectorServer

성능 정보 전송

성증정보 수집

ScouterClient성능정보

요청

Page 7: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

Why�APM?

Page 8: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

Why�APM?

왜 어플리케이션 모니터링이필요한가?

Page 9: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

Why�APM?

왜 어플리케이션 모니터링을잘 하는게 필요한가?

Page 10: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

대부분의 문제 원인은Application�!

Page 11: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

문제의 식별 - 어플리케이션 모니터링문제의 해결 - 어플리케이션 튜닝

Page 12: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

아는 만큼 보이고보이는 만큼 개선할 수 있다.

- By�유명인 -

Page 13: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

아는 만큼 보이고보이는 만큼 개선할 수 있다.

- By�유명인 -

Page 14: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

몰라도 보이고 ~보이는 만큼 개선할 수 있다.

- By�Scouter -

Page 15: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

Application�자원 모니터링

Process�CPUHeap�memoryGCDatasource Pool

Page 16: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

Active�Service

Page 17: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

Active�Service

Page 18: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

분포도 차트(XLog)pinwhealwindmill

Page 19: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

서비스수행 메소드수행 쿼리

상세 Profile

Page 20: Open source APM Scouter로 모니터링 잘 하기

SCOUTER ?

Page 21: Open source APM Scouter로 모니터링 잘 하기

조금 더 들어가 보겠습니다.

Page 22: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architecture

서비스 아키텍처- SOA- MSA

Page 23: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architecture

Page 24: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architecture

관계의 복잡성으로 인한 문제.

Page 25: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architecture

관계의 복잡성으로 인한 문제.

대표적으로 Cascading�failure

Page 26: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architectureCascading�failure

Ref.� https://github.com/Netflix/Hystrix/wiki

Page 27: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architectureCascading�failure

Ref.� https://github.com/Netflix/Hystrix/wiki

Page 28: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architectureCascading�failure

Ref.� https://github.com/Netflix/Hystrix/wiki

Page 29: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architecture

내꺼 인듯내꺼 아닌내꺼 같은 장애…

Page 30: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architecture

필요한 것은?

Page 31: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architecture

필요한 것은

개발에선 Anti-fragile�patterns모니터링에선 Cross�Service�Tracing

Page 32: Open source APM Scouter로 모니터링 잘 하기

SCOUTER for�service�architectureCross�service�tracing

Page 33: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

Scouter�pluginSimple�Scripting�Plugin�!

Page 34: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

1) Agent�Plugin2) Collector�server�Plugin

Page 35: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

사용자 요청을 받는 Front�Service에서테넌트ID를 추출하여 프로파일 하고Backend�Service로 호출시 전달하고 싶다.Backend�Service들 에서도 전달된 테넌트 ID를프로파일 하고 지속적으로 전달하고 싶다.그리고 특정 프로파일 정보는 자체 집계 시스템으로 모으고 싶다.

Page 36: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

Agent�PluginHttp�Service�pluginHttp�Call�PluginCapture(parameter,�return�value)…

Page 37: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

Collector�server�Plugin수집 데이터 전처리

Page 38: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

Agent�Plugin을 통한사용자ID�프로파일

해보자!Java 문법을 통한 scripting

Page 39: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

Java�Agent�­ Http�service�plugin

1.�세션에서 user�id�획득String�userId =

$req.getSessionAttribute(“userId”);

Page 40: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

Java�Agent�­ Http�service�plugin

2.�XLog 항목에 id로 추가$ctx.login(userId);

Page 41: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

Java�Agent�­ Http�service�plugin

3.�Profile에 사용자 정의 문장 기입$ctx.profile(“Login�ID�=�”�+�userId);

Page 42: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

$ctx.login(userId);

$ctx.profile(“###�It’s�user�defined�…”�+�userId);

Page 43: Open source APM Scouter로 모니터링 잘 하기

SCOUTER advanced

사용자 요청을 받는 Front�Service에서1)�테넌트ID를 추출하여 프로파일 하고Backend�2)�Service로 호출시 테넌트ID를 전달하고 싶다.Backend�Service들 에서도3)�전달된 테넌트 ID를 프로파일 하고 지속적으로 전달하고 싶다.그리고 특정 프로파일 정보는 4)�자체 집계 시스템으로 모으고 싶다.

Page 44: Open source APM Scouter로 모니터링 잘 하기

Plugin

Service(Back)ScouterAgent

Service(Back)ScouterAgent

SCOUTER advancedService(Front)ScouterAgent

Service(Back)ScouterAgent

<Http�Service�Plugin>1) Req.에서 테넌트ID�식별-- 프로파일링

<Http�Call�Plugin>2) Http�Call�헤더에테넌트 ID�추가

<Http�Service�Plugin>3) Http�헤더에서테넌트 ID�식별-- 프로파일에 반영

ScouterCollector성능정보수집

ApacheKafka

Legacy분석계

<Collector�Plugin>4) 테넌트 ID를 포함한프로파일을 Kafka로 전달

StOrm InfluxDB

RDB

Hbase

LegacyDashboard

Page 45: Open source APM Scouter로 모니터링 잘 하기

SCOUTER

Application�모니터링,Application�Tuning(보이는 만큼 개선할 수 있다.)

그리고…

정리해 보자!

Page 46: Open source APM Scouter로 모니터링 잘 하기

SCOUTER

그리고..Simple�scripting�Plugin을 활용하여Centralized�logging�/�monitoring

물론 Application의 수정 없이…

Page 47: Open source APM Scouter로 모니터링 잘 하기

SCOUTER가 하고 싶은 것

오픈 소스 중심의 모니터링

Page 48: Open source APM Scouter로 모니터링 잘 하기

SCOUTER가 하고 싶은 것

오픈 소스 중심의 통합 모니터링node.js(w/�express.js)Apache�HTTPDRedis /�memcachedNoSQL(Mongo�DB…)Opensource RDB�(Maria,�Cubrid…)Client�side�monitoring(script�error,�dom rendering)…

Page 49: Open source APM Scouter로 모니터링 잘 하기

SCOUTER에 기여하기

Githubhttps://github.com/scouter-project/scouter

Facebook�사용자 모임https://www.facebook.com/groups/scouterapm

Page 50: Open source APM Scouter로 모니터링 잘 하기

감사합니다Q&A�or�Later

[email protected]