java agent guide - whatap inc

82
Java Agent Guide WhaTap Support Version 1.2.1

Upload: others

Post on 22-Apr-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java Agent Guide - WhaTap Inc

Java Agent GuideWhaTap Support

Version 1.2.1

Page 2: Java Agent Guide - WhaTap Inc

Table of ContentsJava Agent Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1

1. ์ง€์› ํ™˜๊ฒฝ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  21.1. JVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

1.2. WAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

1.3. Framework / Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

1.4. DataSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

2. ์ผ๋ฐ˜ ์„ค์น˜ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  32.1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3

2.2. ๋ผ์ด์„ผ์Šค ๋ฐœ๊ธ‰ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4

2.3. ์—์ด์ „ํŠธ ๋‹ค์šด๋กœ๋“œ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5

2.4. ์„ค์ • ์ ์šฉ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6

2.5. ์—์ด์ „ํŠธ ์ ์šฉ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6

2.6. ์—์ด์ „ํŠธ ์ ์šฉ(์˜ˆ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7

2.7. ์ ์šฉ ํ™•์ธ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8

2.8. ์—์ด์ „ํŠธ ์—…๋ฐ์ดํŠธ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8

2.9. ์—์ด์ „ํŠธ ์‚ญ์ œ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9

3. ๊ณ ๊ธ‰ ์„ค์น˜ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  103.1. Attach ๋ฐฉ์‹ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10

3.2. Java 1.4 ์ดํ•˜ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10

3.3. Java9 ์ด์ƒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  12

3.4. PaaS ํ™˜๊ฒฝ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  12

3.5. Docker ํ™˜๊ฒฝ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  13

4. ์„ค์น˜ ํ›„ ์ ๊ฒ€ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  154.1. ์„ค์น˜ ์—๋Ÿฌ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  15

4.2. ์—์ด์ „ํŠธ ๋„ค์ด๋ฐ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  18

4.3. MSA ์—…๋ฌด ๊ทธ๋ฃน ๊ตฌ๋ถ„ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  20

4.4. Scale In ์—์„œ ์—์ด์ „ํŠธ ์ž๋™ ์‚ญ์ œ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  21

4.5. AES 256 ์•”ํ˜ธํ™” ์ ์šฉ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  21

5. ๋ฐ์ดํ„ฐ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  235.1. ํŠธ๋žœ์žญ์…˜ ์ถ”์  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23

5.2. Active Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  26

5.3. ํ†ต๊ณ„(๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  27

5.4. ์„ฑ๋Šฅ ์นด์šดํ„ฐ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  31

6. ์—์ด์ „ํŠธ ์ œ์–ด์™€ ์ƒํƒœ ์กฐํšŒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  376.1. ๋ถ€ํŠธ ํ™˜๊ฒฝ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

6.2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

6.3. ์ปดํฌ๋„ŒํŠธ ๋ฒ„์ „ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

6.4. ์“ฐ๋ ˆ๋“œ ๋ชฉ๋ก/๋คํ”„ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

6.5. ํž™ ํžˆ์Šคํ† ๊ทธ๋žจ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

6.6. ๋กœ๋“œ๋œ ํด๋ž˜์Šค . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

6.7. ์˜คํ”ˆ ์†Œ์ผ“. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

6.8. ๋ฉ”์†Œ๋“œ ์„ฑ๋Šฅ ์ƒํƒœ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

6.9. DB ์ƒํƒœ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38

6.10. ์„ค์ • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38

6.11. ์“ฐ๋กœํ‹€๋ง . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38

6.12. ์‹œ์Šคํ…œ GC/ํž™๋คํ”„ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  39

6.13. ์—์ด์ „ํŠธ ๋กœ๊ทธ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  39

Page 3: Java Agent Guide - WhaTap Inc

6.14. ์—์ด์ „ํŠธ ๋คํ”„ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  40

7. ์„ค์ • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  427.1. ์„ค์ • ๊ด€๋ฆฌ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  42

7.2. ์—์ด์ „ํŠธ ๋„ค์ด๋ฐ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  42

7.3. ์—์ด์ „ํŠธ ๊ธฐ๋Šฅ์ œ์–ด . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  43

7.4. ์—์ด์ „ํŠธ ํ†ต์‹  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  45

7.5. ์—์ด์ „ํŠธ ๋กœ๊ทธ ๊ด€๋ฆฌ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  46

7.6. ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ๋ง . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  47

7.7. HTTP ํŠธ๋žœ์žญ์…˜ ์ถ”์ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  49

7.8. NON-Http ํŠธ๋žœ์žญ์…˜ ์ถ”์  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  51

7.9. ํŠธ๋žœ์žญ์…˜ ์—ฐ๊ณ„ ์ถ”์ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  53

7.10. DB, SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  54

7.11. HTTPC, API Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  57

7.12. Plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  58

7.13. ์‚ฌ์šฉ์ž ์ˆ˜. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  58

7.14. ๋ถ€ํ•˜๋Ÿ‰ ์ œ์–ด . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  59

7.15. ์—์ด์ „ํŠธ ์•Œ๋ฆผ ์„ค์ •. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  61

7.16. ์„ฑ๋Šฅ ์นด์šดํ„ฐ & ํ†ต๊ณ„ ํ™•์žฅ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  63

7.17. ์ผ๋ฐ˜ ๋กœ๊ทธ & GC ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  65

7.18. ํ† ํด๋กœ์ง€ ๋งต . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  66

8. ๋ถ€๊ฐ€ ์ •๋ณด . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  678.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  67

8.2. ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆํ‘œ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  76

Page 4: Java Agent Guide - WhaTap Inc

Java Agent Guide์ œ๋ชฉ : Java Agent Guide์ž‘์„ฑ์ž : WhaTap Support์ด๋ฉ”์ผ : [email protected]๋‚ ์งœ : 2020-01-08๋ฒ„์ „ : 1.2.1

์„ค๋ช… : ๋ณธ ๋ฌธ์„œ๋Š” WhaTap Java ์—์ด์ „ํŠธ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Preface

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 1

Page 5: Java Agent Guide - WhaTap Inc

Chapter 1. ์ง€์› ํ™˜๊ฒฝWeb Application Server (WAS) ๋ฟ ์•„๋‹ˆ๋ผ ๋ฐ๋ชฌ ๋ฐ ๋ฐฐ์น˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ JVM์—์„œ ๋™์ž‘ํ•˜๋Š” ๋ชจ๋“  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.Java1.4 ์ดํ•˜, Java9 ์ด์ƒ ๋ฒ„์ „์€ [email protected] ๋กœ ๋ฌธ์˜ ์ฃผ์‹œ๋ฉด ์ œ๊ณต ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1.1. JVMTable 1. JVM

์ œํ’ˆ ํ™˜๊ฒฝ OS JVM ๋ฒ„์ „

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋‹ˆํ„ฐ๋ง Agent Java JVM์ด ๊ตฌ๋™๋˜๋Š” ๋ชจ๋“  OS Java1.4 ์ด์ƒJava11 ์ดํ•˜

1.2. WASโ€ข Tomcat, Jboss, JEUS, Weblogic, WebSphere ๋“ฑ Java EE Spec ์ค€์ˆ˜ํ•˜๋Š” ๋ชจ๋“  Application Server

https://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html

1.3. Framework / Libraryโ€ข Spring Boot Project

โ€ข Akka HTTP ๋ฐ Play Framework ๋“ฑ ๋น„๋™๊ธฐ Framework

โ€ข ์ด์™ธ Java EE Spec ์ค€์ˆ˜ Application Server ์—์„œ ๋™์ž‘ํ•˜๋Š” ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

1.4. DataSourceโ€ข Generic JDBC (any JDBC compliant driver)

โ€ข DB2 JDBC

โ€ข Derby JDBC

โ€ข H2 JDBC

โ€ข jTDS JDBC

โ€ข MariaDB JDBC

โ€ข Microsoft SQL Server JDBC

โ€ข MySQL mysql-connector-java

โ€ข Oracle ojdbc14, ojdbc5, ojdbc6, ojdbc7, ojdbc8

โ€ข Postgres JDBC

โ€ข Tibero

โ€ข Jedis Redis driver

1.1. JVM

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 2

Page 6: Java Agent Guide - WhaTap Inc

Chapter 2. ์ผ๋ฐ˜ ์„ค์น˜์™€ํƒญ APM ๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋Œ€์ƒ ์„œ๋ฒ„์— ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜์— ์•ž์„œ ํ•„์š”ํ•œ ์‚ฌํ•ญ์€ ์„ค์น˜ ์‚ฌ์ „ ์•ˆ๋‚ด์„œ ๋ฅผ ์ฐธ๊ณ  ํ•ด ์ฃผ์„ธ์š”.

2.1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

Figure 1. ์ฒซ ๋กœ๊ทธ์ธ

Java ์•„์ด์ฝ˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ช…๊ณผ ๋ฐ์ดํ„ฐ ์„œ๋ฒ„ ์ง€์—ญ(Region), ๊ทธ๋ฃน์„ ์„ ํƒํ•œ ๋’ค ์ €์žฅ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

2.1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 3

Page 7: Java Agent Guide - WhaTap Inc

Figure 2. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํŒ์—…

2.2. ๋ผ์ด์„ผ์Šค ๋ฐœ๊ธ‰์ƒ์„ฑ์™„๋ฃŒ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜๋ฉด ์„ค์น˜ ์•ˆ๋‚ด ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

2.2. ๋ผ์ด์„ผ์Šค ๋ฐœ๊ธ‰

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 4

Page 8: Java Agent Guide - WhaTap Inc

Figure 3. ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ

์„ค์น˜ ์•ˆ๋‚ด ํŽ˜์ด์ง€์—์„œ ๋ผ์ด์„ผ์Šค๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ผ์ด์„ผ์Šค๋Š” ํ”„๋กœ์ ํŠธ๋‹จ์œ„๋กœ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

Figure 4. ์„ค์น˜ ์•ˆ๋‚ด ํŽ˜์ด์ง€ - 1

2.3. ์—์ด์ „ํŠธ ๋‹ค์šด๋กœ๋“œ๋ผ์ด์„ผ์Šค๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์€ ํ›„์— โ€˜์—์ด์ „ํŠธ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œโ€™ ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์™€ํƒญ ์—์ด์ „ํŠธ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์Šต๋‹ˆ๋‹ค.

2.3. ์—์ด์ „ํŠธ ๋‹ค์šด๋กœ๋“œ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 5

Page 9: Java Agent Guide - WhaTap Inc

Figure 5. ์„ค์น˜ ์•ˆ๋‚ด ํŽ˜์ด์ง€ - 2

์„ค์น˜ ํ•  ์„œ๋ฒ„์—์„œ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

wget https://service.whatap.io/agent/whatap.agent.java.tar.gz

๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ์„œ๋ฒ„์— ์ ์ ˆํ•œ ์œ„์น˜๋ฅผ ์ •ํ•˜๊ณ  ์—์ด์ „ํŠธ ํŒŒ์ผ์˜ ์••์ถ•์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. ์ด ์œ„์น˜๊ฐ€ $WHATAP_HOME ์ด ๋ฉ๋‹ˆ๋‹ค.

tar -zxvf whatap.agent.java.tar.gz

2.4. ์„ค์ • ์ ์šฉ$WHATAP_HOME/whatap.conf ํŒŒ์ผ ๋‚ด์šฉ์— ๋ผ์ด์„ ์Šคํ‚ค์™€ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์„œ๋ฒ„ ์ฃผ์†Œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋“ค์–ด๊ฐ€ ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.๊ฐ’์ด ์—†๋‹ค๋ฉด ์„ค์น˜ ์•ˆ๋‚ด ํŽ˜์ด์ง€์˜ ์„ค์ •๊ฐ’์„ ๋ณต์‚ฌํ•ด ๋ถ™์—ฌ ๋„ฃ์Šต๋‹ˆ๋‹ค.

whatap.conf

license={๋ผ์ด์„ผ์Šค ํ‚ค}whatap.server.host={์ˆ˜์ง‘์„œ๋ฒ„ IP}

UI๋ฅผ ํ†ตํ•ด ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ๊ฒฝ์šฐ whatap.conf ์— ์„ค์ •๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.์„œ๋ฒ„์—์„œ ์ง๋ฅ ๋‹ค์šด๋กœ๋“œ ํ•œ ๊ฒฝ์šฐ๋ผ๋ฉด ์„ค์น˜์•ˆ๋‚ด ํŽ˜์ด์ง€์—์„œ ๋ณด์—ฌ์ง€๋Š” ๋ผ์ด์„ผ์Šคํ‚ค์™€ ์ˆ˜์ง‘ ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ๋ณ„๋„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2.5. ์—์ด์ „ํŠธ ์ ์šฉ์ ์šฉ ๋Œ€์ƒ(WAS, Batch ๋ฐ Daemon ๊ณผ ๊ฐ™์€ Java์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)์— javagent ์˜ต์…˜์œผ๋กœ whatap agent path๋ฅผ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค.

2.4. ์„ค์ • ์ ์šฉ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 6

Page 10: Java Agent Guide - WhaTap Inc

JVM_OPTS

-javaagent:/whatap/whatap.agent.tracer-#.#.#.jar

์žฌ์‹œ์ž‘ ํ›„ ํ”„๋กœ์„ธ์Šค ์ •๋ณด์—์„œ ์„ค์ •ํ•œ ์˜ต์…˜์ด ๋ณด์ธ๋‹ค๋ฉด ์„ค์ • ์ ์šฉ์ด ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Figure 6. ps -ef |grep java

2.6. ์—์ด์ „ํŠธ ์ ์šฉ(์˜ˆ)ํ™˜๊ฒฝ๋ณ„ ์„ค์ • ์œ„์น˜๋Š” ์„ค์น˜ ํŽ˜์ด์ง€ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋ณ„ ์ ์šฉ ์ ˆ์ฐจ ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2.6.1. Tomcat โ€“ Linuxcatalina.sh ์ƒ๋‹จ์— JAVA_OPTS ์„ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค.

catalina.sh

WHATAP_HOME=/whatap โ‘ ########## WHATAP ############WHATAP_JAR=`ls ${WHATAP_HOME}/whatap.agent.tracer-*.jar | sort | tail -1`JAVA_OPTS="${JAVA_OPTS} -javaagent:${WHATAP_JAR} "########## WHATAP ############

โ‘  WHATAP_HOME ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

2.6.2. Tomcat โ€“ Windowscatalina.bat ์ƒ๋‹จ์— JAVA_OPTS ๋ฅผ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค.

catalina.bat

rem ########## WHATAP ############set WHATAP_HOME=C:\whatap โ‘ for /f %%f in ('dir /b /on %WHATAP_HOME%\whatap.agent.tracer-*.jar') do set last=%%fset WHATAP_JAR=%last%if x%JAVA_OPTS:whatap=%==x%JAVA_OPTS% (  set JAVA_OPTS=%JAVA_OPTS% -javaagent:%WHATAP_HOME%\%WHATAP_JAR%)rem ########## WHATAP ############

โ‘  WHATAP_HOME ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

2.6.3. WAS ์žฌ๊ธฐ๋™์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ์žฌ๊ธฐ๋™ ํ•ฉ๋‹ˆ๋‹ค.๊ตฌ๋™ ๋กœ๊ทธ๋ฅผ ํ™•์ธ ํ–ˆ์„๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ WhaTap ์บ๋ฆญํ„ฐ ๋กœ๊ทธ๊ฐ€ ๋ณด์ธ๋‹ค๋ฉด JAVA_OPTS ์„ค์ •์ด ์ •์ƒ ์ ์šฉ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2.6. ์—์ด์ „ํŠธ ์ ์šฉ(์˜ˆ)

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 7

Page 11: Java Agent Guide - WhaTap Inc

Nov 16, 2016 3:06:40 AM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deployment of web application directory /var/lib/tomcat7/webapps/ROOT has finished in 577 msNov 16, 2016 3:06:40 AM org.apache.coyote.AbstractProtocol startINFO: Starting ProtocolHandler ["http-bio-8080"]Nov 16, 2016 3:06:40 AM org.apache.catalina.startup.Catalina startINFO: Server startup in 3984 ms_ ____ ______| | /| / / / ___ /_ __/__ ____| |/ |/ / _ \/ _ `// / / _ `/ _ \|__/|__/_//_/\_,_//_/ \_,_/ .__/  /_/Just Tap, Always MonitoringWhaTap Agent version 0.3.9 20161115

2.7. ์ ์šฉ ํ™•์ธ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ ํ™”๋ฉด์— Agent๊ฐ€ ๋ณด์—ฌ์ง€๋ฉด ์ ์šฉ์ด ์™„๋ฃŒ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Figure 7. ํ”„๋กœ์ ํŠธ

Agent ๋ช…์˜ ๊ธฐ๋ณธ๊ฐ’์€ {type}-{ip2}-{ip3}-{port} ์ž…๋‹ˆ๋‹ค.์†์„ฑ์„ ์ถ”๊ฐ€ ํ•˜๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ ์—์ด์ „ํŠธ ๋„ค์ด๋ฐ ์„ ์ฐธ๊ณ  ํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

2.8. ์—์ด์ „ํŠธ ์—…๋ฐ์ดํŠธ๊ด€๋ฆฌ | ์—์ด์ „ํŠธ ์—…๋ฐ์ดํŠธ ๋ฉ”๋‰ด๋ฅผ ์„ ํƒ ํ›„ ๋‹ค์šด๋กœ๋“œ ๋˜๋Š” ๋ชจ๋“  ์„œ๋ฒ„์— ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์šด๋กœ๋“œ ๋œ ์—์ด์ „ํŠธ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์žฌ์‹œ์ž‘์‹œ ์ž๋™ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

2.7. ์ ์šฉ ํ™•์ธ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 8

Page 12: Java Agent Guide - WhaTap Inc

Figure 8. ๊ด€๋ฆฌ - ์—์ด์ „ํŠธ ์—…๋ฐ์ดํŠธ

2.9. ์—์ด์ „ํŠธ ์‚ญ์ œ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ JVM ์˜ต์…˜์˜ -javaagent ์„ค์ •์„ ์‚ญ์ œ ํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ์žฌ๊ธฐ๋™ ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ $WHATAP_HOME ์„ ์‚ญ์ œ ํ•ฉ๋‹ˆ๋‹ค.

2.9. ์—์ด์ „ํŠธ ์‚ญ์ œ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 9

Page 13: Java Agent Guide - WhaTap Inc

Chapter 3. ๊ณ ๊ธ‰ ์„ค์น˜Tomcat ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ Servlet ๊ธฐ๋ฐ˜์ด ์•„๋‹Œ ๊ฒฝ์šฐ, ํŠน์ˆ˜ํ•œ ํ™˜๊ฒฝ์—์„œ๋„ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ์„ค์น˜ ๋ฐฉ์•ˆ์„ ์ œ๊ณต ํ•ฉ๋‹ˆ๋‹ค.ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์—์ด์ „ํŠธ ๋‹ค์šด๋กœ๋“œ๋Š” ์ผ๋ฐ˜ ์„ค์น˜๊ณผ์ •๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

3.1. Attach ๋ฐฉ์‹Attach ๋ฐฉ์‹์œผ๋กœ WhaTap Agent ๋ฅผ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.com.sun.tools.attach API๋ฅผ ์‚ฌ์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์žฌ์‹œ์ž‘ ์—†์ด WhaTap Agent๋ฅผ ์ ์šฉ ํ•ฉ๋‹ˆ๋‹ค.

ps ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด PID ๋ฅผ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.

Tomcat - pid

$ ps -ef | grep tomcat | grep -v 'grep'

ec2-user 3058 1 1 06:11 pts/0 00:00:02 /home/ec2-user/jdk1.8.0_111/bin/java-Djava.util.logging.config.file=/home/ec2-user/apache-tomcat-7.0.72/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048-Djava.endorsed.dirs=/home/ec2-user/apache-tomcat-7.0.72/endorsed -classpath /home/ec2-user/apache-tomcat-7.0.72/bin/bootstrap.jar:/home/ec2-user/apache-tomcat-7.0.72/bin/tomcat-juli.jar -Dcatalina.base=/home/ec2-user/apache-tomcat-7.0.72 -Dcatalina.home=/home/ec2-user/apache-tomcat-7.0.72 -Djava.io.tmpdir=/home/ec2-user/apache-tomcat-7.0.72/temp org.apache.catalina.startup.Bootstrap start

ํ™•์ธํ•œ PID๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ $WHATAP_HOME/attach.sh(bat) ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

attach.sh $pid

$ ./attach.sh 3058

JAVA_HOME=/jdk1.8.0_111_ ____ ______| | /| / / / ___ /_ __/__ ____| |/ |/ / _ \/ _ `// / / _ `/ _ \|__/|__/_//_/\_,_//_/ \_,_/ .__/  /_/Just Tap, Always MonitoringWhaTap Agent version 0.4.2 20161123Admin: ec2-userPID: 3128Java Path: /jdk1.8.0_111/jreJava Version: 1.8.0_111AttachAgent Success : [3058] org.apache.catalina.startup.Bootstrap start

ํ”„๋กœ์ ํŠธ ํ™”๋ฉด์—์„œ ์—์ด์ „ํŠธ๊ฐ€ ์ •์ƒ ๋“ฑ๋ก ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.

Attach ๋Š” ์ผํšŒ์„ฑ ์ ์šฉ ์ž…๋‹ˆ๋‹ค.Attach ์ ์šฉ ํ›„ ์ผ๋ฐ˜ ์„ค์น˜์— ์‚ฌ์šฉ๋˜๋Š” โ€œjavaagentโ€ ์˜ต์…˜์„ ์ ์šฉ ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์žฌ๊ธฐ๋™ ํ›„์—๋„ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

3.2. Java 1.4 ์ดํ•˜JDK1.4 ํ™˜๊ฒฝ์—์„œ ์™€ํƒญ ๋ชจ๋‹ˆํ„ฐ๋ง์€ ์ œ์•ฝ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉฐ, ์„ค์น˜ ๋ฐฉ๋ฒ•๋„ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

JDK1.4๋ฅผ ์œ„ํ•œ ์—์ด์ „ํŠธ ๋ชจ๋“ˆ์€ [email protected]๋กœ ์š”์ฒญ ๋ฐ”๋ž๋‹ˆ๋‹ค.

3.1. Attach ๋ฐฉ์‹

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 10

Page 14: Java Agent Guide - WhaTap Inc

whatap.java14.tracer-[version].jar

3.2.1. boot.jar ์ƒ์„ฑsetup.sh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ boot.jarํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

$setup.sh [JAVA_HOME]

๋งŒ์•ฝ [JAVA_HOME]์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ˜„์žฌ ํŒจ์Šค์— ๊ฑธ๋ ค ์žˆ๋Š” JDK์˜ ์œ„์น˜๋ฅผ ์ž๋™์œผ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

setup.sh ๊ฒฐ๊ณผ ํŒŒ์ผ

whatap.java14.boot-1.0.2.jar

3.2.2. bootclasspath์— ์„ค์น˜bootclasspath ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด ๋นŒ๋“œ๋œ jar์™€ tracer jar๋ฅผ prepend๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

java ์‹คํ–‰ ์˜ต์…˜

-Xbootclasspath/p:${WHATAP_HOME}/whatap.java14.boot-1.0.2.jar:${WHATAP_HOME}/whatap.java14.tracer-1.0.2.jar

3.2.3. ์ œ์•ฝ ์‚ฌํ•ญjdk1.4์—์„œ๋Š” ๊ธฐ๋Šฅ ์ œ์•ฝ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์  ํ”„๋กœํŒŒ์ผ๋ง์ด ์•ˆ๋ฉ๋‹ˆ๋‹ค.์•กํ‹ฐ๋ธŒ์Šคํƒ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.์ตœ์‹  ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ๊ธฐ๋Šฅ๋“ค์ด ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ„๋ฅ˜ ์†Œ๋ถ„๋ฅ˜ ํ•ญ๋ชฉ

๋Œ€์‹œ๋ณด๋“œ ์•กํ‹ฐ๋ธŒ ํŠธ๋žœ์žญ์…˜ ์‹ค์‹œ๊ฐ„ ์ŠคํƒํŠธ๋ ˆ์ด์Šค

์Šคํƒ ํƒ‘ ์Šคํƒ ์ „์ฒด ํ•ญ๋ชฉ

์Šคํƒ ์œ ๋‹ˆํฌ ์Šคํƒ ์ „์ฒด ํ•ญ๋ชฉ

์Šคํƒ ์—‘ํ‹ฐ๋ธŒ ์Šคํƒ ์ „์ฒด ํ•ญ๋ชฉ

์„œ๋ฒ„ ๋”๋ณด๊ธฐ ์ปดํฌ๋„ŒํŠธ ๋ฒ„์ „

์„œ๋ฒ„ ๋”๋ณด๊ธฐ ์Šค๋ ˆ๋“œ ๋ชฉ๋ก

์„œ๋ฒ„ ๋”๋ณด๊ธฐ ํž™ ํžˆ์Šคํ† ๊ทธ๋žจ

์„œ๋ฒ„ ๋”๋ณด๊ธฐ ๋กœ๋“œ๋œ ํด๋ž˜์Šค

์„œ๋ฒ„ ๋”๋ณด๊ธฐ ์˜คํ”ˆ ์†Œ์ผ“

์„œ๋ฒ„ ๋”๋ณด๊ธฐ Method Perf Stat

์„œ๋ฒ„ ๋”๋ณด๊ธฐ ์—์ด์ „ํŠธ ๋คํ”„

3.2. Java 1.4 ์ดํ•˜

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 11

Page 15: Java Agent Guide - WhaTap Inc

3.3. Java9 ์ด์ƒ์ผ๋ฐ˜ ์„ค์น˜์™€ ๋™์ผํ•˜์ง€๋งŒ whatap.agent.java9-#.#.#.jar ๋กœ jar ๋ช…์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.maven repository ๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค์šด๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค.

3.3.1. ์ง์ ‘ ๋‹ค์šด๋กœ๋“œ๋‹ค์Œ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฒ„์ „ ์ •๋ณด๋งŒ์„ ์ˆ˜์ • ํ•ด maven repository ์—์„œ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€ข http://repo.whatap.io/maven/io/whatap/whatap.agent.java9/1.9.2/whatap.agent.java9-1.9.2.jar

3.3.2. pom.xml ์„ค์ •repository ์™€ dependency

<!-- repository ๋ฅผ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค --><repositories>  <repository>  <id>io.whatap</id>  <name>WhaTap maven repository</name>  <url>http://repo.whatap.io/maven</url>  </repository></repositories>

<!-- dependency ๋ฅผ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค. --><dependencies>  <dependency>  <groupId>io.whatap</groupId>  <artifactId>whatap.agent.java9</artifactId>  <version>1.8.8</version> โ‘   </dependency></dependencies>

โ‘  java9 ์šฉ๊ณผ ์ผ๋ฐ˜ ๋ฒ„์ „ ์ •๋ณด๋Š” ๋™์ผ ํ•ฉ๋‹ˆ๋‹ค.

3.3.3. whatap.conf ์„ค์ •์ผ๋ฐ˜ ์„ค์น˜์™€ ๋™์ผํ•œ ๊ณผ์ •์œผ๋กœ whatap.conf ๋ฅผ ์„ค์ • ํ•ฉ๋‹ˆ๋‹ค.

3.4. PaaS ํ™˜๊ฒฝPaaS ํ™˜๊ฒฝ์€ ๋ฐฐํฌ ๋Œ€์ƒ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— WhaTap Agent ์™€ ์„ค์ •์„ ํฌํ•จํ•˜์—ฌ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

3.4.1. IBM BlueMixIBM BlueMix ๋Š” ์ปจํ…Œ์ด๋„ˆ๋กœ WebSphere Liberty ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Liberty๋Š” WebSphere Application Server ์™€ ๋‹ค๋ฅธ ๊ฒฝ๋Ÿ‰ํ™” ํ™˜๊ฒฝ์œผ๋กœ SpringBoot ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ํ™˜๊ฒฝ ์˜ˆ์ œ ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ด๋“œ์— ๋”ฐ๋ฅธ ํ™˜๊ฒฝ ๊ตฌ์„ฑ์‹œ ๋กœ์ปฌ ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

3.3. Java9 ์ด์ƒ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 12

Page 16: Java Agent Guide - WhaTap Inc

whatap@vmwas01:/apps/bluemix/java-helloworld$ ls -alrtํ•ฉ๊ณ„ 64drwxrwxr-x 3 whatap whatap 4096 10์›” 29 13:13 ..-rw-rw-r-- 1 whatap whatap 1079 10์›” 29 13:13 .classpath-rw-rw-r-- 1 whatap whatap 1184 10์›” 29 13:13 .project-rw-rw-r-- 1 whatap whatap 39 10์›” 29 13:13 .gitignore-rw-rw-r-- 1 whatap whatap 151 10์›” 29 13:13 CONTRIBUTING.mddrwxrwxr-x 2 whatap whatap 4096 10์›” 29 13:13 .settings-rw-rw-r-- 1 whatap whatap 2823 10์›” 29 13:13 pom.xml-rw-rw-r-- 1 whatap whatap 122 10์›” 29 13:13 manifest.yml-rw-rw-r-- 1 whatap whatap 3522 10์›” 29 13:13 README.md-rw-rw-r-- 1 whatap whatap 11323 10์›” 29 13:13 LICENSEdrwxrwxr-x 3 whatap whatap 4096 10์›” 29 13:13 srcdrwxrwxr-x 2 whatap whatap 4096 10์›” 29 13:13 targetdrwxrwxr-x 8 whatap whatap 4096 10์›” 29 13:13 .gitdrwxrwxr-x 6 whatap whatap 4096 10์›” 29 15:26 .

${APP_HOME}์—์„œ src/main/resources/whatap-agent/ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  jar ํŒŒ์ผ, conf ํŒŒ์ผ์„ ๋ณต์‚ฌ ํ•ฉ๋‹ˆ๋‹ค.

$ mkdir -p src/main/resources/whatap-agent/$ cp /apps/whatap/whatap.agent.tracer-1.5.4.jar src/main/resources/whatap-agent/$ cp /apps/whatap/whatap.conf src/main/resources/whatap-agent/

whatap.conf ์„ค์ •์€ PaaS ๊ฐ€ ์•„๋‹Œ ํ™˜๊ฒฝ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ์ ์šฉ ํ›„ ์—์ด์ „ํŠธ๋ช… ์‹๋ณ„์— ์–ด๋ ค์›€์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ƒํ™ฉ์— ๋งž๋Š”์—์ด์ „ํŠธ๋ช…๋ช… [1: ์—์ด์ „ํŠธ ๋„ค์ด๋ฐ์— ๊ด€ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ์„ค์น˜๊ฐ€์ด๋“œ์˜ ์—์ด์ „ํŠธ ๋„ค์ด๋ฐ ๋ถ€๋ถ„์„ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.] ์ •์ฑ…์„ ์ ์šฉ ํ•ฉ๋‹ˆ๋‹ค.

${APP_HOME}/manifest.yml ํŒŒ์ผ์— ์˜ต์…˜์„ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค. yml ํŒŒ์ผ์ด๋ฏ€๋กœ ๊ณต๋ฐฑ, ๋“ค์—ฌ์“ฐ๊ธฐ ๊ธฐ์ค€์„ ์ž˜ ๋งž์ถฐ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

manifest.yml

---applications:- name: sample-java-helloworld  random-route: true  memory: 256M  path: target/JavaHelloWorldApp.war  #์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.  env:  JAVA_OPTS: "-javaagent:/{APPLICATION_DIR}/WEB-INF/classes/whatap-agent/whatap.agent.tracer-1.5.4.jar-Dorg.osgi.framework.bootdelegation=whatap.* "

3.5. Docker ํ™˜๊ฒฝ๊ธฐ์กด Docker ์ด๋ฏธ์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ WhaTap ์„ค์ •์ด ์ถ”๊ฐ€๋œ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ ํ•ฉ๋‹ˆ๋‹ค.

Step -1 ๋„์ปค ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ํ•ฉ๋‹ˆ๋‹ค.

mkdir -p {Docker build Dir}

Step -2 whatap.conf ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

cat >{Docker build Dir}/whatap.conf <<EOLlicense=XXXXXXXXXXXXXX-XXXXXXXXXXXXXX-XXXXXXXXXXXXXX โ‘ whatap.server.host=xx.xx.xx.xx/yy.yy.yy.yy โ‘กEOL

โ‘  ํ”„๋กœ์ ํŠธ ๋ผ์ด์„ผ์Šคํ‚ค๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

3.5. Docker ํ™˜๊ฒฝ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 13

Page 17: Java Agent Guide - WhaTap Inc

โ‘ก Proxy IP ์ •๋ณด๋ฅผ ์ž…๋ ฅ ํ•ฉ๋‹ˆ๋‹ค.

Step -3 Dockerfile์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ• ๋•Œ ์™€ํƒญ ์ด๋ฏธ์ง€์—์„œ -javaagent ์˜ต์…˜์— ์ ์šฉํ•  jarํŒŒ์ผ์„ ๋ณต์‚ฌํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cat >/home/silver/whatap/docker/Dockerfile <<EOLFROM whatap/kube_mon as build#์‹ค์ œ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ( ๊ธฐ์กด ์ด๋ฏธ์ง€์— Whatap ์ถ”๊ฐ€ )# $Image_Name(์ด๋ฏธ์ง€๋ช…)FROM $Image_NameRUN mkdir -p /whatapCOPY --from=build /data/agent/micro/whatap.agent.tracer-*.jar /whatapCOPY ./whatap.conf /whatap/... {์ค‘๋žต} ...EOL

Step -4 JAVA_OPTS์— ์•„๋ž˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

WHATAP_HOME=/whatapWHATAP_JAR=ls ${WHATAP_HOME}/whatap.agent.tracer-*.jar | sort | tail -1export JAVA_OPTS="-javaagent:${WHATAP_JAR} -Dwhatap.micro.enabled=true "

Step -5 Docker ๋นŒ๋“œ

cd dockerdocker build -t $Image_Name

Step -6 environment variable

env:- name: NODE_IPvalueFrom: {fieldRef: {fieldPath: status.hostIP}}- name: NODE_NAMEvalueFrom: {fieldRef: {fieldPath: spec.nodeName}}- name: POD_NAMEvalueFrom: {fieldRef: {fieldPath: metadata.name}}

3.5. Docker ํ™˜๊ฒฝ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 14

Page 18: Java Agent Guide - WhaTap Inc

Chapter 4. ์„ค์น˜ ํ›„ ์ ๊ฒ€

4.1. ์„ค์น˜ ์—๋Ÿฌ

4.1.1. ๋ฐฉํ™”๋ฒฝ ์„ค์ • ํ™•์ธ์™€ํƒญ ์„œ๋ฒ„์— ๋Œ€ํ•œ TCP ์•„์›ƒ๋ฐ”์šด๋“œ ์ •์ฑ…์ด ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ๋ชจ๋‹ˆํ„ฐ๋ง ์ •๋ณด๋ฅผ ์ „์†ก ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋ฐฉํ™”๋ฒฝ ์ฐจ๋‹จ์„ ํ•ด์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

telnet ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด " Connected to <IP> " ๋ฅผ ํ™•์ธ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

telnet

$ telnet 52.193.60.176 6600Trying 52.193.60.176...Connected to 52.193.60.176.Escape character is '^]'.

โ€ข ์ˆ˜์ง‘ ์„œ๋ฒ„ IP ์ •๋ณด๋Š” ์™€ํƒญ ์›น์‚ฌ์ดํŠธ์—์„œ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ๊ด€๋ฆฌ > ์—์ด์ „ํŠธ ์„ค์น˜ ๋ฉ”๋‰ด์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.1.2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค ํฌํŠธ๊ฐ€ ๊ฐ์ง€๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋™ ์‹œ๊ฐ„์ด 1๋ถ„ ์ด์ƒ์ด๊ฑฐ๋‚˜ ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์€ ๊ตฌ์กฐ์—์„œ ํฌํŠธ ๊ฐ์ง€์— ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ, ์—์ด์ „ํŠธ๋Š” ํฌํŠธ ๋Œ€์‹  PID(ํ”„๋กœ์„ธ์Šค ID)๋ฅผ์ „์†กํ•ฉ๋‹ˆ๋‹ค.ํฌํŠธ๋Š” ๊ณ ์ •๊ฐ’์ธ ๋ฐ˜๋ฉด PID๋Š” ์žฌ๊ธฐ๋™์‹œ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ์ด ๊ฒฝ์šฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—ฐ์†์„ฑ ์‹๋ณ„์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ JVM ์˜ต์…˜์— whatap.port ์†์„ฑ์„ ์ถ”๊ฐ€ ํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ์žฌ๊ธฐ๋™ํ•ฉ๋‹ˆ๋‹ค.

JAVA_OPTS

JAVA_OPTS="${JAVA_OPTS} -Dwhatap.port=8080 "

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋ณ„ JVM ์˜ต์…˜ ์„ค์ • ํŒŒ์ผ์€ โ€˜์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋ณ„ ์ ์šฉ์ ˆ์ฐจโ€™์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.1.3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๊ฐ€ OSGi ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐOSGI ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์กฐ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์ธ ๊ฒฝ์šฐ JVM ์˜ต์…˜์— ์—์ด์ „ํŠธ ํŒจํ‚ค์ง€ prefix(whatap)๋ฅผ ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Jboss EAP 6.0 ์ด์ƒJboss AS 7.0 ์ด์ƒWildfly 8.0 ์ด์ƒIBM WebSphere AS 7.0 ์ด์ƒ๋“ฑ์ด ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

JBoss AS, Wildfly, JBoss EAP 6.0 ์ด์ƒ

$JBOSS_HOME/bin/standalone.conf(domain.conf)ํŒŒ์ผ์— prefix๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

 -Djboss.modules.system.pkgs=whatap

4.1. ์„ค์น˜ ์—๋Ÿฌ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 15

Page 19: Java Agent Guide - WhaTap Inc

Figure 9. JBOSS .EAP 7.0 ์˜ˆ์‹œ

WebSphere

 -Dcom.ibm.ws.classloader.server.alwaysAllowedPackages=whatap

โ€ข Default๋กœ โ€˜*โ€™๋กœ ์ง€์ •๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๋ณ„๋„์˜ ์„ค์ •์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

โ€ข ์„ค์ • ์œ„์น˜๋Š” โ€˜WebSphereโ€˜๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

security.policy ๊ถŒํ•œ ์ถ”๊ฐ€

$WEBSPHERE_HOME/properties/server.policy ๋˜๋Š” $WEBSPHERE_PROFILE_HOME/properties/server.policy

grant codeBase "file:$WHATAP_HOME/-"{  permission java.security.AllPermission;};

4.1.4. ํžˆํŠธ๋งต์— ํŠธ๋žœ์žญ์…˜์ด ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐIBM JDK์˜ ๊ฒฝ์šฐ attach ๋ฐฉ์‹์œผ๋กœ ์—์ด์ „ํŠธ๋ฅผ ์ ์šฉ ํ•œ ๊ฒฝ์šฐ ํŠธ๋žœ์žญ์…˜ ์ •๋ณด๊ฐ€ ์ˆ˜์ง‘๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ โ€˜javaagentโ€™ ๋ฐฉ์‹์œผ๋กœ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4.1.5. logmanager ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐJBoss AS 7.0์ด์ƒ, JBoss EAP 6.0 ์ด์ƒ ์—์„œ logmanager ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด JVM ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

 -Djava.util.logging.manager์— LogManager package๋ช… ์„ค์ • -Xbootclassloader์— JBoss log manager JAR file ์„ค์ •

4.1. ์„ค์น˜ ์—๋Ÿฌ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 16

Page 20: Java Agent Guide - WhaTap Inc

Figure 10. ์„ค์ • ์ถ”๊ฐ€ ์˜ˆ

4.1.6. MBeanServerBuilder ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐJBoss 5.0 ์ดํ•˜์—์„œ MBeanServerBuilder ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ์ถœ๋ ฅ๋œ ๊ฒฝ์šฐ JVM ์˜ต์…˜ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค.

-Djboss.platform.mbeanserver๋ฅผ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Figure 11. ์„ค์ • ์ถ”๊ฐ€ ์˜ˆ

4.1.7. permission ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐJava Security Policy ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ, $JAVA_HOME/jre/lib/security/java.policy ํŒŒ์ผ์— ๊ถŒํ•œ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ถŒํ•œ์„ ์ผ๊ด„ ์ ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ, {JAVA_HOME}/jre/lib/security/java.policy ํŒŒ์ผ์— ํ•˜๊ธฐ์˜ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

grant {  permission java.security.AllPermission;};

java.io.FilePermission ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ

4.1. ์„ค์น˜ ์—๋Ÿฌ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 17

Page 21: Java Agent Guide - WhaTap Inc

$JAVA_HOME/jre/lib/security/java.policy ํŒŒ์ผ์— ํ•˜๊ธฐ์˜ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

grant {  ...  permission java.io.FilePermission {์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€์—์„œ ํ™•์ธ๋œ ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ}, "read"};

java.util.PropertyPermission ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ

$JAVA_HOME/jre/lib/security/java.policy ํŒŒ์ผ์— ํ•˜๊ธฐ์˜ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

grant {  ...  permission java.util.PropertyPermission {์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€์—์„œ ํ™•์ธ๋œ ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ}, "read"};

4.1.8. Sigar library๋ฅผ ๋กœ๋”ฉํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ$WHATAP_HOME/lib1/*.so ํŒŒ์ผ์— ์‹คํ–‰ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„ ์—†๋‹ค๋ฉด ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

$ sudo chmod +x *.so

AIX 7์—์„œ $WHATAP_HOME/lib1 ํ•˜์œ„์— libsigar-ppc64-aix-7.so ํŒŒ์ผ์ด ์—†์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ํŒŒ์ผ์„ ๋ณต์‚ฌ ํ•ฉ๋‹ˆ๋‹ค.

$ cp libsigar-ppc64-aix-5.so libsigar-ppc64-aix-7.so

4.2. ์—์ด์ „ํŠธ ๋„ค์ด๋ฐ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋ฅผ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์œผ๋ฉฐ ์™€ํƒญ์€ ์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„๊ณผ ์˜ค๋ธŒ์ ํŠธ ์•„์ด๋””๋ฅผ ํ†ตํ•ด์„œ ๋Œ€์ƒ์„ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ธŒ์ ํŠธ(์—์ด์ „ํŠธ)์ด๋ฆ„์€ ํ”„๋กœ์ ํŠธ ๋‹จ์œ„๋กœ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์˜ค๋ธŒ์ ํŠธ ์•„์ด๋””/์ด๋ฆ„์ด ๋ฐ”๋€Œ๋ฉด ์ด์ „ ๋ฐ์ดํ„ฐ์™€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์™€ํƒญ ๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋น„์Šค์—์„œ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ์„ ์˜ค๋ธŒ์ ํŠธ ๋˜๋Š” ์—์ด์ „ํŠธ๋กœ ํ˜ผ์šฉํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

4.2. ์—์ด์ „ํŠธ ๋„ค์ด๋ฐ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 18

Page 22: Java Agent Guide - WhaTap Inc

4.2.1. ์ด๋ฆ„ ๊ฒฐ์ • ๋ฐฉ์‹์ถ”๊ฐ€์ ์ธ ์„ค์ •์ด ์—†๋Š” ๊ฒฝ์šฐ ์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„์€ ์ž๋™์œผ๋กœ ๊ฒฐ์ • ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ) IP ์ฃผ์†Œ๊ฐ€ 10.11.12.13 ์ธ ์„œ๋ฒ„์—์„œ Tomcat ์ด 8080 ํฌํŠธ๋กœ ๊ธฐ๋™๋œ ๊ฒฝ์šฐ TC-12-13-8080 ์ด๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„์œผ๋กœ ์ž๋™ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

whatap.oname ์„ค์ •์ด ์—†๋Š” ๊ฒฝ์šฐ (๊ธฐ๋ณธ๊ฐ’)

1. whatap.type์„ ์‹๋ณ„ํ•œ๋‹ค.2. whatap.type์ด ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ฉด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ๋ฅผ ์‹๋ณ„ ํ•œ๋‹ค.3. ํฌํŠธ๊ฐ€ ์‹๋ณ„๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด pid ๋ฅผ ๊ฒ€์ƒ‰ ํ•œ๋‹ค.4. ์‹๋ณ„๋œ ์ •๋ณด์— IPv4 ์ฃผ์†Œ 3,4๋ฒˆ์งธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ตœ์ข… ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•œ๋‹ค.

๊ฒฐ๊ณผ : {type}-{ip2}-{ip3}-{port}

์ด์™€๊ฐ™์€ ์ด๋ฆ„ ๊ฒฐ์ • ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์„œ๋น„์Šค ์ค‘์ง€, ๋„คํŠธ์›Œํฌ ๋‹จ์ ˆ ํ›„ ์žฌ ์ ‘์†๋œ ์—์ด์ „ํŠธ์™€ ๊ธฐ์กด ์—์ด์ „ํŠธ๋กœ ๋ถ€ํ„ฐ ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ์˜ ์—ฐ์†์„ฑ์„์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ž…๋‹ˆ๋‹ค.

4.2.2. ์ด๋ฆ„ ๋ณ€์ˆ˜์™€ํƒญ์€ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ œ๊ณต ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„ ํŒจํ„ด์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜ ์ข…๋ฅ˜

๋ฌธ์ž์—ด

์ง€์ •ํ•œ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

{type}

์ปจํ…Œ์ด๋„ˆ ํƒ€์ž…์„ ์ž๋™ ์‹๋ณ„ํ•ด ๋ถ€์—ฌ ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ์‹๋ณ„ ๋Œ€์ƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.JAVA, TOMCAT, JBOSS, RESIN, SPRINGBOOT, JETTY, JEUS, WEBLOGIC, WEBSPHERE, UNDERTOW, PLAY

{ip0}

IPv4 ์ฃผ์†Œ ์ค‘ ์ฒซ๋ฒˆ์งธ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

{ip1}

IPv4 ์ฃผ์†Œ ์ค‘ ๋‘๋ฒˆ์งธ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

{ip2}

IPv4 ์ฃผ์†Œ ์ค‘ ์„ธ๋ฒˆ์งธ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

{ip3}

IPv4 ์ฃผ์†Œ ์ค‘ ๋„ค๋ฒˆ์งธ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

{pid}

Java Process ์˜ pid ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

{port}

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Listen ํ•˜๋Š” ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

4.2.3. ์ด๋ฆ„ ์ง€์ •์ž๋™์œผ๋กœ ๋ถ€์—ฌ๋œ ์ด๋ฆ„ ๋Œ€์‹  ์ง์ ‘ ์ด๋ฆ„์„ ์ •ํ• ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

4.2. ์—์ด์ „ํŠธ ๋„ค์ด๋ฐ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 19

Page 23: Java Agent Guide - WhaTap Inc

์šฐ์„ ์ˆœ์œ„ ์˜ต์…˜ ์„ค์ •์œ„์น˜ ์„ค๋ช…

1 -Dwhatap.name JVM Option ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋ช… ํŒจํ„ด์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

default : {type}-{ip2}-{ip3}-{port}

2 -Dwhatap.oname JVM Option ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋ช…์„ ๊ณ ์ •๊ฐ’์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„์˜ ์ž๋™๋ถ€์—ฌ

ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ Scale Outํ™˜๊ฒฝ์—์„œ๋Š” VM์ด ๋ณต์‚ฌ๋˜์–ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„์ด ์ž๋™ ๋ถ€์—ฌ๋˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋™์ผ ํ”„๋ผ์ด๋น— IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„ ์ž๋™ ๋ถ€์—ฌ

๋งŒ์•ฝ 2๊ฐœ์˜ VPCํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ๋™์ผํ•œ private IP ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋„คํŠธ์›์„ ๊ตฌ์„ฑํ•œ๊ฒฝ์šฐ ๋‘๊ฐœ์˜ VPC๋Š” ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ๋กœ ๋ถ„๋ฆฌํ•˜๊ฑฐ๋‚˜-Dwhatap.name์„ ์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ„ด์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ• ๋•Œ๋Š”

java ์‹คํ–‰ ์˜ต์…˜์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-Dwhatap.oname=tomcat1

์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„์„ ํŒจํ„ด์œผ๋กœ ์ง€์ •ํ•˜๊ณ  ์‹ถ์„๋•Œ

๋ฌธ์ž์—ด๊ณผ ๋ณ€์ˆ˜๋ฅผ ์กฐํ•ฉํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-Dwhatap.name=front-{ip3}-{port}

4.3. MSA ์—…๋ฌด ๊ทธ๋ฃน ๊ตฌ๋ถ„Auto Scale Out ํ™˜๊ฒฝ์—์„œ ์ž๋™ ๋“ฑ๋ก๋œ ์—์ด์ „ํŠธ์˜ IP / Port / Pid ์ •๋ณด๋งŒ์„ ๊ฐ€์ง€๊ณ  ์—…๋ฌด ๋‹จ์œ„์˜ ์ •๋ณด๋ฅผ ์ธ์ง€ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ okind ์†์„ฑ์„ ๋ถ€์—ฌํ•˜๋ฉด ์‰ฝ๊ฒŒ ์‹๋ณ„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ „ํ˜•์ ์ธ Docker ํ™˜๊ฒฝ์˜ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

โ€ข ๊ฐ ์—์ด์ „ํŠธ๋Š” ์ž˜๊ฒŒ ์ชผ๊ฐœ์–ด ๋†“์€ MSA (Micro Service Architecture) ๊ตฌ์„ฑ ์š”์†Œ ์ž…๋‹ˆ๋‹ค.

โ€ข ์—์ด์ „ํŠธ๋“ค์€ ์ž๋™์œผ๋กœ Scale In/Out ๋ฉ๋‹ˆ๋‹ค.

โ€ข ์–ด๋–ค IP๋ฅผ ๊ฐ€์ง„ ์„œ๋ฒ„์—์„œ ์–ด๋–ค pid ๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ๋™ ๋  ์ง€๋Š” ์˜ˆ์ธก ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์ด๋ฆ„๊ณผ ๋”๋ถˆ์–ด ์—…๋ฌด๋ฅผ ์‹๋ณ„ ํ•  ์ˆ˜ ์žˆ๋Š” whatap.okind ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด okind ์†์„ฑ์„ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค.

JVM ์˜ต์…˜์— ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JAVA_OPTS

-Dwhatap.okind=mobile_ui

์„ค์ • ํŒŒ์ผ์— ์ถ”๊ฐ€ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

whatap.conf

whatap.okind=common_api

MSA ํ™˜๊ฒฝ์ด๋ผ๋ฉด okind ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ๋งŒ ์™€ํƒญ์ด ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.3. MSA ์—…๋ฌด ๊ทธ๋ฃน ๊ตฌ๋ถ„

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 20

Page 24: Java Agent Guide - WhaTap Inc

4.4. Scale In ์—์„œ ์—์ด์ „ํŠธ ์ž๋™ ์‚ญ์ œ์—์ด์ „ํŠธ ์ด๋ฆ„์„ ์ž๋™๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์€ Scale Out ์‹œ ์šด์˜์ž์˜ ๊ฐœ์ž… ์—†์ด ์‹œ์Šคํ…œ์„ ์ž๋™์œผ๋กœ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค ๊ทธ๋Ÿฐ๋ฐ Auto Scale ํ™˜๊ฒฝ์—์„œ Scale In์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์ •์ƒ์ ์ธ Shutdown์œผ๋กœ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ ์‚ญ์ œ๋ฅผ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„์—์„œ ์—์ด์ „ํŠธ๋กœ ๋ถ€ํ„ฐ ์ž๋™ ์‚ญ์ œ์— ๋Œ€ํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ${WHATAP_HOME}์— Java ํ”„๋กœ์„ธ์Šค์˜ {processid}.shutdown ํŒŒ์ผ์ด ๋‚˜ํƒ€๋‚˜๋ฉด 5์ดˆ ์ด๋‚ด์— ์—์ด์ „ํŠธ๋Š” ์„œ๋ฒ„์— โ€œSILENT_SHUTDOWNโ€ ์ด๋ฒคํŠธ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

SILENT_SHUTDOWN ์ด๋ฒคํŠธ๊ฐ€ ์ „์†ก๋˜๊ณ  1๋ถ„ ์ด๋‚ด์— ์—์ด์ „ํŠธ๊ฐ€ ์…ง๋‹ค์šด๋˜๋ฉด ์™€ํƒญ์„œ๋ฒ„๋Š” ํ•ด๋‹น ์—์ด์ „ํŠธ๋ฅผ ๊ณง๋ฐ”๋กœ ๋ชฉ๋ก์—์„œ ์ œ๊ฑฐํ•˜๊ณ inactive์ด๋ฒคํŠธ๋„ ๋ฐœ์ƒํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Tomcat ์˜ ๊ฒฝ์šฐ shutdown.sh ์— ์ง€์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$TOMCAT_HOME/bin/shutdown.sh

touch $WHATAP_HOME/$CATALINA_PID.shutdown

4.5. AES 256 ์•”ํ˜ธํ™” ์ ์šฉ์™€ํƒญ APM ์—์ด์ „ํŠธ๋Š” ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์„œ๋ฒ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.์ด๋ฅผ ์œ„ํ•ด XOR ์—ฐ์‚ฐ๊ณผ AES ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉ, ํ‰๋ฌธ์„ 128๋น„ํŠธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์•”๋ณตํ˜ธํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ•ํ™”๋œ ๋ณด์•ˆ์„ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ 256๋น„ํŠธ๊นŒ์ง€ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ธฐ๋ณธ์ ์œผ๋กœ JCE๋Š” 128๋น„ํŠธ๋ฅผ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— AES 256 ๋น„ํŠธ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” jce ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š” ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ™˜๊ฒฝ์—์„œ AES 256 ์ ์šฉ์‹œ ์˜ค๋ฅ˜

Unsupported keysize or algorithm parameters.##ํ˜น์€,Illegal key size or default parameters.

โ€ข Java 8

โ—ฆ https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

โ€ข Java 7

โ—ฆ http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

โ€ข Java 6

โ—ฆ http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

โ€ข Java 5

โ—ฆ http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR

โ€ข Java 1.42

โ—ฆ http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#7503-jce-1.4.2-oth-JPR

๋งํฌ์—์„œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•œ ํ›„ $JAVA_HOME/jre/lib/security์— ํŒŒ์ผ์„ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

jce ๊ฐ€ ์ ์šฉ ๋˜์—ˆ๋‹ค๋ฉด ${WHATAP_HOME}/whatap.conf ํŒŒ์ผ์— ์•„๋ž˜ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

cypher_level=256 ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

cypher_level=256

4.4. Scale In ์—์„œ ์—์ด์ „ํŠธ ์ž๋™ ์‚ญ์ œ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 21

Page 25: Java Agent Guide - WhaTap Inc

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์žฌ์‹œ์ž‘ ์ดํ›„ ์ ์šฉ ๋ฉ๋‹ˆ๋‹ค.

4.5. AES 256 ์•”ํ˜ธํ™” ์ ์šฉ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 22

Page 26: Java Agent Guide - WhaTap Inc

Chapter 5. ๋ฐ์ดํ„ฐ์™€ํƒญ ์—์ด์ „ํŠธ๋Š” ํŠธ๋žœ์žญ์…˜ ์„ฑ๋Šฅ, ์ฃผ์š” ์„ฑ๋Šฅ ํ†ต๊ณ„ ๊ทธ๋ฆฌ๊ณ  ์„œ๋น„์Šค์™€ ์ž์›์— ๋Œ€ํ•œ ์นด์šดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

5.1. ํŠธ๋žœ์žญ์…˜ ์ถ”์ 

5.1.1. ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒํŠธ๋žœ์žญ์…˜์ด๋ž€ ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ์˜ LUW(Logical Unit of Work)๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์›น์„œ๋น„์Šค(URL) ์š”์ฒญ์— ๋Œ€ํ•œ์ฒ˜๋ฆฌ๊ณผ์ •์ด ๋ฐ”๋กœ ํŠธ๋žœ์žญ์…˜์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํŠธ๋žœ์žญ์…˜์€ ์›น์„œ๋น„์Šค(URL)์— ๋Œ€ํ•œ HTTP Request๋ฅผ ๋ฐ›์•„ Response๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๊ณผ์ •์ž…๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์€ ์ด ํŠธ๋žœ์žญ์…˜๋“ค์˜ ์„ฑ๋Šฅ์œผ๋กœ ์š”์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ ์„ฑ๋Šฅ์€ ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘์—์„œ ๋ถ€ํ„ฐ ์ข…๋ฃŒ์‹œ์ , ๊ทธ๋ฆฌ๊ณ  ์‘๋‹ต์‹œ๊ฐ„๋ฐ ์ž์› ์‚ฌ์šฉ๋Ÿ‰ ํ˜น์€ ํŠธ๋žœ์žญ์…˜ ํ˜ธ์ถœ์ž์˜ ์†์„ฑ๋“ฑ์˜ ์ •๋ณด๋“ค์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ํŠธ๋žœ์žญ์…˜ ์‘๋‹ต ๋ถ„ํฌ์™€ ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„๋ฅผ ํ†ตํ•ด์„œ ํŠธ๋žœ์žญ์…˜ ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜์˜ ์ด๋ฆ„

ํŠธ๋žœ์žญ์…˜์˜ ์ด๋ฆ„์€ URL์ž…๋‹ˆ๋‹ค. ๋‹จ Get ํŒŒ๋ผ๋ฏธํ„ฐ(Query String)๋Š” ์ œ์™ธ ๋ฉ๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ

http://www.whatap.io/hr/apply.do?name='kim'

ํŠธ๋žœ์žญ์…˜ ์ด๋ฆ„

/hr/apply.do

์™€ํƒญ์—์„œ๋Š” "์›น์„œ๋น„์Šค ์ด๋ฆ„" ๊ณผ "ํŠธ๋žœ์žญ์…˜ ์ด๋ฆ„"์„ ํ˜ผ์šฉํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ํŠน์ • URL๊ณผ ๊ทธ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ๋ชจ๋“ˆ๋กœ ๋ณผ์ˆ˜์žˆ๊ณ  ํŠธ๋žœ์žญ์…˜ ๊ทธ ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ํ•˜๋‚˜๋ฅผ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜์˜ ์ด๋ฆ„์€ ๋™์ผํ•˜๊ฒŒ URL์ด๋ผ๊ณ  ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ ์ด๋ฆ„ ์ •๊ทœํ™”

MSA ๊ธฐ๋ฐ˜์˜ ์‹œ์Šคํ…œ์ด ๋ฐœ์ „ํ•˜๋ฉด์„œ URL + ? ์ธ์ž ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹๋ณด๋‹ค URL ํŒจ์Šค์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„ฃ๋Š” ๋ฐฉ์‹์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

http://www.whatap.io/hr/kim/apply.do

์ด๋ ‡๊ฒŒ ํŒจ์ŠคํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ํŠธ๋žœ์žญ์…˜ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ํ†ต๊ณ„์  ๊ด€์ ์˜ ์„ฑ๋Šฅ ๋ถ„์„์ด ์–ด๋ ต๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์ •๊ทœํ™”ํ•  ํ•„์š”๊ฐ€์žˆ์Šต๋‹ˆ๋‹ค. ์™€ํƒญ์€ ์ด๋•Œ ์ •๊ทœํ™”๋ฅผ ์œ„ํ•œ ์˜ต์…˜๊ณผ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

whatap.conf

 trace_normalize_urls=/hr/{name}/apply.do

์œ„์™€ ๊ฐ™์ด ์„ค์ •ํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜ ์ด๋ฆ„์ด /hr/kim/apply.do โ†’ /hello/:name/apply.do ๋กœ ์น˜ํ™˜๋˜์–ด ์ˆ˜์ง‘๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋Œ€์ƒ url์„ค์ •์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ ๊ธฐ๋Šฅ๋งŒoffํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜ต์…˜์„ ์ง€์ •ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ true์ž…๋‹ˆ๋‹ค.

whatap.conf

 trace_normalize_enabled=false

5.1. ํŠธ๋žœ์žญ์…˜ ์ถ”์ 

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 23

Page 27: Java Agent Guide - WhaTap Inc

5.1.2. ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผํŠธ๋žœ์žญ์…˜ ์„ฑ๋Šฅ์ด ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ์‚ฌ์ด์˜ ์š”์•ฝ ์ง€ํ‘œ๋“ค์ด๋‚˜ ์†์„ฑ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค๋ฉด ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ์€ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜ํ–‰๋˜๋Š” ๊ณผ์ •์ค‘์ด ์Šคํ…๋“ค์„์ถ”์ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜์ด ๋Š๋ฆฌ๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ์›์ธ์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ˆ˜ํ–‰ ์ด๋ ฅ์„ ์Šคํ…๋ณ„๋กœ ์ถ”์ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๊ฒƒ์„ ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ๋ง์ด๋ผ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์™€ํƒญ์ด ์ˆ˜์ง‘ํ•˜๋Š” ์Šคํ…์˜ ์ข…๋ฅ˜์—๋Š” ํฌ๊ฒŒ SQL ์Šคํ…, HTTP CALL์Šคํƒญ, ๋ฉ”์„ธ์ง€ ์Šคํ…, SOCKET์˜คํ”ˆ ์Šคํ…, DB์—ฐ๊ฒฐ ์Šคํ…, ๋ฉ”์†Œ๋“œ ์Šคํ…๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

DB์—ฐ๊ฒฐ ์Šคํ…

์ˆ˜์ง‘๋ฐฉ์‹: START-ENDRDB์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์Šคํ… ์ •๋ณด์—๋Š” ์ด๋ฆ„,์‘๋‹ต์‹œ๊ฐ„,์—๋Ÿฌ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

SQL ์Šคํ…

์ˆ˜์ง‘๋ฐฉ์‹: START-ENDJDBC SQL์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒญ์ •๋ณด์—๋Š” ์—ฐ๊ฒฐ์ •๋ณด,SQL๋ฌธ, ์—๋Ÿฌ๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

HTTP Call ์Šคํ…

์ˆ˜์ง‘๋ฐฉ์‹: START-END์™ธ๋ถ€ http์„œ๋น„์Šค ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์Šคํ… ์ •๋ณด์—๋Š” url, host, port, ์‘๋‹ต์‹œ๊ฐ„, ์—๋Ÿฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Message ์Šคํ…

์ˆ˜์ง‘๋ฐฉ์‹: ADD๋ฉ”์„ธ์ง€ ์Šคํ…์„ ํ”„๋กœํŒŒ์ผ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋น„์ •ํ˜•์ ์ธ ๋ชจ๋“  ๊ตฌ๊ฐ„์— ๋Œ€ํ•œ ์ด๋ ฅ์„ ์ˆ˜์ง‘ํ• ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. file์˜คํ”ˆ ๋“ฑ๋“ฑ ํ˜น์€ ์‚ฌ์šฉ์ž๋„ ์ž„์˜์˜์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

SOCKET ์Šคํƒญ

์ˆ˜์ง‘๋ฐฉ์‹: ADDSocket ์˜คํ”ˆ์„ ํ‘œํ˜„ํ•˜๋Š” ์Šคํ…์ž…๋‹ˆ๋‹ค.

METHOD ์Šคํƒญ

์ˆ˜์ง‘๋ฐฉ์‹: START-END๋ฉ”์†Œ๋“œ ์‘๋‹ต์‹œ๊ฐ„์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

ACTIVE STATCK ์Šคํƒญ

์ˆ˜์ง‘๋ฐฉ์‹: ADD์•กํ‹ฐ๋ธŒ ์Šคํƒญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ƒ์„ฑํ•˜์—ฌ ํ”„๋กœํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค

5.1.3. ํŠธ๋žœ์žญ์…˜ ์Šคํƒญ ์ˆ˜์ง‘ ๋ฐฉ์‹์ž๋ฐ”์—์ด์ „ํŠธ๋Š” ์„ ํ˜• ์ˆ˜์ง‘ ๋ฐฉ์‹๊ณผ ํ™˜ํ˜• ์ˆ˜์ง‘๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์„ ํ˜• ์ˆ˜์ง‘

๊ฐœ๋ณ„ ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ์€ ๋ฌดํ•œ์ • ์Šคํ…์„ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ๋ณ„๋กœ ๊ธธ์ด๊ฐ€ ์ œํ•œ๋œ ๋ฒ„ํผ์— ํ”„๋กœํŒŒ์ผ ์Šคํ…์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํŠธ๋žœ์žญ์…˜์€์ตœ๋Œ€๋กœ ์ˆ˜์ง‘ํ•  ์ˆ˜์žˆ๋Š” ์Šคํ…์˜ ์ˆ˜๊ฐ€ ์˜ต์…˜์œผ๋กœ ์ง€์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

profile_step_max_count

default: 1024์ตœ๋Œ€๋กœ ์ˆ˜์ง‘๊ฐ€๋Šฅํ•œ ์Šคํ…์ˆ˜

5.1. ํŠธ๋žœ์žญ์…˜ ์ถ”์ 

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 24

Page 28: Java Agent Guide - WhaTap Inc

profile_step_normal_count

default: 800์ผ๋ฐ˜์ ์œผ๋กœ ์•„๋ฌด๋Ÿฐ ์ œ์•ฝ์—†์ด ์ˆ˜์ง‘๋˜๋Š” ์Šคํ…์ˆ˜

profile_step_heavy_count

default : 1000normal count๋ฅผ ์ดˆ๊ณผํ•œ ๊ฒฝ์šฐ์— ์Šคํ…์€ ์‘๋‹ต์‹œ๊ฐ„์ด ๋Š๋ฆฐ ์Šคํ…๊ณผ ์•กํ‹ฐ๋ธŒ ์Šคํƒ ์Šคํ…๋งŒ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

profile_step_heavy_time

default:100heavy count์ด๋‚ด์—์„œ์˜ ์ˆ˜์ง‘๋˜๋Š” ์Šคํ…์˜ ๊ธฐ์ค€ ์‹œ๊ฐ„์€ profile_step_heavy_time์ž…๋‹ˆ๋‹ค.

Figure 12. Profile Step Buffer

์ˆ˜์ง‘๋˜๋Š” ํ”„๋กœํŒŒ์ผ์˜ ์Šคํ… ์ˆ˜๊ฐ€ heavy count๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์•กํ‹ฐ๋ธŒ ์Šคํƒ๋งŒ์ด ์ˆ˜์ง‘๋ฉ๋‹ˆ. ๋‹จ ์ด๊ฒฝ์šฐ์—๋„ ์ตœ๋Œ€ ์Šคํ… ์ˆ˜๋Š”profile_step_max_count๋ฅผ ๋„˜์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ™˜ํ˜• ์ˆ˜์ง‘

์„ ํ˜• ์ˆ˜์ง‘์€ ํ”„๋กœํŒŒ์ผ์—์„œ ์•ž๋ถ€๋ถ„์„ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ฒ„ํผ์‚ฌ์ด์ฆˆ๋ฅผ ๋„˜์œผ๋ฉด ๋‚˜์ค‘ ๋‚ด์šฉ์„ ๋ฒ„๋ฆฌ์ง€๋งŒ ๋ฐ˜๋Œ€๋กœ ํ™˜ํ˜• ์ˆ˜์ง‘์€ ์•ž๋ถ€๋ถ„์˜ ์Šคํ…์„ ๋ฒ„๋ฆฌ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

circular_profile_enabled=true

Figure 13. Profile Step Circular Buffer

๋ฒ„ํผ ์‚ฌ์ด์ฆˆ๋Š” profile_step_max_count์— ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

profile_step_max_count=1024

5.1. ํŠธ๋žœ์žญ์…˜ ์ถ”์ 

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 25

Page 29: Java Agent Guide - WhaTap Inc

5.2. Active Stack์ง„ํ–‰์ค‘์ธ ํŠธ๋žœ์žญ์…˜์„ ์•กํ‹ฐ๋ธŒ ํŠธ๋žœ์žญ์…˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์•กํ‹ฐ๋ธŒ ํŠธ๋žœ์žญ์…˜์—์„œ ์ •๊ธฐ์ ์œผ๋กœ ๋คํ”„ํ•œ ์Šคํƒ์„ ์•กํ‹ฐ๋ธŒ ์Šคํƒ์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค.

์™€ํƒญ ์—์ด์ „ํŠธ๋Š” ๋งค 10์ดˆ(์˜ต์…˜ ๊ฐ€๋Šฅ)๋งˆ๋‹ค ์•กํ‹ฐ๋ธŒ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด์„œ ์•กํ‹ฐ๋ธŒ์Šคํƒ์„ ๋คํ”„ํ•˜๊ณ  ์ด๊ฒƒ์„ ์„œ๋ฒ„์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.(active_stack_second=10)

5.2.1. ์ปดํŒฉํŠธํ•œ ์•กํ‹ฐ๋ธŒ ์Šคํƒ ์ˆ˜์ง‘์•กํ‹ฐ๋ธŒ ์Šคํƒ์€ ์Šค๋ ˆ๋“œ ๋คํ”„๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž˜๋ชป๊ตฌํ˜„๋˜๋ฉด ์—์ด์ „ํŠธ์— ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์งˆ ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์™€ํƒญ์€ ์—์ด์ „ํŠธ ๋ถ€ํ•˜๋ฅผ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ์•กํ‹ฐ๋ธŒ ์Šคํƒ์„ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์˜ต์…˜๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ > ๋”๋ณด๊ธฐ > ์“ฐ๋ ˆ๋“œ ๋ชฉ๋ก/๋คํ”„ ๋ฉ”๋‰ด์—์„œ ์Šค๋ ˆ๋“œ ๋ชฉ๋ก์ค‘์— "WhaTap-ActiveStackDump"์“ฐ๋ ˆ๋“œ์˜ CPU Time์„ ํ™•์ธํ•˜๋ฉด์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ํŒ๋‹จํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

์•กํ‹ฐ๋ธŒ์Šคํƒ์˜ ์˜ˆ

java.lang.StringBuffer.append(StringBuffer.java:309)java.util.regex.Matcher.appendReplacement(Matcher.java:839)java.util.regex.Matcher.replaceAll(Matcher.java:906)java.lang.String.replaceAll(String.java:2162)core.log.triggers.TriggerRegister.changeNotify(TriggerRegister.java:114)core.log.aop.handler.DaoInfo.log(DaoInfo.java:141)core.log.aop.handler.DaoInfo.doAround(DaoInfo.java:102)core.log.aop.reflection.profiler.AroundProfiler.invoke(AroundProfiler.java:19)com.sun.proxy.$Proxy39.getUpdateCount(Unknown Source)org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getNextResultSet(DefaultResultSetHandler.java:256)org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:193)org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)

* * *

sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)java.lang.reflect.Method.invoke(Method.java:606)org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)

์ตœ์ ํ™”๋œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

โ€ข ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰์ค‘์ธ ์“ฐ๋ ˆ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ์Šคํƒ์„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

โ€ข ์•กํ‹ฐ๋ธŒ ์Šคํƒ ๋คํ”„ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์„ ์กฐ์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (active_stack_second=10)

โ€ข ์•กํƒœ๋ธŒ ์Šคํƒ์˜ ์ตœ๋Œ€ ๋ผ์ธ์— ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค,top๋ผ์ธ์—์„œ ๋ถ€ํ„ฐ ๊ธฐ๋ณธ 50๋ผ์ธ์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. (trace_active_callstack_depth=50)

โ€ข ์•กํ‹ฐ๋ธŒ ์Šคํƒ์˜ ๊ฐ ๋ผ์ธ์€ ํ•ด์‰ฌ์ฒ˜๋ฆฌ๋˜์–ด ์ˆ˜์ง‘๋ฉ๋‹ˆ๋‹ค.(text๋Š” ํ•œ๋ฒˆ๋งŒ)

โ€ข ํ•œ ํƒ€์ž„์— ์ˆ˜์ง‘๋˜๋Š” ์ตœ๋Œ€ ์•กํ‹ฐ๋ธŒ์Šคํƒ ๊ฐฏ์ˆ˜๋„ ์ œํ•œ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.(active_stack_count=100)

5.2.2. Background Thread์— ๋Œ€ํ•œ ์•กํ‹ฐ๋ธŒ ์Šคํƒ@since v1.6.2๊ธฐ๋ณธ์ ์œผ๋กœ ์•กํ‹ฐ๋ธŒ ์Šคํƒ์€ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š” ์“ฐ๋ ˆ๋“œ์˜ ์Šคํƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ถ€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์“ฐ๋ ˆ๋“œ์— ๋Œ€ํ•ด์„œ๋„ ์Šคํƒ์„ ๋ถ„์„ํ•  ํ•„์š”๊ฐ€

5.2. Active Stack

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 26

Page 30: Java Agent Guide - WhaTap Inc

์žˆ์„ ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์˜ต์…˜์„ ํ†ตํ•ด์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์“ฐ๋ ˆ๋“œ์— ๋Œ€ํ•œ ์•กํ‹ฐ๋ธŒ ์Šคํƒ์„ ํ™•๋ณดํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

async_stack_enabled=false

async_stack_enabled๋ฅผ true๋กœ ์„ค์ •ํ•˜๋ฉด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

active_stack_second=10

์Šคํƒ ๋คํ”„ ๊ฐ„๊ฒฉ์€ ํฌ๊ทธ๋ผ์šด๋“œ ์•กํ‹ฐ๋ธŒ ์Šคํƒ ์„ค์ •์— ๋”ฐ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

async_thread_match=http*,abc*

๋Œ€์ƒ ์“ฐ๋ ˆ๋“œ ์ด๋ฆ„์„ ์ง€์ •ํ• ๋•Œ๋Š” '*' ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ํŒจํ„ด์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์“ฐ๋ ˆ๋“œ ์ด๋ฆ„์œผ๋กœ ์Šคํƒ ๋คํ”„ ๋Œ€์ƒ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ","๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ match๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

async_thread_parking_class=sun.misc.Unsafeasync_thread_parking_method=park

์Šคํƒ์˜ Top๋ฉ”์†Œ๋“œ๊ฐ€ async_thread_parking์— ๋“ฑ๋ก๋œ ํด๋ž˜์Šค/๋ฉ”์†Œ๋“œ์ผ๋•Œ ์“ฐ๋ ˆ๋“œ๊ฐ€ ํŒŒํ‚น์ƒํƒœ์— ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  ๋คํ”„๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

5.3. ํ†ต๊ณ„(๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ)์™€ํƒญ ์—์ด์ „ํŠธ๋Š” ํŠธ๋žœ์žญ์…˜์ •๋ณด, SQL๊ณผ ๊ฐ™์€ ์ฃผ์š” ํ”„๋กœํŒŒ์ผ ์ •๋ณด์— ๋Œ€ํ•ด ํ†ต๊ณ„์ •๋ณด๋ฅผ ์ˆ˜์ง‘ ํ•ฉ๋‹ˆ๋‹ค. ๋งค 5๋ถ„๋งˆ๋‹ค ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ  ์„œ๋ฒ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

5.3.1. ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ๋งค 5๋ถ„๋งˆ๋‹ค ์ตœ๋Œ€ 5000๊ฐœ์˜ URL๋ณ„ ์ˆ˜ํ–‰ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์„œ๋ฒ„์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์„œ๋กœ๋‹ค๋ฅธ URL์˜ ์ˆ˜๊ฐ€ 5๋ถ„๋™์•ˆ5000๊ฐœ๊ฐ€ ๋„˜์œผ๋ฉด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

hash URL ํ•ด์‰ฌ u4

count ๊ฑด์ˆ˜ u4

error ์—๋Ÿฌ๊ฑด์ˆ˜ u4

time_sum ์‘๋‹ต์‹œ๊ฐ„์˜ ํ•ฉ u8

time_max ์ตœ๋Œ€ ์‘๋‹ต์‹œ๊ฐ„ u4

sql_count SQL ์ˆ˜ํ–‰ ๊ฑด์ˆ˜ u4

sql_time SQL์ˆ˜ํ–‰์‹œ๊ฐ„์˜ ํ•ฉ u8

sql_fetch SQL ํŒจ์น˜ ๊ฑด์ˆ˜ u4

sql_fetch_time SQL ํŒจ์น˜ ์‹œ๊ฐ„์˜ ํ•ฉ u8

httpc_count HTTP Call๊ฑด์ˆ˜ u4

httpc_time HTTP Call ์‹œ๊ฐ„์˜ ํ•ฉ u8

malloc_sum ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ SUM u8

cpu_sum CPU์‚ฌ์šฉ๋Ÿ‰ SUM u8

5.3. ํ†ต๊ณ„(๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ)

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 27

Page 31: Java Agent Guide - WhaTap Inc

malloc_sum์€ trace_malloc_enabled=true๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ์ˆ˜์ง‘๋ฉ๋‹ˆ๋‹ค.(default: false)

5.3.2. SQL ์ˆ˜ํ–‰ ํ†ต๊ณ„5๋ถ„๋™์•ˆ์˜ SQL ์ˆ˜ํ–‰ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋™์•ˆ ์„œ๋กœ๋‹ค๋ฅธ SQL๋ฌธ์žฅ์ด ์ตœ๋Œ€ 5000๊นŒ์ง€๋งŒ ํ—ˆ์šฉ์ด ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ•˜๋‚˜์˜ node.js ํ”„๋กœ์„ธ์Šค์—์„œ ํ•œ๊ณ„๋ฅผ๋„˜๋Š” SQL์ด๋ฐœ์ƒํ•˜๋ฉด ํ†ต๊ณ„๋ฐ์ดํ„ฐ์—์„œ๋Š” ๋ฒ„๋ ค์ง‘๋‹ˆ๋‹ค.

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

dbc DB์—ฐ๊ฒฐ ์ •๋ณด์˜ Hash u4

sql SQL๋ฌธ Hash u4

count_total ์ˆ˜ํ–‰ ๊ฑด์ˆ˜ u4

count_error ์—๋Ÿฌ๊ฑด์ˆ˜ u4

time_sum ์‘๋‹ต์‹œ๊ฐ„์˜ ํ•ฉ u8

time_max ์ตœ๋Œ€ ์‘๋‹ต์‹œ๊ฐ„ u4

fetch_count ํŒจ์น˜ ๊ฑด์ˆ˜ u4

fetch_time ํŒจ์น˜ ์‹œ๊ฐ„์˜ ํ•ฉ u8

service SQL์„ ์ˆ˜ํ–‰ํ•œ service์ค‘์— ํ•˜๋‚˜ u4

service(URL) hash๋Š” 5๋ถ„๋™์•ˆ ํ•ด๋‹น SQL์„ ํ˜ธ์ถœํ•œ URL์ค‘ ํ•˜๋‚˜(๋งˆ์ง€๋ง‰ ํ˜ธ์ถœ URL)๋ฅผ ๋ถ„์„ ํ™œ์šฉ์„ ์œ„ํ•ด ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

5.3.3. HTTPCall ์ˆ˜ํ–‰ ํ†ต๊ณ„5๋ถ„๋™์•ˆ์˜ Http Call ์ˆ˜ํ–‰ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋™์•ˆ ์„œ๋กœ๋‹ค๋ฅธ Http Call๋ฌธ์žฅ์ด ์ตœ๋Œ€ 5000๊นŒ์ง€๋งŒ ํ—ˆ์šฉ์ด ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ•˜๋‚˜์˜ node.jsํ”„๋กœ์„ธ์Šค์—์„œ ํ•œ๊ณ„๋ฅผ ๋„˜๋Š” ์™ธ๋ถ€ Http Call์ด ๋ฐœ์ƒํ•˜๋ฉด ํ†ต๊ณ„๋ฐ์ดํ„ฐ์—์„œ๋Š” ๋ฒ„๋ ค์ง‘๋‹ˆ๋‹ค.

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

url ํƒ€๊ฒŸ URL hash u4

host Host or ip u4

port Tcp Port u4

count_total ์ˆ˜ํ–‰ ๊ฑด์ˆ˜ u4

count_error ์—๋Ÿฌ๊ฑด์ˆ˜ u4

time_sum ์‘๋‹ต์‹œ๊ฐ„์˜ ํ•ฉ u8

time_max ์ตœ๋Œ€ ์‘๋‹ต์‹œ๊ฐ„ u4

service Http Call์„ ์ˆ˜ํ–‰ํ•œ service์ค‘์— ํ•˜๋‚˜ u4

5.3.4. ์—๋Ÿฌ ํ†ต๊ณ„5๋ถ„๋™์•ˆ ๋ฐœ์ƒํ•œ ์„œ๋น„์Šค ์—๋Ÿฌ์— ๋Œ€ํ•œ ํ†ต๊ณ„์ž…๋‹ˆ๋‹ค. ์„œ๋กœ๋‹ค๋ฅธ ์—๋Ÿฌ+ํŠธ๋žœ์žญ์…˜์ด๋ฆ„์„ ํ‚ค๋กœ ๋ฐœ์ƒ ๊ฑด์ˆ˜๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋‹น ์ตœ๋Œ€ 1000๊ฐ€์ง€ ์„œ๋กœ๋‹ค๋ฅธ์—๋Ÿฌ๋ฅผ ํ†ต๊ณ„ํ™”ํ•ฉ๋‹ˆ๋‹ค.

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

classHash ์—๋Ÿฌํด๋ž˜์Šค u4

5.3. ํ†ต๊ณ„(๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ)

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 28

Page 32: Java Agent Guide - WhaTap Inc

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

service ํŠธ๋žœ์žญ์…˜ HASH u4

snapSeq ์Šคํƒ ์ •๋ณด u8

msg ๋ฉ”์„ธ์ง€ hash u4

count ๋ฐœ์ƒ ๊ฑด์ˆ˜ u4

5.3.5. IP๋ณ„ ํ˜ธ์ถœ ๊ฑด์ˆ˜IP๋ณ„๋กœ ํ˜ธ์ถœํ•œ ํŠธ๋žœ์žญ์…˜ ๊ฑด์ˆ˜์„ ํ†ต๊ณ„์ ์œผ๋กœ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋‹น ์ˆ˜์ง‘๊ฐ€๋Šฅํ•œ ์„œ๋กœ๋‹ค๋ฅธ IP์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค๋‹น ์ตœ๋Œ€ 70000๊ฐœ ์ž…๋‹ˆ๋‹ค.

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

ip ip์ฃผ์†Œ u4

count ๊ฑด์ˆ˜ u4

5.3.6. UserAgent๋ณ„ ํ˜ธ์ถœ ๊ฑด์ˆ˜User Agnet ๋ฌธ์ž์—ด์˜ Hash๋ณ„๋กœ ํ˜ธ์ถœ ๊ฑด์ˆ˜๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋‹น ์ˆ˜์ง‘๊ฐ€๋Šฅํ•œ ์„œ๋กœ๋‹ค๋ฅธ UserAgent Hash๋Š” ์ธ์Šคํ„ด์Šค๋‹น ์ตœ๋Œ€ 500๊ฐœ ์ž…๋‹ˆ๋‹ค.

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

hash hash u4

count ๊ฑด์ˆ˜ u4

5.3.7. ํŠธ๋žœ์žญ์…˜ Caller ํ†ต๊ณ„๋ฉ€ํ‹ฐ ์„œ๋ฒ„๊ฐ€ rest ํ˜ธ์ถœ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ Caller์™€ Callee๊ฐ„์˜ ์—ฐ๊ด€ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ• ์ˆ˜์žˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ์˜ ์˜ต์…˜์„ ๋จผ์ € ์„ค์ •ํ•ด์•ผํ•œ๋‹ค.

whatap.conf

mtrace_rate=100mtrace_spec=v1stat_mtrace_enabled=true

Figure 14. MSA ์‹œ์Šคํ…œ

์œ„์™€ ๊ฐ™์€ ์•„ํ‚คํ…์ฒ˜์—์„œ caller&calleeํ†ต๊ณ„๋Š” api1์™€ api2์—์„œ๋งŒ ์กฐํšŒํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ˜ธ์ถœ๋˜๋Š” ์‹œ์Šคํ…œ์—์„œ๋Š” Callerํ†ต๊ณ„๋ฅผ์กฐํšŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ Caller์ชฝ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์„œ๋ฒ„์— ์ ์ ˆํ•œ์„ค์ •์ด ๋“ค์–ด๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

whatap.conf of [front]

mtrace_rate=100mtrace_spec=v1stat_mtrace_enabled=true

5.3. ํ†ต๊ณ„(๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ)

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 29

Page 33: Java Agent Guide - WhaTap Inc

whatap.conf of [api1] & [api2]

mtrace_spec=v1stat_mtrace_enabled=true

์ˆ˜์ง‘๋˜๋Š” ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Callee์ชฝ์—์„œ ์กฐํšŒ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

caller_pcode Caller์˜ ํ”„๋กœ์ ํŠธ(์™€ํƒญ) ์ฝ”๋“œ u8

caller_spec Caller์˜ ๋ฒ„์ „ ๋ฌธ์ž์—ด hash u4

caller_url Caller์˜ URL hash u4

spec Callee์˜ ๋ฒ„์ „ ๋ฌธ์ž์—ด hash u4

url Callee URL hash u4

count ์ˆ˜ํ–‰ ๊ฑด์ˆ˜ u4

error ์—๋Ÿฌ๊ฑด์ˆ˜ u4

time ์‘๋‹ต์‹œ๊ฐ„์˜ ํ•ฉ u8

5.3.8. ํŠธ๋žœ์žญ์…˜ ๋„๋ฉ”์ธ ํ†ต๊ณ„์™€ํƒญ์—์ด์ „ํŠธ๋Š” ๋„๋ฉ”์ธ๋ณ„ ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— ๋น„์ฆˆ๋‹ˆ์Šค์ ์ธ ์ด์œ ๋“ฑ์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋„๋ฉ”์ธ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์„œ๋น„์Šค ํ•˜๋Š”์‹œ์Šคํ…œ์—์„œ๋Š” ๋„๋ฉ”์ธ ๋ณ„ ๋ถ„์„์ด ํ•„์š”ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ front์„œ๋ฒ„์—์„œ ์œ ํšจํ•˜๋‹ค

whatap.conf

stat_domain_enabled=true

์ˆ˜์ง‘๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋„๋ฉ”์ธ๋ณ„ URL์˜ ์ฒ˜๋ฆฌ ํ˜„ํ™ฉ์„ ํŒŒ์•…ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

domain ์„œ๋น„์Šค ๋„๋ฉ”์ธ hash u4

url ํŠธ๋žœ์žญ์…˜ URL hash u4

count ์ˆ˜ํ–‰ ๊ฑด์ˆ˜ u4

error ์—๋Ÿฌ๊ฑด์ˆ˜ u4

time ์‘๋‹ต์‹œ๊ฐ„์˜ ํ•ฉ u8

5.3.9. ํŠธ๋žœ์žญ์…˜ REFERER ํ†ต๊ณ„์™€ํƒญ์—์ด์ „ํŠธ๋Š” Referer๋ณ„ ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฌด์— ๋”ฐ๋ผ์„œ๋Š” Referer๋ณ„ ๋ถ„์„์ด ํ•„์š”ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

whatap.conf

stat_domain_enabled=true

์ˆ˜์ง‘๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋„๋ฉ”์ธ๋ณ„ URL์˜ ์ฒ˜๋ฆฌ ํ˜„ํ™ฉ์„ ํŒŒ์•…ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

referer Referer hash u4

5.3. ํ†ต๊ณ„(๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ)

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 30

Page 34: Java Agent Guide - WhaTap Inc

์นผ๋Ÿผ ์„ค๋ช… ํƒ€์ž…

url ํŠธ๋žœ์žญ์…˜ URL hash u4

count ์ˆ˜ํ–‰ ๊ฑด์ˆ˜ u4

error ์—๋Ÿฌ๊ฑด์ˆ˜ u4

time ์‘๋‹ต์‹œ๊ฐ„์˜ ํ•ฉ u8

5.4. ์„ฑ๋Šฅ ์นด์šดํ„ฐ์™€ํƒญ ์—์ด์ „ํŠธ๋Š” ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ ์ •๋ณด, ํ†ต๊ณ„ ์ •๋ณด ์™ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋ฉฐ ์ด๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

Counters

โ€ข User : ์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž ํ˜น์€ ๋ฐฉ๋ฌธ์‚ฌ์šฉ์ž

โ€ข Service : ํŠธ๋žœ์žญ์…˜,SQL,์™ธ๋ถ€ํ˜ธ์ถœ ๊ฑด์ˆ˜๋ฐ ์‘๋‹ต, ์—๋Ÿฌ์œจ๋“ฑ

โ€ข Resource : ์‹œ์Šคํ…œ,ํ”„๋กœ์„ธ์Šค ์ž์› ์‚ฌ์šฉ๋Ÿ‰

5.4.1. User Counter์‚ฌ์šฉ์ž๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋งํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—๋Š” ๋‹ค๋ฅธ์‹œ์Šคํ…œ ๋˜ํ•œ ํฌํ•จ๋  ์ˆ˜์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉ์ž ์ˆ˜๋ฅผ ๊ณ„์‚ฐ ํ•ฉ๋‹ˆ๋‹ค.

์›น์‹œ์Šคํ…œ ์„ฑ๋Šฅ์—์„œ ์‚ฌ์šฉ์ž๋Š” ๋ถ€ํ•˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์‹œ์ž‘์ด๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ถ”์ ์„ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์šฉ์ž๋Š” ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„ํ•  ๊ฒƒ์ด๋ฉฐ์–ด๋–ป๊ฒŒ ์นด์šดํŒ… ํ•  ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ๊ณ ๋ ค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ๊ตฌ๋ถ„

์™€ํƒญ ์—์ด์ „ํŠธ ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

RemoteIP

๊ธฐ๋ณธ๊ฐ’์€ remote ip๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ remote ip ๋Š” ์‹ค์ œ ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค

Cookie(WHATAP)

์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ ์ ‘์† ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋Œ€์ƒ์œผ๋กœ "WHATAP"์ด๋ผ๋Š” ์ฟ ํ‚ค์— UUID๋ฅผ ์ €์žฅ ํ•ฉ๋‹ˆ๋‹ค.

whatap.conf

trace_user_using_ip=false

Header Key

http header์— ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. .whatap.conf

user_header_ticket=USER

์‚ฌ์šฉ์ž ์นด์šดํŒ…

์‚ฌ์šฉ์ž๋ฅผ ์นด์šดํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜์žˆ๋‹ค. ๋™์‹œ ์‚ฌ์šฉ์ž๋Š” ํ˜„์žฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ˆ˜๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ ์ธก์ •ํ•˜๊ณ  ์ผ์ผ์•กํ‹ฐ๋ธŒ ์‚ฌ์šฉ์ž๋Š” ํ•˜๋ฃป๋™์•ˆ ํ•ด๋‹น ์„œ๋น„์Šค์— ๊ด€์‹ฌ์„ ๊ฐ–๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ช‡๋ช…์ธ์ง€์— ๋Œ€ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค์ ์ธ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.

5.4. ์„ฑ๋Šฅ ์นด์šดํ„ฐ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 31

Page 35: Java Agent Guide - WhaTap Inc

์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž

์ตœ๊ทผ 5๋ถ„ ๋™์•ˆ ์‚ฌ์šฉ์ž ์ˆ˜๋ฅผ ์นด์šดํŒ…ํ•ฉ๋‹ˆ๋‹ค. ๋งค5์ดˆ๋งˆ๋‹ค shiftingํ•˜๋ฉด ์‚ฌ์šฉ์ž๋ฅผ ์นด์šดํŒ…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์„œ๋ฒ„์—์„œ ์นด์šดํŒ…๋œ ์ˆซ์ž๋Š” HyperLogLog์•Œ๊ณ ๋ฆฌ์ฆ˜์„ํ†ตํ•ด์„œ ๋จธ์ง€๋ฉ๋‹ˆ๋‹ค.

์ผ์ผ ๋ฐฉ๋ฌธ(์•กํ‹ฐ๋ธŒ) ์‚ฌ์šฉ์ž(DAU)

ํ•˜๋ฃป๋™์•ˆ ์‹œ์Šคํ…œ์— ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์นด์šดํŒ…ํ•ฉ๋‹ˆ๋‹ค. 24์‹œ๊ฐ„ ๋™์•ˆ ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž๋ฅผ hyperloglog๋ฅผ ํ†ตํ•ด์„œ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

์™€ํƒญ์—์„œ๋Š” ์žฅ๊ธฐ๊ฐ„ ์‚ฌ์šฉ์ž๋ฅผ ์นด์šดํŒ… ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ byte block์„ ์„œ๋ฒ„๋กœ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฅผhyperloglog๋กœ ๋จธ์ง€ํ•˜๋ฉด ์ด๋ก ์ ์œผ๋กœ ํ•œ๋‹ฌ ์ด์ƒ์˜ ์•กํ‹ฐ๋ธŒ ์‚ฌ์šฉ์ž๋ฅผ ๊ณ„์‚ฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5.4.2. Service Counter์„œ๋น„์Šค ์นด์šดํ„ฐ์—๋Š” ํŠธ๋žœ์žญ์…˜๊ณผ ํŠธ๋žœ์žญ์…˜์ด ์‚ฌ์šฉํ•˜๋Š” SQLํ˜น์€ ์™ธ๋ถ€ํ˜ธ์ถœ๋“ฑ์— ๋Œ€ํ•œ ๊ฑด์ˆ˜ ์‘๋‹ต์‹œ๊ฐ„ ์—๋Ÿฌ๊ฑด์ˆ˜ ๋“ฑ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์ง€ํ‘œ๊ฐ€ ํฌํ•จ ๋ฉ๋‹ˆ๋‹ค.

Transaction Counter

ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ธก์ •ํ•˜๋Š” ์นด์šดํ„ฐ์ž…๋‹ˆ๋‹ค.

โ€ข ๊ฑด์ˆ˜

โ€ข ์‘๋‹ต์‹œ๊ฐ„

โ€ข ์—๋Ÿฌ๊ฑด์ˆ˜

Active Transaction Counter

์ง„ํ–‰์ค‘์ธ ํŠธ๋žœ์žญ์…˜์˜ ์ˆ˜๋ฅผ ์นด์šดํŒ…ํ•ฉ๋‹ˆ๋‹ค.

โ€ข ๊ฑด์ˆ˜

โ€ข Active Status์ง„ํ–‰ ์ƒํƒœ๋Š” METHOD,SQL,HTTPC,DBC,SOCKET 5๊ฐ€์ง€ ์ƒํƒœ๋กœ ๊ณ ์ •๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

1. METHOD - ์ผ๋ฐ˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ƒํƒœ

2. SQL - db sql์„ ์ˆ˜ํ–‰์ค‘์ธ ์ƒํƒœ

3. HTTPC - ์™ธ๋ถ€ Http Api(์„œ๋น„์Šค)๋ฅผ ํ˜ธ์ถœ์ค‘์ธ ์ƒํƒœ

4. DBC - DB์—ฐ๊ฒฐ์„ ์š”์ฒญํ•œ ์ƒํƒœ, ์ผ๋ฐ˜์ ์œผ๋กœ Pool์—์„œ ๊ฐ€์ ธ์˜ด

5. SOCKET - TCP์„ธ์…˜์„ Connecting ์ค‘์ธ ์ƒํƒœ

SQL

SQL ์ˆ˜ํ–‰ ํ˜„ํ™ฉ์„ ์นด์šดํŒ…ํ•ฉ๋‹ˆ๋‹ค.

โ€ข ๊ฑด์ˆ˜

โ€ข ์‘๋‹ต์‹œ๊ฐ„

โ€ข ์—๋Ÿฌ ๊ฑด์ˆ˜

โ€ข ํŒจ์น˜ ๊ฑด์ˆ˜

HTTP Call

์™ธ๋ถ€ Http ํ˜ธ์ถœ์— ๋Œ€ํ•œ ํ˜„ํ™ฉ์„ ์นด์šดํŒ… ํ•ฉ๋‹ˆ๋‹ค.

โ€ข ๊ฑด์ˆ˜

โ€ข ์‘๋‹ต์‹œ๊ฐ„

5.4. ์„ฑ๋Šฅ ์นด์šดํ„ฐ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 32

Page 36: Java Agent Guide - WhaTap Inc

โ€ข ์—๋Ÿฌ ๊ฑด์ˆ˜

5.4.3. Resource Counter์„œ๋ฒ„์ž์› ํ˜น์€ node ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์˜ ์ž์› ์‚ฌ์šฉ๋Ÿ‰์„ ์นด์šดํŒ…ํ•ฉ๋‹ˆ๋‹ค.

CPU(sys,usr,wait,steal,irq, cores)

CPU์‚ฌ์šฉ๋Ÿ‰ % ์ž…๋‹ˆ๋‹ค. ๊ฐ ์ข…๋ฅ˜๋ณ„๋กœ ์ˆ˜์ง‘๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™˜๊ฒฝ์—์„œ๋งŒ Steal์ด ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Cput Core ๊ฐฏ์ˆ˜๋ฅผ ๊ฐ™์ด ์ˆ˜์ง‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Process CPU

์ž๋ฐ” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” CPU %์ž…๋‹ˆ๋‹ค.

Memory

์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์œจ(%) ์ž…๋‹ˆ๋‹ค.

Swap

Swap๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์œจ(%) ์ž…๋‹ˆ๋‹ค.

Disk

Disk๋Š” Java Process์˜ Current ๋””๋ ‰ํ† ๋ฆฌ์˜ ์‚ฌ์šฉ์œจ(%) ์ž…๋‹ˆ๋‹ค.

Heap(Total, Used, Perm)

Java Heap๋ฉ”๋ชจ๋ฆฌ์˜ Total, Used, Perm๋Ÿ‰ ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋‹จ์œ„๋Š” KBytes ์ž…๋‹ˆ๋‹ค.

GC (Count,Time)

5์ดˆ ๋™์•ˆ ๋ฐœ์ƒํ•œ GC ๊ฑด์ˆ˜์™€ ์‹œ๊ฐ„์˜ ํ•ฉ๊ณ„์ž…๋‹ˆ๋‹ค.

ObjectPendingFinalizationCount

GC ํ˜ธ์ถœ๋˜๋Š” ๋„์ค‘์— finalize()์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐ์ค‘์ธ ๊ฐ์ฒด์ˆซ์ž๋กœ์จ ์ด๊ฐ’์ด ์ปค์ง€๋ฉด GC time์ด ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Thread(start Count,Count, Daemon, Peak Count)

JVM์ด ์‹คํ–‰๋œ ์ดํ›„๋ถ€ํ„ฐ Start๋œ ์“ฐ๋ ˆ๋“œ ์ˆ˜, ํ˜„์žฌ ๋Œ๊ณ  ์žˆ๋Š” ์Šค๋ ˆ๋“œ์ˆ˜, ๋ฐ๋ชฌ, ์ตœ๋Œ€ ์“ฐ๋ ˆ๋“œ ์ˆ˜๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์“ฐ๋ ˆ๋“œ ํ’€์ด ํ•„์š”ํ•œ์ง€์— ๋Œ€ํ•œ ํŒ๋‹จ๋“ฑ์„ ํ• ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

DB Connection Count(active,idle)

Connection Pool์˜ idle์™€ active ์นด์šดํŠธ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

Tomcat Thread Pool(active, queueSize)

ํ†ฐ์ผ“์˜ Executor์“ฐ๋ ˆ๋“œ ํ’€์ด ์„ค์ •๋˜์—ˆ์„๋•Œ ์„ฑ๋Šฅ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"  maxThreads="50" minSpareThreads="2" maxQueueSize="78"/>

DB Connection Pool ์นด์šดํ„ฐ์— ๋Œ€ํ•œ ์ดํ•ด

DB Connection Pool์€ DataSource๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. WAS๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ผ๋ฐ˜์ ์ด์ง€๋งŒ ์ผ๋ถ€์—์„œ๋Š” ์˜คํ”ˆ์†Œ์Šค Pool์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ํ•ฉ๋‹ˆ๋‹ค ๋˜ํ•œ์‚ฌ์šฉ๋Ÿ‰ ์ •๋ณด๊ฐ€ JMX๋กœ ๋…ธ์ถœ๋˜๊ธฐ๋„ ํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ๋„ ๋งŽ์•„์„œ ์™€ํƒญ์€ 2๊ฐ€์ง€ ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ BCI์— ์˜ํ•œ ์ง์ ‘ ์กฐํšŒ๋ฐฉ์‹๊ณผ JMX๋ฅผ ์ด์šฉํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์€ BCI๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ณด์กฐ ์ ์œผ๋กœ JMX๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋„๋ก ์ œ๊ณตํ•˜๊ณ ์žˆ์Šต๋‹ˆ๋‹ค.

5.4. ์„ฑ๋Šฅ ์นด์šดํ„ฐ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 33

Page 37: Java Agent Guide - WhaTap Inc

์•„๋ž˜๋Š” ๊ฐœ๋ณ„ ์˜ต์…˜๋ณ„ ๋””ํดํŠธ ๊ฐ’๊ณผ ์—ฐ๊ด€๋˜์–ด ByteCode Injection๋˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

hikari_pool_enabled=false

com.zaxxer.hikari.pool.HikariPool

dbcp_pool_enabled=true

org.apache.commons.dbcp.BasicDataSourceorg.apache.commons.dbcp2.BasicDataSourceorg.apache.tomcat.dbcp.dbcp.BasicDataSourceorg.apache.tomcat.dbcp.dbcp2.BasicDataSource

tomcat_pool_enabled=true

org.apache.tomcat.jdbc.pool.ConnectionPool

weblogic_pool_enabled=true

weblogic.jdbc.common.internal.ConnectionPool

jeus_pool_enabled=true

jeus.jdbc.connectionpool.ConnectionPoolImpl

jboss_pool_enabled=true

org.jboss.jca.core.connectionmanager.pool.PoolStatisticsImpl

์˜ต์…˜์„ ๋ณ€๊ฒฝํ•œ๋‹ค๋ฉด BCI๊ด€๋ จ ์˜ต์…˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์žฌ๊ธฐ๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๊ฐ€ instrument๋œ ํ›„์—๋„ ์ถ”์  ํ…Œ์ด๋ธ”์— ๋“ฑ๋ก๋˜๋Š” ๊ณผ์ •์ดํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹คํ–‰์ค‘์— redefine์„ ํ•ด๋„ ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ์˜ต์…˜ ์ž๋™ ๊ฒฐ์ •

dbcp_pool_enabled==true ์ด๋ฉด tomcat_ds_enabled=falseweblogic_pool_enabled== true ์ด๋ฉด weblogic_ds_enabled=false

DataSource ์˜ ํ˜„ํ™ฉ์€ JMX๋กœ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋จผ์ € "์˜ต์…˜ ์ž๋™ ๊ฒฐ์ •" ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ณ  ๊ด€๋ จ๋œ pool์ชฝ ์˜ต์…˜์„ false๋กœ ์„ ์–ธํ•˜๊ณ  DataSource๊ด€๋ จ ์˜ต์…˜์„true๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. .DataSource๊ด€๋ จ ์˜ต์…˜

tomcat_ds_enabled=falseweblogic_ds_enabled=false

๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค.

ThreadPool ์นด์šดํ„ฐ

ThreadPool ์นด์šดํ„ฐ๋Š” JMX Mbean ์ •๋ณด๋ฅผ ํ†ตํ•ด ์ˆ˜์ง‘๋ฉ๋‹ˆ๋‹ค.Tomcat ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ๋ผ๋ฉด ๋ฌธ์ œ ์—†์ง€๋งŒ ํŠน์ • ํ™˜๊ฒฝ ์—์„œ๋Š” ์ด ์ง€ํ‘œ๊ฐ€ ์ˆ˜์ง‘๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ˆ˜์ง‘์„ ์œ„ํ•ด์„œ๋Š” ์ถ”๊ฐ€ ์„ค์ •์„ ํ•„์š”๋กœํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ ์ง„ํ–‰์ด ์–ด๋ ค์šด ๊ฒฝ์šฐ [email protected] ๋กœ ๋ฌธ์˜ ์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

whatap.conf

jmx_threadpool_objectname=Catalina:type=ThreadPool,name="http-bio-8080" โ‘ jmx_threadpool_atter_activecount=connectionCount โ‘กjmx_threadpool_atter_queuesize=maxThreads โ‘ข

5.4. ์„ฑ๋Šฅ ์นด์šดํ„ฐ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 34

Page 38: Java Agent Guide - WhaTap Inc

โ‘  jmx_threadpool_objectname : JMX ThreadPool MBean ์ด๋ฆ„์„ ์„ค์ • ํ•ฉ๋‹ˆ๋‹ค.

โ‘ก jmx_threadpool_atter_activecount : activecount ์ˆ˜์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” attribute ๋ฅผ ์„ค์ • ํ•ฉ๋‹ˆ๋‹ค.

โ‘ข jmx_threadpool_atter_queuesize : maxThreads ์ˆ˜์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” attribute ๋ฅผ ์„ค์ • ํ•ฉ๋‹ˆ๋‹ค.

JMX ThreadPool ObjectName ๋ฐ AttributeName ๊ณผ ๊ฐ™์€ Mbean ๋ช…์€ JMX ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๊ฑฐ๋‚˜ ๊ฐ WAS ๋ณ„ Mbean ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

Jconsole ์‚ฌ์šฉ์‹œ

Figure 15. ObjectName : Catalina:type=ThreadPool,name="http-bio-8080"

5.4. ์„ฑ๋Šฅ ์นด์šดํ„ฐ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 35

Page 39: Java Agent Guide - WhaTap Inc

Figure 16. ActiveName : connectionCount, QueueName : maxThreads

๊ด€๋ จ ๋ฌธ์„œ ์ฐธ๊ณ ์‹œ

์‚ฌ์šฉ ์ค‘์ธ WAS, ํ”„๋ ˆ์ž„์›Œํฌ ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด Mbean ์ •๋ณด๋ฅผ ํ™•์ธ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€ข ์˜ˆ) Websphere Liberty

๊ฒฐ๊ณผ ํ™•์ธ

์„ค์ •์ด ์ •์ƒ์ ์œผ๋กœ ๋˜์—ˆ๋‹ค๋ฉด ์นด์šดํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Figure 17. ์ •์ƒ ์ƒํƒœ

5.4. ์„ฑ๋Šฅ ์นด์šดํ„ฐ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 36

Page 40: Java Agent Guide - WhaTap Inc

Chapter 6. ์—์ด์ „ํŠธ ์ œ์–ด์™€ ์ƒํƒœ ์กฐํšŒ๊ฐ Java ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ ์—์ด์ „ํŠธ ๋™์ž‘์„ ์ œ์–ดํ•˜๊ฑฐ๋‚˜ ์ƒํƒœ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6.1. ๋ถ€ํŠธ ํ™˜๊ฒฝ์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘ํ•˜๋ฉด ์ฃผ์š”ํ™˜๊ฒฝ ์ •๋ณด๋ฅผ ๋ชจ์•„ ์„œ๋ฒ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด์ •๋ณด๋Š” ๊ธฐ๋™์‹œ์˜ ์—์ด์ „ํŠธ ํ™˜๊ฒฝ ์ƒํƒœ๋ฅผ ํ™•์ธํ• ๋•Œ ์‚ฌ์šฉ๋  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. Yard์„œ๋ฒ„์— ์ €์žฅํ•ด ๋‘๊ธฐ ๋•Œ๋ฌธ์— ์—์ด์ „ํŠธ๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ์กฐํšŒํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

์™€ํƒญ ๋ฒ„์ „, OS์ •๋ณด, java๋ฒ„์ „, uptime๋“ฑ๋“ฑ์˜ ์ •๋ณด๋“ค์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6.2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์ด์ „ํŠธ์—์„œ๋Š” ํ˜„์žฌ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์กฐํšŒํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์—์„œ ์š”์ฒญ์„ ๋ฐ›์•˜์„๋•Œ ์กฐํšŒ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ง€๋œ ์ƒํƒœ์—์„œ๋Š” ์กฐํšŒํ•  ์ˆ˜์—†์Šต๋‹ˆ๋‹ค.

6.3. ์ปดํฌ๋„ŒํŠธ ๋ฒ„์ „ํ˜„์žฌ ๋กœ๋”ฉ๋˜์–ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” jar ํŒŒ์ผ๊ณผ ๊ทธ ๋ฒ„์ „์„ ์กฐํšŒํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

6.4. ์“ฐ๋ ˆ๋“œ ๋ชฉ๋ก/๋คํ”„JVM๋‚ด์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์“ฐ๋ ˆ๋“œ ๋ชฉ๋ก๊ณผ ๊ฐœ๋ณ„์“ฐ๋ ˆ๋“œ์˜ ์ƒ์„ธ ์Šคํƒ์„ ํ™•์ธ ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ „์ฒด ์“ฐ๋ ˆ๋“œ๋ฅผ ๋คํ”„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

6.5. ํž™ ํžˆ์Šคํ† ๊ทธ๋žจJVM๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š” ๊ฐ์ฒด ๋ชฉ๋ก๋“ค์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

JDK5์ดํ•˜ ๋ฒ„์ „์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

6.6. ๋กœ๋“œ๋œ ํด๋ž˜์Šค๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ ํด๋ž˜์Šค ๋ชฉ๋ก์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŠน์ • ํด๋ž˜์Šค์˜ signuture๋ฅผ ํ™•์ธ ํ• ์ˆ˜์žˆ๊ณ  redefine์„ ์š”์ฒญํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

Class Redefine์€ BCI๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๋กœ๋”ฉ๋œ ํด๋ž˜์Šค๋ฅผ ์žฌ์ •์˜ ํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋ง ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

6.7. ์˜คํ”ˆ ์†Œ์ผ“์™€ํƒญ์€ Socket์ด ์—ด๋ฆด๋•Œ๋งˆ๋‹ค ํƒ€๊ฒŸ ์ฃผ์†Œ๋ฅผ ๋ชฉ๋ก์„ ๋ฉ”๋ชจ๋ฆฌ์— ๊ธฐ๋กํ•ด๋‘ก๋‹ˆ๋‹ค. ๊ทธ์ •๋ณด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

6.8. ๋ฉ”์†Œ๋“œ ์„ฑ๋Šฅ ์ƒํƒœ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ๋นˆ๋„๋ฅผ ์ถ”์ ํ•˜๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ต์…˜์— ์ง€์ •๋œ ํด๋ž˜์Šค๋ฉ”์†Œ๋“œ๋“ค์˜ ํ˜ธ์ถœ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

6.1. ๋ถ€ํŠธ ํ™˜๊ฒฝ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 37

Page 41: Java Agent Guide - WhaTap Inc

hook_method_stat_supershook_method_stat_interfaceshook_method_stat_patterns

6.9. DB ์ƒํƒœConnection Pool์˜ ์ƒํƒœ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. "DB Connection Pool ์นด์šดํ„ฐ"์ณ…ํ„ฐ์—์„œ ์„ค๋ช…ํ•œ Connection Pool(DataSource)์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

6.10. ์„ค์ •์—์ด์ „ํŠธ ์‹คํ–‰์˜ต์…˜์„ ์„ค์ •ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. whatap.conf์— ๊ฐ’์„ ์šด์˜์ค‘์— ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Configure ์ณ…ํ„ฐ์—์„œ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์˜ต์…˜์€whatap.conf์— ์ ์šฉํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค

์ผ๋ฐ˜์ ์œผ๋กœ ์„ค์ •์€ ๋Ÿฐํƒ€์ž„์— ๋ฐ”๋กœ reload๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํ•ด๋‹น ์„ค์ •์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ƒ JVM์ด ๊ธฐ๋™๋ ๋•Œ ์ ์šฉ๋˜๋Š” ์˜ต์…˜๋“ค์€ ์žฌ๊ธฐ๋™ํ•ด์•ผํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6.11. ์“ฐ๋กœํ‹€๋ง๋ถ€ํ•˜๋Ÿ‰์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์“ฐ๋กœํ‹€๋ง์€ ๋””ํดํŠธ ์ƒํƒœ์—์„œ๋Š” OFF(false)๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. whatap.conf์— ๊ด€๋ จ ์˜ต์…˜์„ ์„ค์ •ํ•จ์œผ๋กœ ์“ฐ๋กœํ‹€๋ง ๊ธฐ๋Šฅ์„์‚ฌ์šฉํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

throttle_enabled=false

์“ฐ๋กœํ‹€๋ง์—๋Š” ํฌ๊ฒŒ ๋ด‰์‡„์™€ ์ œํ•œ ๋‘๊ฐ€์ง€ ๊ฐœ๋…์œผ๋กœ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

6.11.1. ๋ถ€์ •ํ•œ ์š”์ฒญ [๋ด‰์‡„]๋“ฑ๋ก๋œ URLํ˜น์€ IP์— ๋Œ€ํ•ด์„œ ๋ชจ๋“  ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ด‰์‡„ํ•ฉ๋‹ˆ๋‹ค.

throttle_blocking_url=throttle_blocking_ip=

HTTP์š”์ฒญ์ด ๋ด‰์‡„๋˜๋ฉด ์•„๋ž˜ ์˜ต์…˜์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž ๋ฉ”์„ธ์ง€๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ forward url์ด ์„ค์ •๋˜์–ด์žˆ์œผ๋ฉด ๊ทธํŽ˜์ด์ง€๋กœ ์‚ฌ์šฉ์ž ์‘๋‹ต์ด๋‚˜๊ฐ€๊ณ  ์•„๋‹ˆ๋ฉดmessage๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ๋ฆฌํ„ด๋ฉ๋‹ˆ๋‹ค.

throttle_blocked_forward=throttle_blocked_message=request blocked!!

6.11.2. ๊ณผ๋„ํ•œ ์š”์ฒญ [์ œํ•œ]1) ๋ถ€ํ•˜๋Ÿ‰์„ ์ œํ•œ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™์‹œ์— ์ฒ˜๋ฆฌ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์ด ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.

throttle_limit=10000

2) ์ œํ•œ ๋ฐฉ๋ฒ•์€ ๋‘˜์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ๋ฐฉ๋ฒ•-1

6.9. DB ์ƒํƒœ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 38

Page 42: Java Agent Guide - WhaTap Inc

๋“ฑ๋ก๋œ URL์— ๋Œ€ํ•ด์„œ๋งŒ ์ œํ•œํ•œ๋‹ค. ๋‚˜๋ฉฐ์ง€ํŽ˜์ด์ง€๋Š” ์ „์ฒด ์ง„ํ–‰์ค‘์ธ ํŠธ๋žœ์žญ์…˜ ์ˆ˜๊ฐ€ limit๋ฅผ ๋„˜์—ˆ์„์ง€๋ผ๋„ ์ œํ•œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

throttle_target_urls=

์ œํ•œ ๋ฐฉ๋ฒ•-2

๋ชจ๋‘ ์ œํ•œํ•˜๊ณ  ๋“ฑ๋ก๋œ ํŽ˜์ด์ง€๋Š” ํ†ต๊ณผ์‹œํ‚จ๋‹ค.

throttle_passing_url=throttle_passing_url_prefix=

3) HTTP์š”์ฒญ์ด ๊ฑฐ์ ˆ๋˜๋ฉด ์•„๋ž˜ ์˜ต์…˜์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž ๋ฉ”์„ธ์ง€๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ forward url์ด ์„ค์ •๋˜์–ด์žˆ์œผ๋ฉด ๊ทธํŽ˜์ด์ง€๋กœ ์‚ฌ์šฉ์ž ์‘๋‹ต์ด๋‚˜๊ฐ€๊ณ ์•„๋‹ˆ๋ฉด message๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ๋ฆฌํ„ด๋ฉ๋‹ˆ๋‹ค.

throttle_rejected_forward=throttle_rejected_message=too many request!!

4) Reject๊ฐ€ ๋ฐœ์ƒํ• ๋•Œ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ๋ นํ•ฉ๋‹ˆ๋‹ค.

reject_event_enabled=false

6.12. ์‹œ์Šคํ…œ GC/ํž™๋คํ”„๊ฐ•์ œ GC๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.ํž™๋คํ”„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

ํž™ ๋คํ”„ ํ™•๋ณด๋ฅผ ์œ„ํ•ด์„œ๋Š” 1.5.2๋ฒ„์ „ ์ด์ƒ์˜ ์—์ด์ „ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ,JDK6์ด์ƒ์ด๊ณ  heapdump_enabled์˜ต์…˜์„ true๋กœ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

6.13. ์—์ด์ „ํŠธ ๋กœ๊ทธํ˜„์žฌ ์—์ด์ „ํŠธ HOME์—์„œ ./logs/์— ๋กœ๊ทธ๋ฅผ ๊ธฐ๋ก ํ•ฉ๋‹ˆ๋‹ค.

## OPEN LOG FILE agent 20181106 00:00:00.610 ##WhaTap Version 1.5.4 20180928 pid=47448

20181106 00:55:33 <47448>[A113] read java.net.SocketException

## OPEN LOG FILE agent 20181106 00:00:03.126 ##WhaTap Version 1.5.4 20180928 pid=47333

20181106 00:55:33 <47333>[A113] read java.io.EOFException

๋กœ๊ทธ ํฌ๋ฉง์€

[์‹œ๊ฐ„] [PID] [๋กœ๊ทธ ๋‚ด์šฉ]

PID๊ฐ€ ๋ฐ”๋€๋‹ค๋ฉด ์—์ด์ „ํŠธ๊ฐ€ ์žฌ๊ธฐ๋™ ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ˜น์€ ๋™์ผ ๋กœ๊ทธ์— ๋‘๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค(JVM)๊ฐ€ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

6.12. ์‹œ์Šคํ…œ GC/ํž™๋คํ”„

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 39

Page 43: Java Agent Guide - WhaTap Inc

6.14. ์—์ด์ „ํŠธ ๋คํ”„ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ํŠธ๋žœ์žญ์…˜๊ณผ ์“ฐ๋ ˆ๋“œ์˜ ์Šคํƒ์„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. JDK์˜ ์“ฐ๋ ˆ๋“œ ๋คํ”„๋Š” ์“ฐ๋ ˆ๋“œ ์ž์ฒด๋งŒ์„ ๋คํ”„ํ•˜์ง€๋งŒ ์—์ด์ „ํŠธ ๋คํ”„๋Š” ์“ฐ๋ ˆ๋“œ์™€ ์ง„ํ–‰์ค‘์ธํŠธ๋žœ์žญ์…˜์„ ๋งตํ•‘ํ•˜์—ฌ ๋คํ”„ํ•จ์œผ๋กœ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

12 :::thread::: 1404674 Thread-1404607 TIMED_WAITING ,blked #0,waited #17: 4cpu :::tx::: 5274572099194896286/account/write/employee/daejun 1777ms 2cpu: sql #2 588ms: httpc #2 588ms

  java.lang.Thread.sleep(Native Method)  whatap.util.ThreadUtil.sleep(ThreadUtil.java:37)  jdbc.Control.exec(Control.java:23)  jdbc.FakePreparedStatement.executeQuery(FakePreparedStatement.java:67)  com.virtual.dao.SelectDAO.execute2(SelectDAO.java:29)  com.virtual.web.Simula.execute(Simula.java:151)  com.virtual.web.Simula$1.process(Simula.java:80)  com.virtual.web.VExec.doFilter(VExec.java:14)  org.apache.catalina.filters.FilterBase.doFilter(FilterBase.java:26)  com.virtual.web.Simula.run(Simula.java:104)

6.14.1. ์“ฐ๋ ˆ๋“œ & ํŠธ๋žœ์žญ์…˜ ๋คํ”„์ง€์ •ํ•œ ์ž„๊ณ„์ƒํ™ฉ์ด ๋˜๋ฉด ์“ฐ๋ ˆ๋“œ์™€ ์ง„ํ–‰์ค‘์ด ํŠธ๋žœ์žญ์…˜ URL์„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

โ€ข ์•กํ‹ฐ๋ธŒํŠธ๋žœ์žญ์…˜ ์ˆ˜๊ฐ€ ๊ธ‰์ฆํ•˜๊ฑฐ๋‚˜ CPU์‚ฌ์šฉ๋Ÿ‰์ด ๊ธ‰์ฆํ–ˆ์„๋•Œ ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

โ€ข thread_dump_actx(300)์ด์ƒ์˜ ์•กํ‹ฐ๋ธŒ ํŠธ๋žœ์žญ์…˜ ๊ฐฏ์ˆ˜๊ฐ€ ์Œ“์ด๊ฑฐ๋‚˜ thread_dump_cpu(-1:disabled)์ด์ƒ์˜ CPU์‚ฌ์šฉ์ด ๋ฐœ์ƒํ• ๋•Œ JVM๋‚ด์˜๋ชจ๋“  ์“ฐ๋ ˆ๋“œ์™€ ๊ทธ ์Šคํƒ์„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” URL์ •๋ณด๋„ ๊ฐ™์ด ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. (๊ฐ’์ด -1์ผ๋•Œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

โ€ข ํ•œ๋ฒˆ ๋คํ”„๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด thread_dimp_interval ์ด์ƒ ์‹œ๊ฐ„์ด ๊ฒฝ๊ณผ๋˜์–ด์•ผ ๋‹ค์‹œ ๋™์ž‘ ํ•ฉ๋‹ˆ๋‹ค.

6.14.2. ์“ฐ๋ ˆ๋“œ CPU ๋คํ”„๋™์ž‘์ค‘์ธ ์“ฐ๋ ˆ๋“œ์ค‘์—์„œ CPU๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์“ฐ๋ ˆ๋“œ๋ฅผ ์ฐพ๊ณ ์ž ํ• ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ CPU๊ฐ€ ๋†’์„๋•Œ CPU๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋กœ์ง์„์ฐพ์•„์•ผ ํ•˜๋Š”๋ฐ ๋ฐฐ์น˜์žก์ด๋‚˜ ์“ฐ๋ ˆ๋“œ์˜ ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ์งง์œผ๋ฉด ์ฐพ๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์“ฐ๋ ˆ๋“œ CPU๋คํ”„๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6.14. ์—์ด์ „ํŠธ ๋คํ”„

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 40

Page 44: Java Agent Guide - WhaTap Inc

6.14. ์—์ด์ „ํŠธ ๋คํ”„

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 41

Page 45: Java Agent Guide - WhaTap Inc

Chapter 7. ์„ค์ •

7.1. ์„ค์ • ๊ด€๋ฆฌ

7.1.1. ์„ค์ • ํŒŒ์ผWhatap Java Agent ์˜ ์„ค์ •์„ ์ฝ์–ด๋“œ๋ฆฌ๋Š” ๊ธฐ๋ณธ๊ฐ’์€ ${WHATAP_HOME}/whatap.conf ์ž…๋‹ˆ๋‹ค.๊ฒฝ์šฐ์— ๋”ฐ๋ผ ํ•œ ์„œ๋ฒ„์—์„œ ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ตฌ๋™ ๋˜๊ณ , ์ด๋“ค์— ๋Œ€ํ•œ ์„ค์ •์„ ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋™ ์Šคํฌ๋ฆฝํŠธ์— JVM ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์—ฌ์ง€์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ •ํŒŒ์ผ์€ ๋ฐ˜๋“œ์‹œ ${WHATAP_HOME}์— ์œ„์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ง€์ •ํ•œ ์„ค์ • ํŒŒ์ผ์„ ์‚ฌ์šฉ

# A ์„œ๋น„์Šค-Dwhatap.config=whatap_Aservice.conf

# B ์„œ๋น„์Šค-Dwhatap.config=whatap_Bservice.conf

7.1.2. ์„ค์ • ์ถ”๊ฐ€/๋ณ€๊ฒฝ์„ค์ •์˜ ์ถ”๊ฐ€ / ๋ณ€๊ฒฝ์€ ์„œ๋ฒ„ ๋ฉ”๋‰ด์˜ ์„ค์ • ํƒญ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.

Figure 18. ์„œ๋ฒ„ ๋ฉ”๋‰ด

๋˜๋Š”, ์„ค์ •ํŒŒ์ผ์„ ๋Œ€์ƒ ์„œ๋ฒ„์—์„œ ์ง์ ‘ ํŽธ์ง‘ํ•ด ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘

$ vi /whatap/whatap.conf

์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ธฐ๋™ ์Šคํฌ๋ฆฝํŠธ์— JVM -D ์˜ต์…˜์„ ํ†ตํ•ด ์ ์šฉ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

JVM ์˜ต์…˜

export WHATAP_OPTS="$WHATAP_OPTS -Dwhatap.name={type}-{ip4}-{port}"export WHATAP_OPTS="$WHATAP_OPTS -Dwhatap.okind=Aservice"export JAVA_OPTS="$JAVA_OPTS $WHATAP_OPTS"

7.2. ์—์ด์ „ํŠธ ๋„ค์ด๋ฐwhatap.name

Default : {type}-{ip2}-{ip3}-{port}Type : String์—์ด์ „ํŠธ ์ด๋ฆ„์„ ํŒจํ„ด์œผ๋กœ ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

7.1. ์„ค์ • ๊ด€๋ฆฌ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 42

Page 46: Java Agent Guide - WhaTap Inc

whatap.oname

Default : NONEType : String์—์ด์ „ํŠธ ์ด๋ฆ„์„ ๋ฌธ์ž์—ด๋กœ ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

whatap.okind

Default : NONEType : String์—์ด์ „ํŠธ๊ฐ€ ์†ํ•œ ๊ทธ๋ฃน ๋‹จ์œ„๋ฅผ ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

whatap.onode

Default : NONEType : String์—์ด์ „ํŠธ๊ฐ€ ์†ํ•œ ๋…ธ๋“œ ๋‹จ์œ„๋ฅผ ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

auto_oname_enabled

Default : falseType : Boolean์„œ๋ฒ„์— ๋“ฑ๋ก๋  ์—์ด์ „ํŠธ ์ด๋ฆ„(oname)์„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ž๋™ ๋ถ€์—ฌ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค. ์ ์šฉ ์‹œ, -Dwhatap.name, -Dwhatap.oname ์˜ต์…˜์€๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜์ง‘ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์„ ํ†ตํ•ด oname ์„ ๋ถ€์—ฌ ๋ฐ›์€ ์ดํ›„, ์—์ด์ „ํŠธ์˜ ์ผ๋ฐ˜์ ์ธ ๋™์ž‘์„ ๊ฐœ์‹œํ•ฉ๋‹ˆ๋‹ค.

auto_oname_prefix

Default : agentType : String์—์ด์ „ํŠธ ์ด๋ฆ„์„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ž๋™ ๋ถ€์—ฌํ•  ๋•Œ ์—์ด์ „ํŠธ ์ด๋ฆ„์˜ prefix, ๋ณดํ†ต ์—…๋ฌด ๋ช…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. prefix ์ผ๋ จ๋ฒˆํ˜ธ 1~) ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

auto_oname_reset

Default : 0Type : Int์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ์—์ด์ „ํŠธ ์ด๋ฆ„์„ ๋ถ€์—ฌ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ ์ด๋ฆ„์„ ์ž๋™ ๋ถ€์—ฌํ•˜๋ฉด what.oname ์ด๋ผ๋Š” ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์…‹ํŠธ๋ฉ๋‹ˆ๋‹ค. ํ•œ๋ฒˆ ์…‹ํŠธ๋˜๋ฉด ์ž๋ฐ” ์ธ์Šคํ„ด์Šค๊ฐ€ ์žฌ๊ธฐ๋™ ๋  ๋•Œ๊นŒ์ง€ ์œ ์ง€ ๋˜๋Š”๋ฐ ๋ฆฌ์…‹์„ ์›ํ•  ๋•Œ auto_oname_reset ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.(ํ˜„์žฌ ์„ค์ • ๊ฐ’๊ณผ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.)

7.3. ์—์ด์ „ํŠธ ๊ธฐ๋Šฅ์ œ์–ดshutdown

Default : falseType : Booleantrue ์ธ ๊ฒฝ์šฐ ์—์ด์ „ํŠธ์˜ ๋ชจ๋“  ๋™์ž‘์„ ์ค‘์ง€ํ•˜๊ณ  ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

enabled

Default : trueType : Boolean์ „์ฒด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค. false์ธ ๊ฒฝ์šฐ์—๋„ ์„œ๋ฒ„์™€ ์ตœ์†Œํ•œ์˜ ํ†ต์‹ ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋Š” ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

transaction_enabled

Default : trueType : Boolean (enabled=false ์ธ ๊ฒฝ์šฐ false)ํŠธ๋žœ์žญ์…˜ ์ถ”์  ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค. Hitmap์— ๊ธฐ๋ก๋˜๋Š” ํŠธ๋žœ์žญ์…˜ ์ •๋ณด๊ฐ€ ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

counter_enabled

7.3. ์—์ด์ „ํŠธ ๊ธฐ๋Šฅ์ œ์–ด

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 43

Page 47: Java Agent Guide - WhaTap Inc

Default : trueType : Boolean (enabled=false ์ธ ๊ฒฝ์šฐ false)์„ฑ๋Šฅ ์นด์šดํ„ฐ ์ถ”์  ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์•กํ‹ฐ๋ธŒํŠธ๋žœ์žญ์…˜ ์ˆ˜, ์‚ฌ์šฉ์ž ์ˆ˜, JVM ์ž์› ์‚ฌ์šฉ๋Ÿ‰, Process CPU ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ DB Pool ์‚ฌ์šฉ๋Ÿ‰ ์ •๋ณด๋“ฑ์ดํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

stat_enabled

Default : trueType : Boolean (enabled=false ์ธ ๊ฒฝ์šฐ false)ํ†ต๊ณ„์ •๋ณด ์ถ”์  ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. 5 ๋ถ„๋‹จ์œ„๋กœ ์ˆ˜์ง‘๋˜๋Š” ํŠธ๋žœ์žญ์…˜, SQL, HTTPCALL, UserAgent, Client IP ๋“ฑ์˜ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋“ฑ์ด ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

sigar_enabled

Default : trueType : Boolean (enabled=false ์ธ ๊ฒฝ์šฐ false)sigar library ๋ฅผ ํ†ตํ•œ OS ์ •๋ณด ์ˆ˜์ง‘์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. 5 ์ดˆ ๋‹จ์œ„๋กœ sigar library๋ฅผ ํ†ตํ•ด ์ˆ˜์ง‘๋˜๋Š” CPU, Memory, Disk๋“ฑ์˜ OS ์ž์› ๋ฐ์ดํ„ฐ๊ฐ€ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

active_stack_enabled

Default : trueType : Boolean (enabled=false ๋˜๋Š” counter_enabled=false ์ธ ๊ฒฝ์šฐ false)์•กํ‹ฐ๋ธŒ ์Šคํƒ ์ถ”์ ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ… ๋ฉ”๋‰ด์˜ ํƒ‘์Šคํƒ, ์œ ๋‹ˆํฌ์Šคํƒ ๊ทธ๋ฆฌ๊ณ  ์•กํ‹ฐ๋ธŒ์Šคํƒ์ด ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

license

Default : NONEType : String์—์ด์ „ํŠธ ์„ค์น˜์‹œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ถ€์—ฌ๋ฐ›์€ ๋ผ์ด์„ผ์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด์„ผ์Šค์—๋Š” ์—์ด์ „ํŠธ๊ฐ€ ์†ํ•œ ํ”„๋กœ์ ํŠธ์™€ ๋ณด์•ˆ ํ†ต์‹ ์„ ์œ„ํ•œ ์•”ํ˜ธํ‚ค๋ฅผ ํฌํ•จํ•˜๊ณ ์žˆ์Šต๋‹ˆ๋‹ค.

cypher_level

Default : 128Type : aes_bit [128|256]AES ๋ณด์•ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์•”ํ˜ธ ๋ ˆ๋ฒจ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

encrypt_level

Default : 2Type : encrypt_level [1|2|3]์™€ํƒญ ์—์ด์ „ํŠธ๋Š” ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก์‹œ ๋ฐ์ดํ„ฐ ์†์„ฑ์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์•”ํ˜ธํ™”๋ฅผ ํ•˜๋ฏ€๋กœ ๋†’์€ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ์„ฑ๋Šฅ์ƒ ์ด์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.์ด์™€ ๋ณ„๊ฐœ๋กœ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ์ƒ๊ด€์—†์ด ์ผ๊ด„์ ์ธ ์•”ํ˜ธํ™” ์ •์ฑ…์„ ์ ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋‹น ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1 - ์•”ํ˜ธํ™” ์ „์†ก ๊ธฐ๋Šฅ ์‚ฌ์šฉ์•ˆํ•จ2 - SQLํŒŒ๋ผ๋ฏธํ„ฐ, Plain Text์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์†์„ฑ์— ๋Œ€ํ•˜์—ฌ ์•”ํ˜ธํ™” ์ „์†ก3 - ๋ชจ๋“  ํ•ญ๋ชฉ์— ๋Œ€ํ•˜์—ฌ ์•”ํ˜ธํ™” ์ „์†ก

stat_ip_enabled

Default : trueType : Boolean"ํ†ต๊ณ„ | ํด๋ผ์ด์–ธํŠธIP" ํ•ญ๋ชฉ์˜ IP ํ†ต๊ณ„ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

realtime_user_enabled

Default : trueType : Boolean"๋Œ€์‹œ๋ณด๋“œ" ์‚ฌ์šฉ์ž ํ•ญ๋ชฉ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž ์ง€ํ‘œ ์ˆ˜์ง‘ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•œ๋‹ค.

7.3. ์—์ด์ „ํŠธ ๊ธฐ๋Šฅ์ œ์–ด

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 44

Page 48: Java Agent Guide - WhaTap Inc

hook_direct_patch_classes

Default : NONEType : ClassFile_FullPath์ง์ ‘์ ์œผ๋กœ ํŠน์ • ํด๋ž˜์Šค๋ฅผ ๋กœ๋”ฉํƒ€์ž„์— ๋ฐ”๊ฟ”์น˜๊ธฐ ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์ปดํŒŒ์ผํ•œ ํ›„์— ๋ณ„๋„ ํŒŒ์ผ๋กœ ๋งŒ๋“ค๊ณ  ๊ทธ ํŒŒ์ผ์˜ ํ’€ํŒจ์Šค๋ฅผ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

active_stack_second

Default : 10Type : Seconds์•กํ‹ฐ๋ธŒ ์Šคํƒ์„ ์ถ”์ ํ•˜๋Š” ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

boot_redefine_size

Default : 100Type : IntAttach ๋ฐฉ์‹์ด๋‚˜ Watcher ๋ฐฉ์‹์œผ๋กœ ์„ค์น˜ํ–ˆ์„ ๋•Œ ์ด๋ฏธ ๋กœ๋”ฉ๋œ ํด๋ž˜์Šค ์ค‘์— ์ถ”์ ์„ ์œ„ํ•ด BCI ๋ฅผ ์ƒˆ๋กœ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋™์‹œ redefine ํ•˜๋Š”ํด๋ž˜์Šค ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

trace_component_enabled

Default : trueType : Boolean์„œ๋ฒ„ | ๋”๋ณด๊ธฐ | ์ปดํฌ๋„ŒํŠธ ๋ฒ„์ „ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

realtime_user_thinktime_max

Default : 300000Type : MiliSeconds์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž ์ธก์ •์‹œ ๋™์ผ ์‚ฌ์šฉ์ž๋กœ ์ธ์ •๋˜๋Š” ์ตœ๋Œ€ ํ˜ธ์ถœ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

time_sync_interval_ms

Default : 300000Type : MiliSeconds์—์ด์ „ํŠธ์™€ ์„œ๋ฒ„๊ฐ„ ์‹œ๊ฐ„ ๋™๊ธฐํ™” ์ฃผ๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋™๊ธฐํ™” ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ 0์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

detect_deadlock_enabled

Default : falseType : BooleanJava ์“ฐ๋ ˆ๋“œ์˜ DeadLock ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜์—ฌ ๊ฐ์ง€์‹œ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋ฐœ์ƒ ์ฃผ๊ธฐ๋Š” 5์ดˆ ๋‹จ์œ„์ด๋ฉฐ ๊ฐ™์€ DeadLock ๊ฑด์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋Š” ํ•œ์‹œ๊ฐ„์—ํ•œ๋ฒˆ๋งŒ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

text_reset

Default : 0Type : Int์™€ํƒญ ์—์ด์ „ํŠธ๋Š” ํ•œ๋ฒˆ ๋ณด๋‚ธ ํ…์ŠคํŠธ์œ ํ˜• ๋ฐ์ดํ„ฐ๋Š” hash ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ ๋‹ค์Œ๋‚ ๊นŒ์ง€ ์žฌ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ „ ์„ค์ •๊ฐ’๊ณผ ๋‹ค๋ฅธ ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ์žฌ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ URL, SQL String ๋“ฑ์ด ํ…์ŠคํŠธ์œ ํ˜• ๋ฐ์ดํ„ฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

7.4. ์—์ด์ „ํŠธ ํ†ต์‹ 

7.4. ์—์ด์ „ํŠธ ํ†ต์‹ 

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 45

Page 49: Java Agent Guide - WhaTap Inc

whatap_server_host

Default : 127.0.0.1,127.0.0.1Type : ip_address์—์ด์ „ํŠธ๊ฐ€ ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์„œ๋ฒ„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ง‘์„œ๋ฒ„ ์ด์ค‘ํ™”๋กœ 2๊ฐœ ์ด์ƒ์˜ IP๋ฅผ ๊ฐ€์ง„ ๊ฒฝ์šฐ ์ฝค๋งˆ(,)๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ง€์ •๋œ IP ์—๋Š” ์ˆ˜์ง‘์„œ๋ฒ„ proxy ๋ฐ๋ชฌ์ด ๋ฆฌ์Šค๋‹ ์ƒํƒœ๋กœ ์„œ๋น„์Šค ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

whatap_server_port

Default : 6600Type : tcp_port์ˆ˜์ง‘์„œ๋ฒ„ PORT ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํฌํŠธ๋Š” ํ•˜๋‚˜๋งŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ whatap_server_host ์— ์ง€์ •๋œ ์ˆ˜์ง‘์„œ๋ฒ„๋“ค์€ ๋™์ผ PORT ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

tcp_so_timeout

Default : 60000Type : MiliSecond์ˆ˜์ง‘์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” TCP์„ธ์…˜์˜ Socket Timeout ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

tcp_connection_timeout

Default : 5000Type : MiliSecond์ˆ˜์ง‘์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” TCP์„ธ์…˜์˜ Connection Timeout ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

net_send_max_bytes

Default : 5242880Type : Byte์ˆ˜์ง‘์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ํ•œ๋ฒˆ์— ์ „์†ก๋˜๋Š” ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

net_send_queue1_size

Default : 256Type : Intํ”„๋กœํŒŒ์ผ ์ •๋ณด์™€ ์•กํ‹ฐ๋ธŒ์Šคํƒ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ ์ „์†ก์— ์‚ฌ์šฉ๋  Queue์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ • ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •๋œ ํฌ๊ธฐ๊ฐ€ 10 ์ดํ•˜์ธ ๊ฒฝ์šฐ 10์œผ๋กœ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

net_send_queue2_size

Default : 512Type : Intํ”„๋กœํŒŒ์ผ ์ •๋ณด์™€ ์•กํ‹ฐ๋ธŒ์Šคํƒ ๋ฐ์ดํ„ฐ ์ „์†ก์— ์‚ฌ์šฉ๋  Queue์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ • ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •๋œ ํฌ๊ธฐ๊ฐ€ 10 ์ดํ•˜์ธ ๊ฒฝ์šฐ 10์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

7.5. ์—์ด์ „ํŠธ ๋กœ๊ทธ ๊ด€๋ฆฌlog_datasource_lookup_enabled

Default : trueType : BooleanInitialContext Lookup ์‹œ DataSource ์ธ ๊ฒฝ์šฐ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

log_rotation_enabled

Default : trueType : Boolean์—์ด์ „ํŠธ ๋กœ๊ทธํŒŒ์ผ์„ ์ผ์ž๋ณ„๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

log_keep_days

Default : 7

7.5. ์—์ด์ „ํŠธ ๋กœ๊ทธ ๊ด€๋ฆฌ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 46

Page 50: Java Agent Guide - WhaTap Inc

Type : Day๋กœ๊ทธํŒŒ์ผ ๋ณด๊ด€๊ธฐ๊ฐ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

7.6. ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ๋งprofile_step_normal_count

Default: 1000Type : IntํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ์˜ ์ตœ๋Œ€ ์Šคํ… ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

profile_step_heavy_count

Default: 1020Type : IntHeavyํ•œ ์Šคํ…์˜ ๊ฒฝ์šฐ ํ”„๋กœํŒŒ์ผ ๊ธฐ๋ณธ ์Šคํ… ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•˜๋”๋ผ๋„ ์ •ํ•ด์ง„ ๊ฐ’ ๋งŒํผ์€ ๊ธฐ๋ก ๋ฉ๋‹ˆ๋‹ค.

profile_step_heavy_time

Default: 100Type : MiliSecondHeavyํ•œ ์Šคํ…์˜ ๊ธฐ์ค€์„ ์ง€์ • ํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •๋œ ๊ฐ’๋ณด๋‹ค ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ๊ธด ๊ฒฝ์šฐ profile_step_normal_count ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋„profile_step_heavy_count ์ด๋‚ด์—์„œ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

profile_basetime

Default: 500Type : MiliSecondํŠธ๋žœ์žญ์…˜์ด ์„ค์ •๋œ ๊ฐ’ ์ดํ•˜์˜ ์‹œ๊ฐ„๋‚ด์— ์ข…๋ฃŒ๋œ ๊ฒฝ์šฐ ํ”„๋กœํŒŒ์ผ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ, 5 ๋ถ„๋‹จ์œ„๋กœ ์ตœ์ดˆ ํ˜ธ์ถœ๋œ URL, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ํ”„๋กœํŒŒ์ผ ์ •๋ณด๋Š” ์ˆ˜์ง‘๋ฉ๋‹ˆ๋‹ค.

active_stack_count

Default : 100Type : IntํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ์ˆ˜์ง‘ํ•˜๋Š” AtiveStack ์˜ ์ตœ๋Œ€ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

profile_method_resource_enabled

Default : falseType : Booleanํ”„๋กœํŒŒ์ผ์—์„œ method ์Šคํ…์ด ์ˆ˜์ง‘๋  ๋•Œ ํ•ด๋‹น ์Šคํ…์—์„œ ์‚ฌ์šฉํ•œ CPU ์™€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

profile_position_method

Default : NONEType : String์ง€์ •ํ•œ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ์‹œ์ ์˜ StackTrace๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

profile_position_depth

Default : 50Type : Intposition ์ถ”์ ์„ ์œ„ํ•ด StackTrace๋ฅผ ๊ธฐ๋ก ํ•  ๋•Œ ์ตœ๋Œ€ ๋ผ์ธ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

trace_error_callstack_depth

Default: 50Type : IntError๋ฐœ์ƒ์‹œ ์ˆ˜์ง‘ํ•˜๋Š” StackTrace์˜ ์ตœ๋Œ€ ๋ผ์ธ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

7.6. ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ๋ง

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 47

Page 51: Java Agent Guide - WhaTap Inc

trace_active_callstack_depth

Default: 50Type : Int์•กํ‹ฐ๋ธŒ์Šคํƒ์—์„œ ์ˆ˜์ง‘ํ•˜๋Š” StackTrace์˜ ์ตœ๋Œ€ ๋ผ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

trace_active_transaction_yellow_time

Default: 3000Type : MiliSecond์•กํ‹ฐ๋ธŒ ํŠธ๋žœ์žญ์…˜์˜ ์•„ํฌ์ดํ€„๋ผ์ด์ €์—์„œ ๋…ธ๋ž€์ƒ‰์œผ๋กœ ํ‘œํ˜„ํ•  ๊ธฐ์ค€์„ ์ง€์ • ํ•ฉ๋‹ˆ๋‹ค.

trace_active_transaction_red_time

Default: 8000Type : MiliSecond์•กํ‹ฐ๋ธŒ ํŠธ๋žœ์žญ์…˜์˜ ์•„ํฌ์ดํ€„๋ผ์ด์ €์—์„œ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œํ˜„ํ•  ๊ธฐ์ค€์„ ์ง€์ • ํ•ฉ๋‹ˆ๋‹ค.

hook_method_patterns

Default : NONEType : String์‘๋‹ต์‹œ๊ฐ„์„ ์ธก์ •ํ•  ๋ฉ”์†Œ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ (.)์„ ๊ตฌ๋ถ„์ž๋กœ ํด๋ž˜์Šค FullName๊ณผ ๋ฉ”์†Œ๋“œ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ (*)๋กœ WildCard๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋Œ€์ƒ์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ ์ฝค๋งˆ(,)๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค

โ€ข Ex : hook_method_patterns=a.b.C1.*

hook_method_supers

Default : NONEType : StringํŠน์ • ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ๋ฉ”์†Œ๋“œ์˜ ์‘๋‹ต์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๊ณ ์ž ํ•  ๋•Œ Super Class๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค FullName์„ ์ง€์ •ํ•˜๋ฉฐ ๋Œ€์ƒ์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ์ฝค๋งˆ(,)๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

โ€ข Ex : hook_method_supers=a.b.C1

hook_method_interfaces

Default : NONEType : StringํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๋ฉ”์†Œ๋“œ์˜ ์‘๋‹ต์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๊ณ ์ž ํ•  ๋•Œ Interface๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค FullName์„ ์ง€์ •ํ•˜๋ฉฐ ๋Œ€์ƒ์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ์ฝค๋งˆ(,)๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

hook_method_ignore_classes

Default : NONEType : String๋ฉ”์†Œ๋“œ ํ”„๋กœํŒŒ์ผ์„ ์„ค์ •ํ•  ๋•Œ ํ”„๋กœํŒŒ์ผ์—์„œ ์ œ์™ธ ํ•˜๊ณ  ์‹ถ์€ ํด๋ž˜์Šค๋“ค์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

hook_method_access_public_enabled

Default : trueType : Boolean๋ฉ”์†Œ๋“œ ํ”„๋กœํŒŒ์ผ์„ ์„ค์ •ํ•  ๋•Œ public ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ„๋„๋กœ ๋Œ€์ƒ์œผ๋กœ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

hook_method_access_private_enabled

Default : falseType : Boolean๋ฉ”์†Œ๋“œ ํ”„๋กœํŒŒ์ผ์„ ์„ค์ •ํ•  ๋•Œ private ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ„๋„๋กœ ๋Œ€์ƒ์œผ๋กœ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

7.6. ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ๋ง

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 48

Page 52: Java Agent Guide - WhaTap Inc

hook_method_access_protected_enabled

Default : trueType : Boolean๋ฉ”์†Œ๋“œ ํ”„๋กœํŒŒ์ผ์„ ์„ค์ •ํ•  ๋•Œ protected ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ„๋„๋กœ ๋Œ€์ƒ์œผ๋กœํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

hook_method_access_none_enabled

Default : trueType : Boolean๋ฉ”์†Œ๋“œ ํ”„๋กœํŒŒ์ผ์„ ์„ค์ •ํ•  ๋•Œ no access indicated ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ„๋„๋กœ ๋Œ€์ƒ์œผ๋กœ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

stacklog_socket_port

Default : 0Type : TCP_PortNumber๋ชฉ์ ์ง€์˜ TCPํฌํŠธ๋ฅผ ์ง€์ •ํ•˜๋ฉด Socket.connect() ์‹œ์  StackTrace๋ฅผ ์—์ด์ „ํŠธ ๋กœ๊ทธ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์„ค์ •์œผ๋กœ ํ™•์ธ๋˜์ง€ ์•Š๋Š” DB ์—ฐ๊ฒฐ, HTTPC์—ฐ๊ฒฐ๋“ฑ์„ ์ถ”์ ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ •๋œ ๋ชฉ์ ์ง€๋กœ ์—ฐ๊ฒฐ์‹œ๋งˆ๋‹ค ๋งค๋ฒˆ StackTrace๋ฅผ ๊ธฐ๋กํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ €ํ•˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””๋ฒ„๊น… ์šฉ๋„๋กœ ์„ ๋ณ„๋œ ์—์ด์ „ํŠธ์—ํ•œ์‹œ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. * Ex : stacklog_socket_port=1521 #DB์—ฐ๊ฒฐ ์ƒํƒœ ์ถ”์ 

biz_exceptions

Default : NONEType : String๋น„์ฆˆ๋‹ˆ์Šค Exception์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋“ฑ๋ก๋˜๋ฉด ์—๋Ÿฌํ†ต๊ณ„์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœํŒŒ์ผ ์ƒ์„ธ์—์„œ๋Š” ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

ignore_exceptions

Default : NONEType : String๋ฌด์‹œํ•  Exception์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋“ฑ๋ก๋˜๋ฉด ์—๋Ÿฌ ์ž์ฒด๊ฐ€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

transaction_status_error_enable

Default : trueType : BooleanHTTP 401, 403๊ณผ ๊ฐ™์ด ์ •์ƒ ์‘๋‹ต์ด ์•„๋‹Œ HTTP์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ๋กœ ์ฒ˜๋ฆฌ ํ•ฉ๋‹ˆ๋‹ค.

7.7. HTTP ํŠธ๋žœ์žญ์…˜ ์ถ”์ profile_http_header_enabled

Default : falseType : Booleanํ”„๋กœํŒŒ์ผ ๋‚ด์—ญ์— http ํ—ค๋” ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

profile_http_header_url_prefix

Default : /Type : Stringํ”„๋กœํŒŒ์ผ ๋‚ด์—ญ์— http ํ—ค๋” ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•  ๋Œ€์ƒ URL์˜ prefix๋ฅผ ์ •์˜ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

profile_http_parameter_enabled

Default : falseType : Booleanํ”„๋กœํŒŒ์ผ ๋‚ด์—ญ์— http ํŒŒ๋ผ๋ฏธํ„ฐ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ณ„๋„ ๋ณด์•ˆํ‚ค๋ฅผ ์ž…๋ ฅํ•ด์•ผ ์กฐํšŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7.7. HTTP ํŠธ๋žœ์žญ์…˜ ์ถ”์ 

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 49

Page 53: Java Agent Guide - WhaTap Inc

๋ณด์•ˆ ํ‚ค๋Š” WAS์„œ๋ฒ„ ${WHATAP_AGENT_HOME}/paramkey.txt ํŒŒ์ผ๋‚ด์— 6์ž๋ฆฌ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.paramkey.txt ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋žœ๋ค ๊ฐ’์œผ๋กœ ์ž๋™ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

profile_http_parameter_url_prefix

Default : /Type : Stringํ”„๋กœํŒŒ์ผ ๋‚ด์—ญ์— http ํŒŒ๋ผ๋ฏธํ„ฐ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•  ๋Œ€์ƒ URL์˜ prefix๋ฅผ ์ •์˜ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

trace_transaction_name_header_key

Default : NONEType : StringํŠธ๋žœ์žญ์…˜์˜ ์ด๋ฆ„ ๋๋ถ€๋ถ„์— ์ง€์ •ํ•œ http header key์—์„œ ์ถ”์ถœํ•œ ๊ฐ’์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

trace_transaction_name_key

Default : NONEType : StringํŠธ๋žœ์žญ์…˜์˜ ์ด๋ฆ„ ๋๋ถ€๋ถ„์— ์ง€์ •ํ•œ http request parameter ์—์„œ ์ถ”์ถœํ•œ ๊ฐ’์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

trace_normalize_enabled

Default : trueType : BooleanํŠธ๋žœ์žญ์…˜ URL ์„ ํŒŒ์‹ฑํ•˜์—ฌ ์ •๊ทœํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

false ๋กœ ๋ณ€๊ฒฝ์‹œ ํŒจ์ŠคํŒŒ๋ผ๋ฏธํ„ฐ ํŒŒ์‹ฑ์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ†ต๊ณ„๋ฐ์ดํ„ฐ์˜ ์˜๋ฏธ๊ฐ€ ์•ฝํ™”๋จ์œผ๋กœ ๋””๋ฒ„๊ทธ ์šฉ๋„๋กœ๋งŒ ์ž ์‹œ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

trace_auto_normalize_enabled

Default : trueType : BooleanํŠธ๋žœ์žญ์…˜ URL ์ •๊ทœํ™”ํ• ๋•Œ ํŒจํ„ด๊ฐ’์„ ์–ด๋…ธํ…Œ์ด์…˜์—์„œ ์ถ”์ถœํ•˜์—ฌ ์ž๋™์œผ๋กœ ํŒŒ์‹ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

trace_normalize_urls

Default : NONEType : String์ •๊ทœํ™” ํ•  ํŠธ๋žœ์žญ์…˜ URL ํŒจํ„ด์„ ์ •์˜ ํ•œ๋‹ค. ํ˜ธ์ถœ URL ํŒจํ„ด์„ ํŒŒ์‹ฑํ•˜์—ฌ ํŒจ์ŠคํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

ex) /a/{v}/b ๋ผ๊ณ  ์„ ์–ธํ•˜๋ฉด a/123/b โ‡’ a/{v}/b ๋กœ ์น˜ํ™˜ํ•œ๋‹ค์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋“ฑ๋กํ•  ๋•Œ๋Š” ์ฝค๋งˆ(,)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์น˜ํ™˜ํŒจํ„ด ์ •๋ฆฌ ํ›„ ๋ณด์™„ํ•„์š”

web_static_content_extensions

Default : js, htm, html, gif, png, jpg, css, swf, icoType : String์Šคํƒœํ‹ฑ ์ปจํ…์ธ ์ž„์„ ํŒ๋‹จํ•˜๋Š” ํ™•์žฅ์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์„ค์ •๋œ ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ํŠธ๋žœ์žญ์…˜๋“ค์€ ํ”„๋กœํŒŒ์ผ ์ถ”์ ๊ณผ ์นด์šดํŒ…์ด ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.

recursive_max

Default : 1000000Type : IntํŠธ๋žœ์žญ์…˜์˜ ์žฌ๊ท€ํ˜ธ์ถœ ์—ฌ๋ถ€ ๊ฒ€์ถœ์„ ์œ„ํ•œ ์˜ต์…˜์œผ๋กœ, ๋‹จ์ผ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ถ€ํ„ฐ ํŒŒ์ƒ๋˜๋Š” ์žฌ๊ท€ํ˜ธ์ถœ ํšŸ์ˆ˜๋ฅผ ์นด์šดํŠธํ•˜์—ฌ ์ด๋ฒคํŠธ ์•Œ๋ฆผ์„ ๋ฐœํ–‰ํ•˜๊ธฐ ์œ„ํ•œ๊ธฐ์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

7.7. HTTP ํŠธ๋žœ์žญ์…˜ ์ถ”์ 

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 50

Page 54: Java Agent Guide - WhaTap Inc

HTTP URL ์žฌ๊ท€ํ˜ธ์ถœ์„ ๋Œ€์ƒ์œผ๋กœ ํ•จjsp:forward ๋ฅผ ํ†ตํ•ด ์žฌํ˜ธ์ถœ ๋˜๋Š” ์ผ€์ด์Šค๋„ ์นด์šดํŠธ์— ํฌํ•จ๋จ

hook_httpservlet_classes

Default : NONEType : StringHTTP ํŠธ๋žœ์žญ์…˜์˜ END POINT ๋ฅผ ์ถ”๊ฐ€๋กœ ์ง€์ •ํ•œ๋‹ค. ๋ฉ”์†Œ๋“œ์˜ ์ฒซ๋ฒˆ์งธ 2 ๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” HttpServletRequest ์™€ HttpServletResponse ๋งŒ ์ง€์ •๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

hook_jsp_patterns

Default : org.apache.jasper.servlet.JspServlet.serviceJspFileType : StringJSP ํŒŒ์ผ์„ ๋กœ๋”ฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ํ˜ธ์ถœ ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜๋˜๋Š” JSP ์ •๋ณด๋ฅผ ํ”„๋กœํŒŒ์ผ์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ์˜ต์…˜์„ ํ†ตํ•ด ์ถ”๊ฐ€ํ•œ ์„ค์ •์—default ์„ค์ •์ด ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

trace_ignore_url_set

Default : NONEType : StringํŠธ๋žœ์žญ์…˜ ์ถ”์ ์—์„œ ์ œ์™ธํ•  URL์„ ์ง€์ •ํ•œ๋‹ค.

trace_ignore_url_prefix

Default : NONEType : StringํŠธ๋žœ์žญ์…˜ ์ถ”์ ์—์„œ ์ œ์™ธํ•  URL prefix๋ฅผ ์ง€์ •ํ•œ๋‹ค.

7.8. NON-Http ํŠธ๋žœ์žญ์…˜ ์ถ”์ trace_auto_transaction_enabled

Default : falseType : Booleanํ”„๋กœํŒŒ์ผ ๋Œ€์ƒ ๋ฉ”์†Œ๋“œ๊ฐ€ ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘์ (Javax.http.httpservlet, hook_service_*) ๋‚ด์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ˆ˜์ง‘์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒฝ์šฐ ํ”„๋กœํŒŒ์ผ ๋Œ€์ƒ ๋ฉ”์†Œ๋“œ๊ฐ€ ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘์ ์ด ๋˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ๋กœ ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํŠธ๋žœ์žญ์…˜์˜ END POINT ๋ฅผ ์ฐพ์•„๋‚ผ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

trace_auto_transaction_backstack_enabled

Default : trueType : Booleantrace_auto_transaction_enabled=true ์ด ์„ค์ •๋œ ๊ฒฝ์šฐ์— ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘์‹œ StackTrace๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŠธ๋žœ์žญ์…˜์˜ ์‹œ์ž‘์ ์„ ์ฐพ์•„๋‚ผ ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

trace_background_socket_enabled

Default : trueType : BooleanํŠธ๋žœ์žญ์…˜์ด ์•„๋‹Œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์“ฐ๋ ˆ๋“œ์— ์˜ํ•œ ์†Œ์ผ“์ด ์˜คํ”ˆ๋  ๋•Œ๋„ ์ด๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

async_stack_enabled

Default : falseType : Boolean๋ฐฑ๊ทธ๋ผ์šด๋“œ ์“ฐ๋ ˆ๋“œ์— ๋Œ€ํ•œ Active Stack ๊ธฐ๋Šฅ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

7.8. NON-Http ํŠธ๋žœ์žญ์…˜ ์ถ”์ 

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 51

Page 55: Java Agent Guide - WhaTap Inc

async_thread_match

Default : NONEType : String์•กํ‹ฐ๋ธŒ ์Šคํƒ์„ ๋คํ”„ํ•  ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์“ฐ๋ ˆ๋“œ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค. ","๋กœ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ง€์ •ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„์„ ์ง€์ •ํ• ๋•Œ๋Š” "Thread-" ์ฒ˜๋Ÿผ ""๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋น„๊ต ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

async_thread_parking_class

Default : sun.misc.UnsafeType : String์Šคํƒ์˜ Top๋ฉ”์†Œ๋“œ๊ฐ€ async_thread_parking์— ๋“ฑ๋ก๋œ ํด๋ž˜์Šค/๋ฉ”์†Œ๋“œ์ผ๋•Œ ์“ฐ๋ ˆ๋“œ๊ฐ€ ํŒŒํ‚น์ƒํƒœ์— ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  ๋คํ”„๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

hook_service_patterns

Default : NONEType : StringNON-Http ํŠธ๋žœ์žญ์…˜ ์ถ”์ ์„ ์œ„ํ•œ ์‹œ์ž‘์  ํŒจํ„ด์„ ์„ค์ •ํ•œ๋‹ค.

hook_serivce_ignore_methods

Default : NONEType : Stringhook_service_patterns ์—์„œ ์„ค์ •๋œ ๋‚ด์—ญ ์ค‘ ์‹œ์ž‘์ ์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค.

hook_service_supers

Default : NONEType : StringNON-Http ํŠธ๋žœ์žญ์…˜ ์ถ”์ ์„ ์œ„ํ•œ ์‹œ์ž‘์ ์˜ ๊ณตํ†ต ๋ถ„๋ชจ๊ฐ€ ํŠน์ • ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์†๋ฐ›์€ ๊ฒฝ์šฐ๋ผ๋ฉด ์ด๋ฅผ ์„ค์ •ํ•œ๋‹ค.

hook_service_interfaces

Default : NONEType : StringNON-Http ํŠธ๋žœ์žญ์…˜ ์ถ”์ ์„ ์œ„ํ•œ ์‹œ์ž‘์ ์˜ ๊ณตํ†ต ๋ถ„๋ชจ๊ฐ€ ํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒฝ์šฐ๋ผ๋ฉด ์ด๋ฅผ ์„ค์ •ํ•œ๋‹ค.

hook_service_access_public_enabled

Default : trueType : BooleanNon Http Demon ํ”„๋กœ์„ธ์Šค์˜ ํŠธ๋žœ์žญ์…˜์„ ์ง€์ •ํ•  ๋•Œ public ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ Access ๊ถŒํ•œ์„ ๊ธฐ์ค€์œผ๋กœ on/off ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

hook_service_access_private_enabled

Default : trueType : BooleanNon Http Demon ํ”„๋กœ์„ธ์Šค์˜ ํŠธ๋žœ์žญ์…˜์„ ์ง€์ •ํ•  ๋•Œ private ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ Access ๊ถŒํ•œ์„ ๊ธฐ์ค€์œผ๋กœ on/off ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

hook_service_access_protected_enabled

Default : trueType : BooleanNon Http Demon ํ”„๋กœ์„ธ์Šค์˜ ํŠธ๋žœ์žญ์…˜์„ ์ง€์ •ํ•  ๋•Œ protected ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ Access ๊ถŒํ•œ์„ ๊ธฐ์ค€์œผ๋กœ on/off ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

service_name_mode

Default : fullType : StringํŠธ๋žœ์žญ์…˜ ๋ช…์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด full,class,method,string,arg 5๊ฐ€์ง€ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

7.8. NON-Http ํŠธ๋žœ์žญ์…˜ ์ถ”์ 

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 52

Page 56: Java Agent Guide - WhaTap Inc

full : Full Class์ด๋ฆ„ ์‚ฌ์šฉclass : Class ์ด๋ฆ„ ์„œ๋น„์Šค ๋ช…์œผ๋กœ ์‚ฌ์šฉmethod : Method์ด๋ฆ„์„ ์„œ๋น„์Šค ๋ช…์œผ๋กœ ์‚ฌ์šฉstring : ๋ฌธ์ž์—ด์ค‘์—์„œ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„œ๋น„์Šค ๋ช…์œผ๋กœ ์‚ฌ์šฉarg : ํŒŒ๋ผ๋ฏธํ„ฐ์ค‘์—์„œ service_name_index์˜ต์…˜์— ์ง€์ •ํ•œ ์ธ๋ฑ์Šค์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„œ๋น„์Šค ๋ช…์œผ๋กœ ์‚ฌ์šฉ

7.9. ํŠธ๋žœ์žญ์…˜ ์—ฐ๊ณ„ ์ถ”์ mtrace_enabled

Default : falseType : BooleanํŠธ๋žœ์žฐ์…˜ ์—ฐ๊ณ„ ์ถ”์  ๊ธฐ๋Šฅ(MTID)์„ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. MTID ๋ฅผ ์ถ”์ ํ•˜๋ฉด ๋“ฑ๋ก๋œ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ฐ„์˜ ํ˜ธ์ถœ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mtrace_rate

Default : 10Type : Percentage์ตœ์ดˆ ํŠธ๋žœ์žญ์…˜์ด ๋ฐœ์ƒํ•  ๋•Œ ๋ฐœ๊ธ‰๋ฐ›๋Š” MTID(Multi Transaction ID)์˜ ๋ฐœ๊ธ‰๋น„์œจ์„ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

mtrace_caller_key

Default : x-wtap-mstType : StringMTID ์ถ”์ ์— ์‚ฌ์šฉํ•  Caller Key Name์„ ์ •ํ•ฉ๋‹ˆ๋‹ค.

mtrace_callee_key

Default : x-wtap-txType : StringMTID ์ถ”์ ์— ์‚ฌ์šฉํ•  Callee Key Name์„ ์ •ํ•ฉ๋‹ˆ๋‹ค.

mtrace_send_url_length

Default : 80Type : IntHttp Caller๋Š” Callee์—๊ฒŒ ์ž์‹ ์˜ URL์„ ๋„˜์ ธ์ค๋‹ˆ๋‹ค. ์ด๋•Œ URL๊ธธ์ด๋ฅผ ์ œํ•œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธธ์ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

mtrace_callee_id_send_enabled

Default : falseType : BooleanMTID ์ถ”์ ์‹œ HTTPC ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ๋ฐœํ–‰๋œ Callee ID๋ฅผ ํ”„๋กœํŒŒ์ผ์— ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

mtrace_callee_id_recv_enabled

Default : falseType : BooleanMTID ์ถ”์ ์‹œ ์ˆ˜์‹ ํ•œ Callee ID๋ฅผ ํ”„๋กœํŒŒ์ผ์— ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

mtrace_alltx_enabled

Default : falseType : Booleanlog4j์™€ ๊ฐ™์€ ๋กœ๊น… ์‹œ์Šคํ…œ๊ณผ ์—ฐ๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์˜ mtid๋ฅผ ์ถ”์ ํ• ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

mtrace_basetime

Default : 100Type : Milisecondsmtrace_alltx_enabled=trueํ•˜๋ฉด ๋„ˆ๋ฌด ๋งŽ์€ ๋กœ๊ทธ๊ฐ€ ๋‚จ์„ ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ๋Š” ํ”„๋กœํŒŒ์ผ ๋กœ๊น…๋Ÿ‰์„ ์ค„์ผ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

7.9. ํŠธ๋žœ์žญ์…˜ ์—ฐ๊ณ„ ์ถ”์ 

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 53

Page 57: Java Agent Guide - WhaTap Inc

stat_mtrace_enabled

Default : falseType : BooleanCaller์™€ Callee์˜ ์ƒ๊ด€ ๊ด€๊ณ„ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.Caller์— ์ ์šฉํ•˜๋ฉด Caller์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ๋ณด๋‚ด์ฃผ๊ณ  Callee์— ์ ์šฉ๋˜๋ฉด url๋‹จ์œ„ Caller-Callee ํ˜ธ์ถœํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘์„œ๋ฒ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

7.10. DB, SQLdbcp_pool_enabled

Default : trueType : BooleanJMX๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  DBCP์˜ DB Connection ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

hikari_pool_enabled

Default : falseType : BooleanJMX๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  hikari pool์˜ DB Connection ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

tomcat_ds_enabled

Default : falseType : BooleanJMX๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Tomcat DB Connection Pool ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

tomcat_pool_enabled

Default : trueType : BooleanJMX๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Tomcat DB Connection Pool ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

weblogic_ds_enabled

Default : falseType : BooleanJMX๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Weblogic DB Connection Pool ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

weblogic_pool_enabled

Default : trueType : BooleanJMX๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Weblogic DB Connection Pool ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

jeus_pool_enabled

Default : trueType : BooleanJMX๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  JEUS DB Connection Pool ์ •๋ณด๋ฅผ ์ถ”์ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

profile_connection_open_enabled

Default : trueType : Booleanํ”„๋กœํŒŒ์ผ ๋‚ด์—ญ์— DBConnection ์˜คํ”ˆ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

profile_dbc_close

Default : falseType : Boolean (profile_connection_open_enabled=true ์—์„œ๋งŒ ๋™์ž‘)

7.10. DB, SQL

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 54

Page 58: Java Agent Guide - WhaTap Inc

ํ”„๋กœํŒŒ์ผ ๋‚ด์—ญ์— DBConnection ํด๋กœ์ฆˆ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

profile_sql_param_enabled

Default : falseType : Booleanํ”„๋กœํŒŒ์ผ ๋‚ด์—ญ์— SQL ํŒŒ๋ผ๋ฏธํ„ฐ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ณ„๋„ ๋ณด์•ˆํ‚ค๋ฅผ ์ž…๋ ฅํ•ด์•ผ ์กฐํšŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณด์•ˆ ํ‚ค๋Š” WAS์„œ๋ฒ„ ${WHATAP_AGENT_HOME}/paramkey.txt ํŒŒ์ผ๋‚ด์— 6์ž๋ฆฌ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.paramkey.txt ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋žœ๋ค ๊ฐ’์œผ๋กœ ์ž๋™ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

profile_sql_resource_enabled

Default : falseType : Booleanํ”„๋กœํŒŒ์ผ์—์„œ SQL ์ด ์ˆ˜์ง‘๋  ๋•Œ ํ•ด๋‹น ์Šคํ…์—์„œ ์‚ฌ์šฉํ•œ CPU ์™€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

profile_update_count

Default : falseType : BooleanexcuteUpdate() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด SQL UPDATE๋ฌธ์ด ์ˆ˜ํ–‰๋œ ๊ฒฝ์šฐ UPDATE ๊ฑด์ˆ˜๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

custom_pool_classes

Default : NONEType : Stringpre-define๋˜์ง€ ์•Š๋Š” ๋ณ„๋„์˜ Connection Pool์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ํด๋ž˜์Šค ๋ช…์„ ์ง€์ •ํ•œ๋‹ค.

ds_update_interval

Default : 5000Type : MiliSecondsDB Connection ์ •๋ณด Count ์ฃผ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

profile_position_sql

Default : falseType : BooleanSQL์ด ์ˆ˜ํ–‰๋˜๋Š” ์‹œ์ ์˜ StackTrace๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

trace_dbc_leak_enabled

Default : falseType : BooleanDBConnection Leak ์„ ์ถ”์ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

Connection Wrapper๋ฅผ ์‚ฌ์šฉํ•ด Leak์„ ์ถ”์ ํ•˜๊ธฐ์— ์šด์˜ ์„œ๋น„์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ํ…Œ์ŠคํŠธํ›„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

trace_dbc_leak_fullstack_enabled

Default : falseType : BooleanDBConnection Leak์ด ๊ฐ์ง€๋˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์‹œ์  StackTrace๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

์˜ต์…˜ ์ ์šฉ์‹œ CPU ์‚ฌ์šฉ๋Ÿ‰์ด ๋‹ค์†Œ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.PeakTime์‹œ ์ ์šฉ์„ ํ”ผํ•˜๊ณ  ๋ฌธ์ œํ•ด๊ฒฐ ์šฉ๋„๋กœ๋งŒ ํ•œ์‹œ์ ์œผ๋กœ ์ ์šฉ ํ•  ๊ฒƒ์„ ๊ถŒ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

trace_sql_normalize_enabled

Default : true

7.10. DB, SQL

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 55

Page 59: Java Agent Guide - WhaTap Inc

Type : BooleanSQL ๋ฌธ์—์„œ ๋ฆฌํ„ฐ๋Ÿด ๋ถ€๋ถ„์„ ์ถ•์ถœํ•˜์—ฌ SQL ๋ฌธ์„ ์ •๊ทœํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

profile_error_jdbc_fetch_max

Default : 10000Type : IntSQL Fetch Count(ResultSet.next() ํ˜ธ์ถœ ๊ฑด ์ˆ˜)๊ฐ€ ์ง€์ •ํ•œ ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด TOO MANY Fetch ์—๋Ÿฌ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. 0์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

profile_error_sql_time_max

Default : 30000Type : MiliSecondSQL ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ์ง€์ •ํ•œ ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด TOO SLOW ์—๋Ÿฌ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. 0์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

hook_connection_open_patterns

Default : NONEType : StringDB Connection Open ์‹œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ์ง€์ •๋˜์ง€ ์•Š์€ Connection Pool ์˜ getConnection์„ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

โ€ข Ex : hook_connection_open_patterns=mypool.ConPool.getConnection

hook_jdbc_con_classes

Default : NONEType : String๋ฏธ๋“ฑ๋ก ๋˜์—ˆ๋˜ JDBC Connection ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

โ€ข Ex : hook_jdbc_con_classes=mypool.ConPool

hook_jdbc_pstmt_classes

Default : NONEType : String๋ฏธ๋“ฑ๋ก ๋˜์—ˆ๋˜ jdbc PreparedStatement ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์˜ํ•  ์ ์€ ์ƒ์„ฑ์ž ํŒŒ๋ผ๋ฏธํ„ฐ์— SQL ๋ฌธ์ž์—ด์ด ์ „๋‹ฌ๋˜๋Š” ๊ตฌ์กฐ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โ€ข Ex : org.apache.derby.impl.jdbc.EmbedPreparedStatement

hook_jdbc_cstmt_classes

Default : NONEType : String๋ฏธ๋“ฑ๋ก ๋˜์—ˆ๋˜ jdbc CallableStatement ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

โ€ข Ex : org.apache.derby.impl.jdbc.EmbedCallableStatement

hook_jdbc_stmt_classes

Default : NONEType : String๋ฏธ๋“ฑ๋ก ๋˜์—ˆ๋˜ JDBC Statement ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

โ€ข Ex : org.apache.derby.impl.jdbc.EmbedStatement

hook_jdbc_rs_classes

Default : NONEType : String๋ฏธ๋“ฑ๋ก๋˜์—ˆ๋˜ JDBC ResultSet ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

7.10. DB, SQL

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 56

Page 60: Java Agent Guide - WhaTap Inc

โ€ข Ex : org.apache.derby.impl.jdbc.EmbedResultSet

hook_jdbc_wrapping_driver_patterns

Default : NONEType : StringDB2 ๋“œ๋ผ์ด๋ฒ„์ฒ˜๋Ÿผ ๋‚œ๋… ์ฒ˜๋ฆฌ๋œ JDBC ๋“œ๋ผ์ด๋ฒ„๋Š” hook_jdbc_xxx ์˜ต์…˜์œผ๋กœ ์ง์ ‘ BCI ๊ฐ€ ์–ด๋ ต๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ Wrapper ๋ฐฉ์‹์œผ๋กœ SQL ์ถ”์ ํ•  ์ˆ˜์žˆ๋Š”๋ฐ ์ด๋•Œ Driver.connect ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ถ”์ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

debug_dbc_stack_enabled

Default : falseType : BooleanDB Connection ์‹œ์ ์˜ StackTrace ๋ฅผ ํ”„๋กœํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” Connection Pool ์ •๋ณด๋ฅผ ์–ป๊ธฐ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

7.11. HTTPC, API Callprofile_error_httpc_time_max

Default : 10000Type : MiliSecondHTTPC ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ์ง€์ •ํ•œ ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด TOO SLOW ์—๋Ÿฌ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. 0์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

profile_httpc_resource_enabled

Default : falseType : Booleanํ”„๋กœํŒŒ์ผ์—์„œ HTTP Call ์Šคํ…์ด ์ˆ˜์ง‘๋  ๋•Œ ํ•ด๋‹น ์Šคํ…์—์„œ ์‚ฌ์šฉํ•œ CPU ์™€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

profile_position_httpc

Default : falseType : BooleanHTTPC๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ์‹œ์ ์˜ StackTrace๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

trace_httpc_normalize_enabled

Default : trueType : BooleanํŠธ๋žœ์žญ์…˜๋‚ด HTTPC URL ์„ ํŒŒ์‹ฑํ•˜์—ฌ ์ •๊ทœํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

trace_httpc_normalize_urls

Default : NONEType : String์ •๊ทœํ™” ํ•  HTTPC URL ํŒจํ„ด์„ ์ •์˜ ํ•œ๋‹ค. ํ˜ธ์ถœ URL ํŒจํ„ด์„ ํŒŒ์‹ฑํ•˜์—ฌ ํŒจ์ŠคํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

ex) /a/{v}/b ๋ผ๊ณ  ์„ ์–ธํ•˜๋ฉด a/123/b โ‡’ a/{v}/b ๋กœ ์น˜ํ™˜ํ•œ๋‹ค์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋“ฑ๋กํ•  ๋•Œ๋Š” ์ฝค๋งˆ(,)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์น˜ํ™˜ํŒจํ„ด ์ •๋ฆฌ ํ›„ ๋ณด์™„ํ•„์š”

hook_httpc_patterns

Default : NONEType : StringHTTP Call ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

7.11. HTTPC, API Call

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 57

Page 61: Java Agent Guide - WhaTap Inc

7.12. Plug-inhook_trace_helper_patterns

Default : NONEType : String๋ฉ”์†Œ๋“œ ์‹คํ–‰ ๋ฐ ์ข…๋ฃŒ ๋ถ€๋ถ„์—์„œ ํ”„๋กœํŒŒ์ผ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฝ์ž…ํ•  ํฌ์ธํŠธ(ํด๋ž˜์Šค ๋ฐ ๋ฉ”์†Œ๋“œ๋ช…)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

plugin ์„ ํ™œ์šฉํ•œ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๋œ profile ์ •๋ณด ์ˆ˜์ง‘์„ ์œ„ํ•œ ์šฉ๋„๋กœ ํ•˜๊ธฐ plugin ์ฝ”๋“œ๊ฐ€ ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค.$WHATAP_HOME/plugin/TraceHelperStart.x$WHATAP_HOME/plugin/TraceHelperEnd.x

hook_trace_helper_end_patterns

Default : NONEType : String๋ฉ”์†Œ๋“œ ์ข…๋ฃŒ ๋ถ€๋ถ„์—์„œ ํ”„๋กœํŒŒ์ผ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฝ์ž…ํ•  ํฌ์ธํŠธ(ํด๋ž˜์Šค ๋ฐ ๋ฉ”์†Œ๋“œ๋ช…)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

plugin ์„ ํ™œ์šฉํ•œ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๋œ profile ์ •๋ณด ์ˆ˜์ง‘์„ ์œ„ํ•œ ์šฉ๋„๋กœ ํ•˜๊ธฐ plugin ์ฝ”๋“œ๊ฐ€ ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค.$WHATAP_HOME/plugin/TraceHelperEnd.x

hook_trace_helper_start_patterns

Default : NONEType : String๋ฉ”์†Œ๋“œ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ํ”„๋กœํŒŒ์ผ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฝ์ž…ํ•  ํฌ์ธํŠธ(ํด๋ž˜์Šค ๋ฐ ๋ฉ”์†Œ๋“œ๋ช…)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

plugin ์„ ํ™œ์šฉํ•œ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๋œ profile ์ •๋ณด ์ˆ˜์ง‘์„ ์œ„ํ•œ ์šฉ๋„๋กœ ํ•˜๊ธฐ plugin ์ฝ”๋“œ๊ฐ€ ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค.$WHATAP_HOME/plugin/TraceHelperStart.x

7.13. ์‚ฌ์šฉ์ž ์ˆ˜trace_user_enabled

Default : trueType : Boolean์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž ์ง‘๊ณ„ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ถ”์  ์˜ต์…˜์ด ์ค‘๋ณต ์„ค์ • ๋œ ๊ฒฝ์šฐ ๋™์ž‘ ์šฐ์„ ์ˆœ์œ„1. trace_user_using_ip2. trace_user_using_jsession3. user_header_ticket

trace_user_cookie_limit

Default: 2048Type : Int์‚ฌ์šฉ์ž ์ง‘๊ณ„๋ฅผ ์œ„ํ•ด ์ฟ ํ‚ค๋ฅผ ๋ฐœํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ์กด ์ฟ ํ‚ค๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๋‹ค๋ฉด ์ฟ ํ‚ค ์˜ค๋ฒ„ํ”Œ๋กœ์–ด๊ฐ€ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํšŒํ”ผํ•˜๊ธฐ ์œ„ํ•ด limit ๋ฅผ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

trace_user_using_ip

Default : trueType : Boolean์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž ์ง‘๊ณ„์‹œ IP ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

7.12. Plug-in

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 58

Page 62: Java Agent Guide - WhaTap Inc

trace_user_using_jsession

Default : falseType : Boolean์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž ์ง‘๊ณ„์‹œ SESSIONID ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

trace_http_client_ip_header_key

Default : NONEType : StringRemote Address ๋ฅผ http header์˜ ํŠน์ • key๊ฐ’์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ) trace_http_client_ip_header_key=X-Forwarded-For

WEB/WAS ์•ž์— L4์™€ ๊ฐ™์€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์œ„์น˜ํ•œ ๊ฒฝ์šฐ Client์˜ IP๊ฐ€ ์•„๋‹Œ L4์˜ IP๊ฐ€ Remote Address๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.์ด ์ƒํ™ฉ์—์„œ ์‹ค์ œ Client IP์ •๋ณด๊ฐ€ http header์— ํŠน์ • key ๊ฐ’์œผ๋กœ ๊ธฐ๋ก๋˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ํ•ด๋‹น key๋กœ ๋Œ€์ฒด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

user_header_ticket

Default : NONEType : StringHTTP Header ์˜ ํŠน์ • ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ์ž ์ˆ˜๋ฅผ ์ง‘๊ณ„ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น Key๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

7.14. ๋ถ€ํ•˜๋Ÿ‰ ์ œ์–ดthrottle_enabled

Default : falseType : Boolean์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ตœ๋Œ€ ๋™์‹œ ์ฒ˜๋ฆฌ ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ์“ฐ๋กœํ‹€๋ง ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. throttle_ ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ์˜ต์…˜์€ throttle_enabled=true์ƒํƒœ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์“ฐ๋กœํ‹€๋ง ์ œ์–ด์™€ ๊ด€๋ จํ•œ ์ •์ฑ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.1. Block : URL, ์‚ฌ์šฉ์žIP ๊ธฐ์ค€์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ฐจ๋‹จํ•˜๋ฉฐ ๊ฐ€์žฅ ์šฐ์„ ํ•˜์—ฌ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.2. Passing : Passing์— ์ ์šฉ๋œ URL๋“ค์€ Reject ์ •์ฑ…๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.3. Reject : Block, Passing ์ •์ฑ… ์ดํ›„์— Reject ์ •์ฑ…์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

throttle_limit

Default: 10000Type : Int์—์ด์ „ํŠธ๋ณ„ ๋™์‹œ ์ฒ˜๋ฆฌ๋˜๋Š” ์š”์ฒญ(ํŠธ๋žœ์žญ์…˜)์ˆ˜๊ฐ€ ์ง€์ •ํ•œ ๊ฐ’์„ ๋„˜์œผ๋ฉด ์ถ”๊ฐ€๋กœ ๋„๋‹ฌํ•˜๋Š” ์š”์ฒญ์€ reject๋ฉ๋‹ˆ๋‹ค.

throttle_rejected_message

Default : too many request!!Type : String์“ฐ๋กœํ‹€๋ง ์ œํ•œ์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ๋  ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

throttle_rejected_forward

Default : NONEType : URL์‚ฌ์šฉ์ž ์š”์ฒญ์ด limit ๊ฐ’์„ ๋„˜์–ด reject ๋  ๋•Œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ๋˜๋Š” ์•ˆ๋‚ด ํŽ˜์ด์ง€ URL์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. throttle_rejected_message์™€ ๋™์‹œ์— ์„ค์ •๋œ๊ฒฝ์šฐ throttle_rejected_forward ๊ฐ€ ์šฐ์„ ์ ์šฉ ๋ฉ๋‹ˆ๋‹ค.

7.14. ๋ถ€ํ•˜๋Ÿ‰ ์ œ์–ด

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 59

Page 63: Java Agent Guide - WhaTap Inc

์•ˆ๋‚ดํŽ˜์ด์ง€๊ฐ€ ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์„œ๋น„์Šค ๋˜๋Š” ๊ฒฝ์šฐ, ์ด ์—ญ์‹œ ๋™์‹œ์ฒ˜๋ฆฌ ์ˆ˜์— ์‚ฐ์ • ๋˜๋ฏ€๋กœ ์ œ๊ท€ํ˜ธ์ถœ๋กœ ์ธํ•œ ์žฅ์• ์š”์†Œ๊ฐ€ ๋  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์•ˆ๋‚ด ํŽ˜์ด์ง€๋Š” static html ํŽ˜์ด์ง€๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์™ธ๋ถ€์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

reject_event_enabled

Default : falseType : Boolean์‚ฌ์šฉ์ž ์š”์ฒญ์ด Reject๋œ ๊ฒฝ์šฐ ์ด๋ฒคํŠธ ์•Œ๋žŒ์„ ๋ฐœ์ƒํ•  ์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

reject_event_interval

Default: 30000Type : MiliSecondReject์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ ์•Œ๋žŒ ๋ฐœ์ƒ์ดํ›„ ์„ค์ •๋œ ์‹œ๊ฐ„๋™์•ˆ ์ค‘๋ณต๋œ ์ด๋ฒคํŠธ์— ๋Œ€ํ•˜์—ฌ ์•Œ๋žŒ ๋ฐœ์ƒ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

throttle_blocking_url

Default: NONEType : Stringthrottle_limit์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ผ๋„ ๋ธ”๋Ÿญํ‚น(์ฒ˜๋ฆฌ ๊ฑฐ๋ถ€) ํ•  URL ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์žฅ์• ๋ฅผ ์œ ๋ฐœํ•˜๋Š” URL์„ ๊ธด๊ธ‰ํ•˜๊ฒŒ ๋ธ”๋Ÿญํ‚น ํ•˜๊ธฐ ์œ„ํ•ด์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

throttle_blocking_ip

Default: NONEType : ip_address์‚ฌ์šฉ์ž IP๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ธ”๋Ÿญํ‚นํ•˜๊ณ ์ž ํ•  ๋•Œ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋””๋„์Šค ๊ณต๊ฒฉ์ด๋‚˜ ์ž˜๋ชป๋œ ์‚ฌ์šฉ์ž๋ฅผ IP ๊ธฐ๋ฐ˜์œผ๋กœ ์ฐจ๋‹จ ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ์ฝค๋งˆ(,)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

throttle_target_urls

Default: NONEType : URL๋“ฑ๋ก๋œ URL์„ ๋Œ€์ƒ์œผ๋กœ๋งŒ ์“ฐ๋กœํ‹€ ๊ธฐ๋Šฅ์„ ์ ์šฉํ•œ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ ์ฝค๋งˆ(,) ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

throttle_passing_url

Default: NONEType : Stringthrottle_limit์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋„ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•  URL์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ ์ฝค๋งˆ(,)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

throttle_passing_url_prefix

Default: NONEType : Stringthrottle_limit์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋„ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•  URL๋“ค์„ prefix๋กœ ๊ฒฝ์šฐ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ ์ฝค๋งˆ(,)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

throttle_blocked_message

Default : request blocked!!Type : String์š”์ฒญ์ด ๋ธ”๋Ÿฌํ‚น ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•  ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

throttle_blocked_forward

Default : NONEType : URL์š”์ฒญ์ด ๋ธ”๋Ÿฌํ‚น ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•  URL์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. throttle_blocked_message์™€ ๋™์‹œ์— ์„ค์ •๋œ ๊ฒฝ์šฐ throttle_blocked_forward ๊ฐ€ ์šฐ์„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

7.14. ๋ถ€ํ•˜๋Ÿ‰ ์ œ์–ด

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 60

Page 64: Java Agent Guide - WhaTap Inc

7.15. ์—์ด์ „ํŠธ ์•Œ๋ฆผ ์„ค์ •recursive_event_interval

Default : 300000Type : MiliSecondsํŠธ๋žœ์žญ์…˜์˜ ์žฌ๊ท€ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

reject_event_enabled

Default : falseType : Boolean์„œ๋น„์Šค ๊ฑฐ์ ˆ(ํ˜ธ์ถœ ๋ถ€ํ•˜ ์ œํ•œ/๊ฑฐ์ ˆ))์‹œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

reject_event_interval

Default : 300000Type : MiliSeconds์„œ๋น„์Šค ๊ฑฐ์ ˆ(ํ˜ธ์ถœ ๋ถ€ํ•˜ ์ œํ•œ/๊ฑฐ์ ˆ))์‹œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

httpc_event_enabled

Default : falseType : BooleanHTTPC ์—ฐ๊ฒฐ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

httpc_event_interval

Default : 300000Type : MiliSecondsHTTPC ์—ฐ๊ฒฐ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

heap_event_enabled

Default : falseType : Booleanํž™ ์‚ฌ์šฉ๋Ÿ‰ ์ž„๊ณ„ ๋„๋‹ฌ ์‹œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

heap_event_percent

Default : 90Type : Percentageํž™์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ธฐ์ค€ ์ž„๊ณ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

heap_event_duration

Default : 30000Type : MiliSecondsํž™์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ธฐ์ค€ ์ง€์†์‹œ๊ฐ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

heap_event_interval

Default : 300000Type : MiliSecondsํž™์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

heap_event_action

Default : NONEType : Stringํž™์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์‹คํ–‰ํ•  ๋™์  ๋กœ๋”ฉ ์ฝ”๋“œ ์ง€์ •

7.15. ์—์ด์ „ํŠธ ์•Œ๋ฆผ ์„ค์ •

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 61

Page 65: Java Agent Guide - WhaTap Inc

($WHATAP_HOME/plugin/ActionScript.x ์— ์ž‘์„ฑํ•œ Java ์ฝ”๋“œ)์— ์ „๋‹ฌํ•  ID ($id ๋กœ ์ „๋‹ฌ๋จ)

disk_event_enabled

Default : falseType : Boolean๋””์Šคํฌ์‚ฌ์šฉ๋Ÿ‰ ์ž„๊ณ„ ๋„๋‹ฌ ์‹œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

disk_event_percent

Default : 90Type : Percentage๋””์Šคํฌ์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ธฐ์ค€ ์ž„๊ณ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

disk_event_interval

Default : 300000Type : MiliSeconds๋””์Šคํฌ์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

disk_event_action

Default : NONEType : String๋””์Šคํฌ์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์‹คํ–‰ํ•  ๋™์  ๋กœ๋”ฉ ์ฝ”๋“œ ์ง€์ •

($WHATAP_HOME/plugin/ActionScript.x ์— ์ž‘์„ฑํ•œ Java ์ฝ”๋“œ)์— ์ „๋‹ฌํ•  ID ($id ๋กœ ์ „๋‹ฌ๋จ)

cpu_event_enabled

Default : falseType : BooleanCPU ์‚ฌ์šฉ๋Ÿ‰ ์ž„๊ณ„ ๋„๋‹ฌ ์‹œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cpu_event_percent

Default : 90Type : PercentageCPU ์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ธฐ์ค€ ์ž„๊ณ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cpu_event_duration

Default : 30000Type : MiliSecondsCPU ์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ธฐ์ค€ ์ง€์†์‹œ๊ฐ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cpu_event_interval

Default : 300000Type : MiliSecondsCPU ์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cpu_event_action

Default : NONEType : StringCPU ์‚ฌ์šฉ๋Ÿ‰ ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ, ์‹คํ–‰ํ•  ๋™์  ๋กœ๋”ฉ ์ฝ”๋“œ์— ์ „๋‹ฌํ•  ID๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

($WHATAP_HOME/plugin/ActionScript.x ์— ์ž‘์„ฑํ•œ Java ์ฝ”๋“œ)์— ์ „๋‹ฌํ•  ID ($id ๋กœ ์ „๋‹ฌ๋จ)

7.15. ์—์ด์ „ํŠธ ์•Œ๋ฆผ ์„ค์ •

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 62

Page 66: Java Agent Guide - WhaTap Inc

dbc_dup_event_enabled

Default : falseType : BooleanDB Connection ์ด ์ค‘๋ณต ํ• ๋‹น ๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

dbc_dup_event_fullstack_enabled

Default : falseType : BooleanDB Connection ์ด ์ค‘๋ณต ํ• ๋‹น ๋ ๋•Œ Stack ํ™•๋ณด ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

exception_event_enabled

Default : falseType : BooleanException ๋ฐœ์ƒ ์‹œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

exception_event_interval

Default : 60000Type : MiliSecondsException ๋ฐœ์ƒ ์‹œ ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๋ฐœํ–‰ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

exception_event_set

Default : NullType : String๋Œ€์ƒ Exception ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ ์ง€์ •ํ•  ๊ฒฝ์šฐ ','๋กœ ๊ตฌ๋ถ„์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

exception_event_action

Default : NullType : String์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์‹คํ–‰ํ•  ๋™์  ๋กœ๋”ฉ ์ฝ”๋“œ

($WHATAP_HOME/plugin/ActionScript.x ์— ์ž‘์„ฑํ•œ Java ์ฝ”๋“œ)์— ์ „๋‹ฌํ•  ID ($id ๋กœ ์ „๋‹ฌ๋จ)

7.16. ์„ฑ๋Šฅ ์นด์šดํ„ฐ & ํ†ต๊ณ„ ํ™•์žฅaddin_monitor_num

Default : 0Type : Int์„ฑ๋Šฅ ์นด์šดํ„ฐ ํ™•์žฅ์„ ์œ„ํ•ด ์ถ”๊ฐ€ ์„ ์–ธํ•  ํด๋ž˜์Šค ์ˆ˜ addin_monitor_num์— ์„ค์ •ํ•œ ์ˆ˜๋งŒํฐ addin_monitor_x๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

addin_monitor_0

Default : 0Type : Intํด๋ž˜์Šค ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค. ์ดํด๋ž˜์Šค๋“ค์€ ๋ชจ๋‘ whatap.agent.AddinMonitor์˜ ๊ตฌํ˜„ ํด๋ž˜์Šค ์ž…๋‹ˆ๋‹ค.

addin_monitor_x ์‚ฌ์šฉ์˜ˆ

addin_monitor_num=2addin_monitor_0=a.a.Class1addin_monitor_1=a.a.Class2

stat_domain_enabled

Default : false

7.16. ์„ฑ๋Šฅ ์นด์šดํ„ฐ & ํ†ต๊ณ„ ํ™•์žฅ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 63

Page 67: Java Agent Guide - WhaTap Inc

Type : Boolean๋„๋ฉ”์ธ๋ณ„ ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

stat_domain_max_count

Default : 7000Type : Int5๋ถ„๋™์•ˆ ํ•œ JVM์—์„œ ์ˆ˜์ง‘ํ•  ๋„๋ฉ”์ธ๋ณ„ ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„์˜ ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

stat_mtrace_enabled

Default : falseType : Boolean๋ฉ€ํ‹ฐ ์„œ๋ฒ„ ํŠธ๋žœ์žญ์…˜์—์„œ Callser&Callee๊ฐ„์— ๋ฒ„์ „๋ณ„ ์˜์กด์„ฑ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

mtrace_spec

Default: v1Type : Stringํ˜„ ์ธ์Šคํ„ด์Šค์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒ„์ „์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž„์˜์˜ ๋ฌธ์ž์—ด์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋Š” ํ˜ธ์ถœํ†ต๊ณ„๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

stat_mtrace_max_count

Default : 7000Type : Int๋ฉ€ํ‹ฐ ์„œ๋ฒ„ ํŠธ๋žœ์žญ์…˜์—์„œ Callser&Callee๊ฐ„์— ๋ฒ„์ „๋ณ„ ์˜์กด์„ฑ ํ†ต๊ณ„์˜ ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

stat_login_enabled

Default : falseType : Boolean๋กœ๊ทธ์ธ๋ณ„ ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

stat_login_max_count

Default : 7000Type : Int5๋ถ„๋™์•ˆ ํ•œ JVM์—์„œ ์ˆ˜์ง‘ํ•  ๋กœ๊ทธ์ธ๋ณ„ ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„์˜ ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

stat_referer_enabled

Default : falseType : BooleanReferer๋ณ„ ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

stat_referer_max_count

Default : 7000Type : Int5๋ถ„๋™์•ˆ ํ•œ JVM์—์„œ ์ˆ˜์ง‘ํ•  Referer๋ณ„ ํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„์˜ ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

stat_tx_max_count

Default : 5000Type : IntํŠธ๋žœ์žญ์…˜ ํ†ต๊ณ„ ์ •๋ณด์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋™์•ˆ ์ˆ˜์ง‘๋˜์–ด ์„œ๋ฒ„์— ์ „์†ก๋˜๋Š” ํ†ต๊ณ„์ •๋ณด์—์„œ ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

stat_sql_max_count

Default : 5000Type : IntSQL ํ†ต๊ณ„ ์ •๋ณด์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋™์•ˆ ์ˆ˜์ง‘๋˜์–ด ์„œ๋ฒ„์— ์ „์†ก๋˜๋Š” ํ†ต๊ณ„์ •๋ณด์—์„œ ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

7.16. ์„ฑ๋Šฅ ์นด์šดํ„ฐ & ํ†ต๊ณ„ ํ™•์žฅ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 64

Page 68: Java Agent Guide - WhaTap Inc

stat_httpc_max_count

Default : 5000Type : IntHttp Call ํ†ต๊ณ„ ์ •๋ณด์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋™์•ˆ ์ˆ˜์ง‘๋˜์–ด ์„œ๋ฒ„์— ์ „์†ก๋˜๋Š” ํ†ต๊ณ„์ •๋ณด์—์„œ ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

stat_error_max_count

Default : 1000Type : IntError ํ†ต๊ณ„ ์ •๋ณด์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋™์•ˆ ์ˆ˜์ง‘๋˜์–ด ์„œ๋ฒ„์— ์ „์†ก๋˜๋Š” ํ†ต๊ณ„์ •๋ณด์—์„œ ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

stat_useragent_max_count

Default : 500Type : IntUser Agent ํ†ต๊ณ„ ์ •๋ณด์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. 5๋ถ„๋™์•ˆ ์ˆ˜์ง‘๋˜์–ด ์„œ๋ฒ„์— ์ „์†ก๋˜๋Š” ํ†ต๊ณ„์ •๋ณด์—์„œ ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

7.17. ์ผ๋ฐ˜ ๋กœ๊ทธ & GC ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋งwatchlog_enabled

Default : falseType : Boolean๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

watchlog_check_interval

Default : 2000Type : Int๋กœ๊ทธ๋ฅผ ๊ฐ์‹œํ•˜๋Š” ์ฃผ๊ธฐ์ž…๋‹ˆ๋‹ค. ๋งค ๊ฐ„๊ฒฉ์œผ๋กœ ๋กœ๊ทธ ํŒŒ์ผ์— ๊ธฐ๋ก์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

watchlog_read_count

Default : 8Type : Int๋กœ๊ทธ๋ฅผ ์ฝ์–ด๋“ค์ด๋Š” ์ตœ๋Œ€ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•œ๋ฒˆ์— watchlog_buffer_size๋งŒํผ ์ฝ์–ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

watchlog_buffer_size

Default : 131072(128k)Type : Intํ•œ๋ฒˆ์— ์ฝ์–ด๋“ค์ด๋Š” ๋กœ๊ทธ ์‚ฌ์ด์ฆˆ ์ž…๋‹ˆ๋‹ค.

watchlog.LOGKEY

watchlog.LOGKEY.enabled=falsewatchlog.LOGKEY.file=watchlog.LOGKEY.words=watchlog.LOGKEY.silent=10000watchlog.LOGKEY.check_interval=1000ํ•˜๋‚˜์˜ ๋กœ๊ทธ ํŒŒ์ผ์„ ๊ฐ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •์ž…๋‹ˆ๋‹ค. file์„ ์ง€์ •ํ•˜๊ณ  ๊ฐ์‹œํ•œ word๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ','์ด์šฉํ•˜์—ฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. check_interval๊ฐ„๊ฒฉ์œผ๋กœ ๋กœ๊ทธ๋ฅผ๊ฐ์‹œํ•˜๋‹ค๊ฐ€ ํ‚ค์›Œ๋“œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฒฝ๊ณ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํ•œ๋ฒˆ ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜๊ฐ€๋ฉด silent ๋งŒํผ ๊ฒฝ๊ณ ๋ฅผ ๋ฉˆ์ถค๋‹ˆ๋‹ค.

gclog_enabled

Default : falseType : BooleanGC ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

7.17. ์ผ๋ฐ˜ ๋กœ๊ทธ & GC ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 65

Page 69: Java Agent Guide - WhaTap Inc

gclog_file

Default : NullType : File NameGC ๋กœ๊ทธ ํŒŒ์ผ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

gclog_check_interval

Default : 2000Type : IntGC ๋กœ๊ทธ๋ฅผ ๊ฐ์‹œํ•˜๋Š” ์ฃผ๊ธฐ์ž…๋‹ˆ๋‹ค. ๋งค ๊ฐ„๊ฒฉ์œผ๋กœ ๋กœ๊ทธ ํŒŒ์ผ์— ๊ธฐ๋ก์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

gclog_word

Default : Full GCType : word๊ฐ์‹œํ•  ํ‚ค์›Œ๋“œ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์€ Full GC๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

7.18. ํ† ํด๋กœ์ง€ ๋งตtx_caller_meter_enabled

Default : falseType : Booleanํ† ํด๋กœ์ง€๋งต์—์„œ ์™ธ๋ถ€ ํ˜ธ์ถœ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. mtrace_enabled=true ์ธ ๊ฒฝ์šฐ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

sql_dbc_meter_enabled

Default : falseType : Booleanํ† ํด๋กœ์ง€๋งต์—์„œ SQL ํ˜ธ์ถœ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

httpc_host_meter_enabled

Default : falseType : Booleanํ† ํด๋กœ์ง€๋งต์—์„œ httpc outbound ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

actx_meter_enabled

Default : falseType : Booleanํ† ํด๋กœ์ง€๋งต์—์„œ ์•กํ‹ฐ๋ธŒ ํŠธ๋žœ์žญ์…˜ ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

7.18. ํ† ํด๋กœ์ง€ ๋งต

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 66

Page 70: Java Agent Guide - WhaTap Inc

Chapter 8. ๋ถ€๊ฐ€ ์ •๋ณด

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ์„ค์ • ์œ„์น˜

SpringBoot ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ

Tomcat $CATALINA_HOME/bin/catalina.sh(bat)

JBoss 5.0 ์ดํ•˜ $JBOSS_HOME/bin/run.conf

JBoss 7.0 ์ด์ƒ EAP6.0์ด์ƒ

$JBOSS_HOME/bin/standalone.conf(domain.conf)

WebLogic $WEBLOGIC_HOME/user_projects/domains/์‚ฌ์šฉ์ž๋„๋ฉ”์ธ/bin/startWebLogic.sh(bat)

WebSphere admin console ์ ‘์†1. Server > Server Types > WebSphere application servers > ์„œ๋ฒ„ ์„ ํƒ2. ์„œ๋ฒ„ Configurationํƒญ > Server Infrastructure์˜ Java and Process Management > Process definition ์„ ํƒ3. Additional Properties์˜ Java Virtual Machine ์„ ํƒ4. Generic JVM arguments ํŽธ์ง‘

Jeus7 $JEUS_HOME/domains/jeus_domain/config.xml

Jeus6 $JEUS_HOME/config/$hostname/JEUSMain.xml

Resin $RESIN_HOME/conf/resin.properties

Jetty watch_jetty.sh(bat)

play2 $PLAY_HOME/framework/build

Liberty ${server.config.dir}/jvm.options

8.1.1. SpringBoot์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ jvm ์˜ต์…˜์— -javaagent๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

java -javaagent:{whatap.agent.tracer-x.x.x.jar์˜ full path} -jar {application jar}

8.1.2. Tomcat on Windows ServiceWindows ๊ณ„์—ด OS์— binary๋กœ ์„ค์น˜ํ•˜์—ฌ SYSTEM ๊ณ„์ •์œผ๋กœ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ, โ€˜javaagentโ€™ ๋ฐฉ์‹์œผ๋กœ Tomcat์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โ€ข โ€œConfigure Tomcatโ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜์—ฌ Java ํƒญ ์„ ํƒ > Java Options์— -javaagent ์˜ต์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 67

Page 71: Java Agent Guide - WhaTap Inc

Figure 19. Configure Tomcat - Java

8.1.3. JBossJVM ์˜ต์…˜์— -javaagent ๋ฐ -Djboss.modules.system.pkgs์— ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

JBOSS 7.0 ์ด์ƒ EAP 6.0์ด์ƒ

-Djboss.modules.system.pkgs=whatap ์ถ”๊ฐ€

standalone.sh

#!/bin/sh########## WHATAP ############WHATAP_HOME=/home/ec2-user/whatapWHATAP_JAR=`ls ${WHATAP_HOME}/whatap.agent.tracer-*.jar | sort | tail -1`JAVA_OPTS="${JAVA_OPTS} -javaagent:${WHATAP_JAR} -Djboss.modules.system.pkgs=whatap "########## WHATAP ############

8.1.4. WebLogic์„ค์ • ์œ„์น˜

$WEBLOGIC_HOME/user_projects/domains/์‚ฌ์šฉ์ž๋„๋ฉ”์ธ/bin/startWebLogic.sh(bat)

โ€ข javaagent ํ”„๋กœํผํ‹ฐ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 68

Page 72: Java Agent Guide - WhaTap Inc

Figure 20. startWebLogic.sh

8.1.5. WebSphere1. ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด admin console์— ๋กœ๊ทธ์ธ ํ•ฉ๋‹ˆ๋‹ค.

2. Servers > Server Type > WebSphere application servers ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•  ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 69

Page 73: Java Agent Guide - WhaTap Inc

2. ์„ ํƒ๋œ ์„œ๋ฒ„ Configuration ํƒญ์— Server Infrastructure์˜ Java and Process Management > Process definition ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 70

Page 74: Java Agent Guide - WhaTap Inc

3. Additional Properties์˜ Java Virtual Machine ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

4. WEBSHERE์˜ ์„œ๋น„์Šค ํฌํŠธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

5. Configuration ํƒญ์˜ Generic JVM arguments์— -javaagent์™€ -Dwhatap.port๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 71

Page 75: Java Agent Guide - WhaTap Inc

8.1.6. Jeus1. Jeus ์„ค์ • ํŒŒ์ผ์—์„œ JVM ์˜ต์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค

์„ค์ • ํŒŒ์ผ ์œ„์น˜

Jeus7 $JEUS_HOME/domains/jeus_domain/config.xml ์—์„œ jvm-option์— -javaagent์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Jeus6 $JEUS_HOME/config/$hostname/JEUSMain.xml ์—์„œ command-option์—-javaagent ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 72

Page 76: Java Agent Guide - WhaTap Inc

Jeus 7 - config.xml

<domain>  <servers>  <server>  <name>server1</name>  <jvm-config>  <jvm-option>  -Xmx1024m -XX:MaxPermSize=128m  -javaagent:/whatap/whatap.agent.tracer-0.8.1.jar  </jvm-option>  </jvm-config>  </server>  </servers></domain>

Figure 21. Jeus 6 - JEUSMain.xml

2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ ํ•ฉ๋‹ˆ๋‹ค.

jdown && jboot

3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋กœ๊ทธ์™€ ์—์ด์ „ํŠธ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ธฐ๋™ํ•˜์˜€๋Š”์ง€, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋กœ๊ทธ ํŒŒ์ผ ์œ„์น˜

์—์ด์ „ํŠธ $WHATAP_HOME/logs/whatap-{SERVER_NAME}-{DATE}.log

JEUS6 $JEUS_HOME/logs/$NODE_NAME/JeusServer.log

JEUS7 $JEUS_HOME/domains/$HOST_NAME/servers/$NODE_NAME/logs/JeusServer.log

JEUS7

$JEUS_HOME/domains/$HOST_NAME/servers/$NODE_NAME/logs/JeusServer.log

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 73

Page 77: Java Agent Guide - WhaTap Inc

4. ์—์ด์ „ํŠธ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ์ข…๋ฅ˜์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ์„œ๋น„์Šค container๋ช…์„ ์ธ์‹ํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์™€ํƒญ ์‚ฌ์ดํŠธ์—์„œ whatap.name๊ณผ whatap.type์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.service.whatap.io ๋กœ๊ทธ์ธ > ํ”„๋กœ์ ํŠธ ์„ ํƒ > ์„œ๋ฒ„ ๋ฉ”๋‰ด ์„ ํƒ > ๋”๋ณด๊ธฐ > Boot Environment ๋ฉ”๋‰ด ์„ ํƒ์„ ํ†ตํ•ด ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

whatap.type์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ์ข…๋ฅ˜๊ฐ€ ๋ช…์‹œ๋˜์–ด์•ผ ํ•˜๋ฉฐ, whatap.name์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ€ container์ด๋ฆ„ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Figure 22. Boot Environment

8.1.7. JettyJVM ์˜ต์…˜์— -javaagent์™€ -Dwhatap.port๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 74

Page 78: Java Agent Guide - WhaTap Inc

$JETTY_HOME/bin/jetty.sh ํŒŒ์ผ์— JVM ํŒŒ์ผ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Figure 23. jetty.sh

๋˜๋Š”, ์˜ต์…˜์„ ์ ์šฉํ•˜์—ฌ Jetty๋ฅผ ๊ธฐ๋™ํ•ฉ๋‹ˆ๋‹ค.

Start Jetty without startup shell

$ java -javaagent:/home/vagrant/whatap/whatap.agent.tracer-0.3.0.jar -Dwhatap.port=8080 -jar start.jar &

8.1.8. Resin1. Resin ์„ค์ • ํŒŒ์ผ์—์„œ JVM ์˜ต์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ํŒŒ์ผ ์œ„์น˜

Resin 4.x $RESIN_HOME/conf/resin.properties ์—์„œ jvm-arg๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ -javaagent์˜ต์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Resin4.x

(์ค‘๋žต)<resin xmlns="http://caucho.com/ns/resin">  <cluster id="web-tier">  <server-default>  <jvm-arg>-Xmx1024m -XX:MaxPermSize=128m -javaagent:/whatap/whatap.agent.tracer-#.#.#.jar</jvm-arg>  </server-default>  ...  </cluster></resin>(์ค‘๋žต)

2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ ํ•ฉ๋‹ˆ๋‹ค.

3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋กœ๊ทธ์™€ ์—์ด์ „ํŠธ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ธฐ๋™ ๋˜์—ˆ๋Š”์ง€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋กœ๊ทธ ํŒŒ์ผ ์œ„์น˜

์—์ด์ „ํŠธ $WHATAP_HOME/logs/whatap-{SERVER_NAME}-{DATE}.log

RESIN4.x $RESIN_HOME/log/jvm-app-#.log

8.1.9. Play$PLAY_HOME/framework/build ์— ์—์ด์ „ํŠธ ์˜ต์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์ž‘/์ค‘์ง€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ๊ณณ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

8.1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ณ„ ์ ์šฉ ์ ˆ์ฐจ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 75

Page 79: Java Agent Guide - WhaTap Inc

$PLAY_HOME/framework/build

#! /usr/bin/env sh

########## WHATAP START ############WHATAP_HOME=/apps/whatapWHATAP_JAR=`ls ${WHATAP_HOME}/whatap.agent.tracer-*.jar | sort | tail -1`JAVA_OPTS="${JAVA_OPTS} -Dwhatap.play2=2.2.6 -javaagent:${WHATAP_JAR} " โ‘ ########## WHATAP END ############

if [ -z "${PLAY_VERSION}" ]; then  PLAY_VERSION="2.2.6"

(์ค‘๋žต)

โ‘  Play๋Š” ๊ธฐ๋ณธ ์„ค์ • ์ด์™ธ -Dwhatap.play2=2.2.6 ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

8.1.10. Liberty${server.config.dir}/jvm.options ์— ์—์ด์ „ํŠธ ์˜ต์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ ์‹ ๊ทœ๋กœ ์ƒ์„ฑ ํ•ฉ๋‹ˆ๋‹ค.

/wasliberty/usr/servers/defaultServer/jvm.options

-javaagent:/app/whatap/whatap.agent.tracer-1.6.2.jar-Dorg.osgi.framework.bootdelegation=whatap.* โ‘ 

โ‘  OSGI ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ด๋ฅผ ์œ„ํ•œ ์„ค์ •์„ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค.

8.2. ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆํ‘œ

8.2.1. WASJava ๋ฒ„์ „ ๋ณ„๋กœ ๋‹ค์–‘ํ•œ WAS์—์„œ ์™€ํƒญ ์—์ด์ „ํŠธ ํ˜ธํ™˜์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

ํ‘œ์‹œ๋˜์ง€ ์•Š์€ ๋ฒ„์ „์€ [email protected] ๋กœ ๋ฌธ์˜ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Tomcat

WAS Ver. java se6 (jdk1.6.0) java se7 (jdk1.7.0_80) java se8 (jdk1.8.0_91)

tomcat6 ok ok ok

tomcat7 ok ok ok

tomcat8 not ok ok ok

tomcat9 not ok not ok ok

WAS Ver. open jdk6 (1.6.0_45) open jdk7 (1.7.0_80) open jdk8 (1.8.0_91)

tomcat6 ok ok ok

tomcat7 ok ok ok

tomcat8 not ok ok ok

tomcat9 not ok not ok ok

8.2. ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆํ‘œ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 76

Page 80: Java Agent Guide - WhaTap Inc

WAS Ver. ibm-java-x86_64-60 ibm-java-x86_64-71 ibm-java-x86_64-80

tomcat6 ok ok ok

tomcat7 ok ok ok

tomcat8 not ok ok ok

tomcat9 not ok not ok ok

Jeus

WAS Ver. java se6 (jdk1.6.0) java se7 (jdk1.7.0_80) java se8 (jdk1.8.0_91)

jeus6 ok ok not ok

jeus7 ok ok not ok

WAS Ver. open jdk6 (1.6.0_45) open jdk7 (1.7.0_80) open jdk8 (1.8.0_91)

jeus6 ok ok not ok

jeus7 ok ok not ok

WAS Ver. ibm-java-x86_64-60 ibm-java-x86_64-71 ibm-java-x86_64-80

jeus6 ok ok not ok

jeus7 ok ok ok

WebLogic

์—…๋ฐ์ดํŠธ ์˜ˆ์ •

WebSphere

WAS Ver. ibm-java-x86_64-60

8.5.5.10 ok

JBOSS

JDK 6 ์ด์ƒ ๋ฒ„์ „์—์„œ ์ง€์›๋˜๋Š” JBOSS Comunity, EAP, Wildfly์˜ ๋ชจ๋“  ๋ฒ„์ „์„ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค.

WAS Ver. java se6 (jdk1.6.0) java se7 (jdk1.7.0_80) java se8 (jdk1.8.0_91)

jboss EAP 7.0 (standalone) not ok not ok ok

jboss EAP 6.1.1 (standalone) not ok ok not ok

jboss EAP 6.2 (standalone) not ok ok ok

jboss EAP 6.3 (standalone) not ok ok ok

jboss EAP 6.4 (standalone) not ok ok ok

jboss EAP 7.0 (domain) not ok not ok ok

jboss AS 5.1.0 (default) ok ok ok

8.2. ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆํ‘œ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 77

Page 81: Java Agent Guide - WhaTap Inc

WAS Ver. open jdk6 (1.6.0_45) open jdk7 (1.7.0_80) open jdk8 (1.8.0_91)

jboss EAP 7.0 (standalone) not ok not ok ok

jboss EAP 6.1.1 (standalone) not ok ok not ok

jboss EAP 6.2 (standalone) not ok ok ok

jboss EAP 6.3 (standalone) not ok ok ok

jboss EAP 6.4 (standalone) not ok ok ok

jboss EAP 7.0 (domain) not ok not ok ok

jboss AS 5.1.0 (default) ok ok ok

WAS Ver. ibm-java-x86_64-60 ibm-java-x86_64-71 ibm-java-x86_64-80

jboss EAP 7.0 (standalone) not ok not ok ok

jboss EAP 6.1.1 (standalone) not ok ok not ok

jboss EAP 6.2 (standalone) not ok ok ok

jboss EAP 6.3 (standalone) not ok ok ok

jboss EAP 6.4 (standalone) not ok ok ok

jboss EAP 7.0 (domain)

jboss AS 5.1.0 (default) ok ok ok

Jetty

WAS Ver. java se6 (jdk1.6.0) java se7 (jdk1.7.0_80) java se8 (jdk1.8.0_91)

Jetty 8.1.21 not ok ok ok

Jetty 9.2.18 not ok ok ok

Jetty 9.3.12 not ok not ok ok

WAS Ver. ibm-java-x86_64-60 ibm-java-x86_64-71 ibm-java-x86_64-80

Jetty 8.1.21 not ok ok ok

Jetty 9.2.18 not ok ok ok

Jetty 9.3.12 not ok not ok ok

8.2.2. DataSource์™€ํƒญ ์—์ด์ „ํŠธ๊ฐ€ WAS๊ฐ€ ์ œ๊ณตํ•˜๋Š” Connection pool์„ ์‚ฌ์šฉํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ DB ํŠธ๋žœ์žญ์…˜ ํ”„๋กœํŒŒ์ผ๋ง ๊ธฐ๋Šฅ ์—ฌ๋ถ€์— ๋Œ€ํ•ด ๊ฒ€์ฆํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

Tomcat

DB JDBC Driver ํ™”์ผ๋ช… JDBC Ver. JDK Ver. ํ˜ธํ™˜์„ฑ

Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok

MariaDB mariadb-java-client-1.4.6.jar 1.4.6 JDK 1.7.0_80 ok

PostgreSQL postgresql-9.4.1209.jre7.jar 9.4.1209 JDK 1.7.0_80 ok

8.2. ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆํ‘œ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 78

Page 82: Java Agent Guide - WhaTap Inc

AWS aurora mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok

Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok

DB2 db2jcc.jar, db2jcc_license_cu.jar 1.4.2 JDK 1.7.0_80 ok

Jeus

DB JDBC Driver ํ™”์ผ๋ช… JDBC Ver. JDK Ver. ํ˜ธํ™˜์„ฑ

Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok

MariaDB mariadb-java-client-1.4.6.jar 1.4.6 JDK 1.7.0_80 ok

PostgreSQL postgresql-9.4.1209.jre7.jar 9.4.1209 JDK 1.7.0_80 ok

AWS aurora mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok

Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok

DB2 db2jcc.jar, db2jcc_license_cu.jar 1.4.2 JDK 1.7.0_80 ok

WebLogic

DB JDK Ver. ํ˜ธํ™˜์„ฑ

Mysql JDK 1.8.0_91 ok

WebSphere

DB JDBC Driver ํ™”์ผ๋ช… JDBC Ver. JDK Ver. ํ˜ธํ™˜์„ฑ

Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok

Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok

JBoss

DB JDBC Driver ํ™”์ผ๋ช… JDBC Ver. JDK Ver. ํ˜ธํ™˜์„ฑ

Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok

MariaDB mariadb-java-client-1.4.6.jar 1.4.6 JDK 1.7.0_80 ok

PostgreSQL postgresql-9.4.1209.jre7.jar 9.4.1209 JDK 1.7.0_80 ok

AWS aurora mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok

Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok

DB2 db2jcc.jar, db2jcc_license_cu.jar 1.4.2 JDK 1.7.0_80 ok

Jetty

DB JDBC Driver ํ™”์ผ๋ช… JDBC Ver. JDK Ver. ํ˜ธํ™˜์„ฑ

Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok

Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok

8.2. ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆํ‘œ

Copyright โ“’ 2019 WhaTap Labs Inc. All rights reserved. 79