애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile...

31
2020.01.00 (주)와탭랩스 애플리케이션 모니터링 소개 자료

Transcript of 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile...

Page 1: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

2020.01.00

(주)와탭랩스

애플리케이션

모니터링

소개자료

Page 2: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

2Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

1. PHP 모니터링소개

2. 대시보드및히트맵소개

3. 트랜잭션분석

PHP모니터링

Page 3: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

3Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

PHP 모니터링소개

Page 4: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

4Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

PHP모니터링구조

Page 5: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

5Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

PHP 지원환경

지원환경

PHP

5.2 ~ 5.6

7.0 ~ 7.4

NTS / ZTS (Zend Thread

Safe)

데이터베이스

라이브러리

Oracle(Oci8), MySQL,

MSSQL(mssql, sqlsrv),

Postgresql(psql), Redis(phpredis)

PDO, MySQLi, cURL

운영체제

CentOS/Redhat 6.x (64bit) 이상

Debian/Ubuntu 12.04 (64bit) 이상

FreeBSD 10.x (64bit) 이상

애플리케이션 서버

Apache

Php-fpm(nginx)

사용자가이드

• https://docs.whatap.io/kr/agent_php

릴리즈노트

• https://docs.whatap.io/kr/releasenotes/#php-agent-release-notes

Page 6: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

6Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

대시보드및히트맵소개

Page 7: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

7Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

대시보드

기본적으로대시보드는쉽고빠르게이해할수있어야하므로정보를시각적으로유지하는것이중요합니다.

와탭대시보드는진행중인트랜잭션과종료된트랜잭션정보를실시간으로업데이트하고, 시각화된차트를제공하여서비스및시스템의정확한현재상

태를운용자에게직관적으로인지시킬수있습니다.

진행 중인

트랜잭션 분석

종료되지 않은

트랜잭션을

실시간 모니터링

실시간 리소스 현황

한 눈에 볼 수 있는

실시간 TPS, 응답시간,

CPU, Memory, User

정보 제공

종료된 트랜잭션

실시간 업데이트

최신의 데이터

자동 업데이트 및

기간별 이력/통계

데이터 제공

항상 최신데이터

자동 업데이트

최신의 데이터

자동 업데이트하여

실시간 모니터링

서비스 제공

Page 8: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

8Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

통합대시보드

통합대시보드를구성하여프로젝트들에들어가는정보들을구성및커스터마이징가능합니다.

사용자니즈에따라목적별로대시보드화면을구성합니다.

Page 9: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

9Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

진행중인트랜잭션모니터링 –아크이퀄라이저

아크이퀄라이저는인스턴스수만큼의아크로분할되어진행중인트랜잭션의수를보여줍니다.아크를클릭함으로

진행중인트랜잭션의상세정보를확인할수있습니다.

원의 분할은 App Process 갯수

외곽 애니메이션 : TPS > 0

빨간색은 성능 장애를 의미

Page 10: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

10Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

진행중인트랜잭션모니터링 –액티브스테이터스

모든액티브트랜잭션의진행상태를 5가지상태로구분하여보여줌으로지연구간을빠르게식별할수있도록도와줍니다.

상태 설명 위험

METHOD 내부 로직을 수행중인 상태 하

SQL DB에 SQL을 수행중인 상태 중

HTTPC 외부 Http 요청 중인 상태 중

DBC DB Connection Pool에서 get한 상태 상

SOCKET 외부에 Socket Connect 중인 상태 상

• DB Connection Pool 에서 Connection을획득하면서지연이되면 DBC상태값이올라갑니다. SOCKET 연결시,지연이발생하면 SOCKET상태값이증가합니다.

이둘은일반적으로는 0으로나타나야합니다.값이지속적으로올라간다는것은장애가발생중일가능성이있습니다. 그래서빨간색으로표시합니다.

• SQL이나 HTTC는외부에요청을보낸경우입니다. 일반적으로는트랜잭션은이부분에서지연이발생합니다.

• 위의 4가지상태외의 내부모든상태는 METHOD로상태가판단됩니다.액티브트랜잭션의 상태가 METHOD인경우는정상으로간주됩니다.

• 액티브트랜잭션을상세하게리스트업하지않고도성능지연의위치를빠르게판단할수있습니다.

Page 11: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

11Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

트랜잭션모니터링 –응답시간분포도 (Hit Map)

개별트랜잭션의응답시간과종료시간을기준으로전체트랜잭션의분포를표현함으로느린트랜잭션에대한선택적분석이가능합니다.

와탭응답시간분포도는장시간데이터를조회하는유리합니다.

SQL

NoSql

OPEN SOCKET

FILE

CONN

Transaction Profile Data

a.php

b.php

z.php

하나의 Square는

시간 별 트랜잭션 수행 건수를 의미합니다.

• X축: 시간 / Y축: 트랜잭션 완료까지의 소요시간

• 정상 트랜잭션: 청색 계열

• 에러 트랜잭션: 적색 계열

• 해당 시간대에 기록된 트랜잭션 밀도가 높을수록 짙은 색상(하늘색 -> 청색 / 노란색 -> 적색)

Page 12: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

12Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

패턴기반트랜잭션분석

와탭의응답시간분포도(히트맵)를통해종료된트랜잭션의상태를체크할수있습니다.

히트맵

원하는 트랜잭션을 드래그하여 선택하면

해당 트랜잭션의 내용을 분석할 수 있습니

다.

• 히트맵의 상태 분석

- 트랜잭션의 패턴을 분석하여 직관적으로 문제

의 원인을 파악할 수 있습니다.

• 세로라인 경고

- 동시에 여러 트랜잭션들이 Time Out 되면 세

로라인패턴이 발생됩니다.

- 와탭 모니터링은 이런 패턴을 인식하여 알림 경

고를 발생합니다.

폭포수 현상조회 건수에 따른 응답 지연

초기화에 의한 병목 폭주와 장애

Page 13: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

13Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

메모리

시스템전체메모리와프로세스사용메모리를확인할수있습니다.

• PHP 는 Apache 내부에서모듈형식으로작동하거나 PHP-FPM 형태로작동합니다.

• 서버상에서 PHP메모리사용량은 Apache 또는 PHP-FPM 의프로세스메모리의합산으로판단할수있습니다.

Page 14: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

14Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

사용자

실시간사용자수를확인합니다. 실시간 5분통계를그래프로표현합니다.

• 쿠키내부의 session name값으로사용자를식별합니다.

• 기본으로설정된 session name은 PHPSESSID,ci_session,laravel_session입니다.

• 설정을통해서 session_name을변경할수있습니다.

• 사용자식별기준값을 IP, 특정 Header key 로설정할수있습니다.

Page 15: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

15Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

트랜잭션분석

Page 16: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

16Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

응답분포도를통한병목분석

Chapter 03

•동일 인스턴스?•동일 서비스(URL)?•동일 클라이언트 IP?

•동일 SQL?•동일 구간?

Page 17: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

17Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

사후분석 –큐브분석

시점별로관련성능데이터를 한번에조회해볼수있는기능입니다. Cube는 1일을 5분구간으로분할하여 288개의Cube 단위통계로실시간사용자,

국가별접속, Hit Map 트랜잭션, TOP 트랜잭션, TPS, 응답시간, 자원사용정보를제공합니다.

Page 18: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

18Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

사후분석 – Trend분석

TPS, 응답시간, CPU 사용량, 트랜잭션 URL, SQL 등의추세를한눈에파악할수있습니다. 애플리케이션의최근상태를집약적으로파악하는데최적화하

였습니다.

Page 19: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

19Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

통계 –트랜잭션통계

트랜잭션통계에서개별URL에대한일간추세및평균응답시간을파악할수있고, 상세프로파일정보와스택분석을통한연관분석이가능합니다.

Page 20: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

20Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

통계 –에러, SQL, HttpC

에러 SQL HTTP Call

Page 21: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

21Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

트랜잭션분석 –멀티프로젝트트랜잭션연계분석

MSA기반으로프로젝트가구성되어있어도프로젝트간에트랜잭션의연계정보를추적할수있습니다.

프로젝트 B프로젝트 A

사용자 File File

Transaction A Transaction B

Load Caller

Load Callee

어드민

Page 22: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

22Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

트랜잭션분석 –멀티프로젝트트랜잭션연계분석

프로젝트를복수개선택하여연관된트랜잭션을추적하며, 시작시간을기준으로자동정렬되어목록사이에추가됩니다.

다른플랫폼으로구성된애플리케이션서비스트랜잭션추적도가능합니다.

Table View

Page 23: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

23Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

트랜잭션분석 –멀티프로젝트트랜잭션연계분석

에이전트설치시같이제공되는 PHP 라이브러리를통해서설정가능합니다.

/usr/whatap/php/lib/WhaTap.php, /usr/whatap/php/lib/sample_mtrace.php

Chart View

include_once './WhaTap.php';

$url = "http://localhost/sample.php";$ch = curl_init();$headers = array();

// 와탭 라이브러리에서 트랜잭션 연계추적에 필요한 헤더 정보를 가져옵니다. key,value 형식의 배열 입니다.$whatap_mtrace = WhaTap::whatap_get_mtrace();// cURL에 추가할 사용자 헤더 배열에 와탭 헤더를 추가합니다.foreach ($whatap_mtrace as $key => $value){

//echo $key."=".$value."<br/>";array_push($headers, "$key:$value");

}unset($value);//==================================================================

// 헤더를 cURL에 설정하고 외부 호출을 진행합니다.curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);curl_setopt($ch, CURLOPT_HEADER, TRUE);$ret = curl_exec($ch);curl_close($ch);

Page 24: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

24Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

SQL

주로발생하는병목현상으로느린 SQL을분석합니다. (설정whatap.profile_sql_param_enabled=true,암호화키

/usr/whatap/php/paramkey.txt”

Page 25: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

25Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

Session lock

Session 시작및종료함수에대한정보를수집합니다.

Page 26: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

26Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

Compile file

include 를통해서추가되는 php 파일은내부적으로 compile 을거쳐서OP 코드로변환됩니다.

해당과정에대한프로파일링정보를수집합니다. (설정whatap.profile_compile_file_enabled=true)

Page 27: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

27Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

함수 (사용자함수, 내부함수)

사용자함수와 PHP 내부함수에대한프로파일링정보를확인합니다.

1초이상실행된함수에대해서수집합니다.(처음진입한함수만수집합니다, PHP내부함수는설정을켜야사용할수있습니다.)

(설정whatap.profile_method_enabled=true , whatap.profile_internal_method_enabled=true)

Page 28: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

28Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

트랜잭션메모리

트랜잭션메모리를확인할수있습니다.

Page 29: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

29Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

Lost connection

종료를확인하지못한트랜잭션의경우기본 5분대기후 Lost Connection 으로처리합니다. PHP모니터링에이전트에서더이상추적하지않도록무

시합니다.

종료가확인되지않는원인은여러가지가있습니다.

• 실제트랜잭션이 5분이넘는경우 (설정whatap.trace_active_transaction_lost_time=300000)

• Apache 또는 PHP-FPM 을 restart로프로세스가모두강제로종료되는경우.

• Apache 도는 PHP-FPM의프로세스가오류로인해강제로종료되는경우.

• Apache 도는 PHP-FPM 의에러로그상에 sigbus, sigfault, kill child process 등의로그가있다면 CoreDump설정을한후에 gdb로상세한내역

을확인해서원인을찾아야합니다.

Page 30: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

30Copyright © 2020 WhaTap – Developed by WhaTap Labs Inc.

애플리케이션 AI 알림설정

히트맵패턴감지알림

Page 31: 애플리케이션 모니터링 소개자료™€탭_PHP... · 2020-06-25 · Transaction Profile Data a.php b.php z.php 하나의Square는 시간별트랜잭션수행건수를의미합니다.

이 문서의 저작권은 (주)와탭랩스에 있습니다.

이 문서는 (주)와탭랩스의 서면동의 없이 어떤 형태로도 재생산, 배포, 변경할 수 없습니다.

감사합니다.