ÃֽŠ°Ô½Ã±Û(OS/WAS)
2018.11.19 / 15:17

Open source APM Scouter·Î ¸ð´ÏÅ͸µ Àß Çϱâ

hanulbit
Ãßõ ¼ö 176

Open source APM Scouter·Î ¸ð´ÏÅ͸µ Àß Çϱâ

  1. 1. gunlee01@gmail.com SCOUTER Ä¿¹ÌÅÍ ÀÌ°ÇÈñ Open Source APM SCOUTER·Î ¸ð´ÏÅ͸µ Àß~ Çϱâ
  2. 2. SCOUTER ?
  3. 3. SCOUTER ? APM - Application performance management
  4. 4. SCOUTER ? È­¸éÀº ÀÌ·± ¸ð¾çÀÌ´Ù.
  5. 5. SCOUTER ? ??!
  6. 6. SCOUTER ? ¾ÆÅ°ÅØó´Â? Agent, Collector, Client WAS Java Agent WEB application Host Agent Scouter Collector Server ¼º´É Á¤º¸ Àü¼Û ¼ºÁõÁ¤º¸ ¼öÁý Scouter Client¼º´ÉÁ¤º¸ ¿äû
  7. 7. SCOUTER ? Why APM?
  8. 8. SCOUTER ? Why APM? ¿Ö ¾îÇø®ÄÉÀÌ¼Ç ¸ð´ÏÅ͸µÀÌ ÇÊ¿äÇÑ°¡?
  9. 9. SCOUTER ? Why APM? ¿Ö ¾îÇø®ÄÉÀÌ¼Ç ¸ð´ÏÅ͸µÀ» Àß ÇÏ´Â°Ô ÇÊ¿äÇÑ°¡?
  10. 10. SCOUTER ? ´ëºÎºÐÀÇ ¹®Á¦ ¿øÀÎÀº Application !
  11. 11. SCOUTER ? ¹®Á¦ÀÇ ½Äº° - ¾îÇø®ÄÉÀÌ¼Ç ¸ð´ÏÅ͸µ ¹®Á¦ÀÇ ÇØ°á - ¾îÇø®ÄÉÀÌ¼Ç Æ©´×
  12. 12. SCOUTER ? ¾Æ´Â ¸¸Å­ º¸ÀÌ°í º¸ÀÌ´Â ¸¸Å­ °³¼±ÇÒ ¼ö ÀÖ´Ù. - By À¯¸íÀÎ -
  13. 13. SCOUTER ? ¾Æ´Â ¸¸Å­ º¸ÀÌ°í º¸ÀÌ´Â ¸¸Å­ °³¼±ÇÒ ¼ö ÀÖ´Ù. - By À¯¸íÀÎ -
  14. 14. SCOUTER ? ¸ô¶óµµ º¸ÀÌ°í ~ º¸ÀÌ´Â ¸¸Å­ °³¼±ÇÒ ¼ö ÀÖ´Ù. - By Scouter -
  15. 15. SCOUTER ? Application ÀÚ¿ø ¸ð´ÏÅ͸µ Process CPU Heap memory GC Datasource Pool
  16. 16. SCOUTER ? Active Service
  17. 17. SCOUTER ? Active Service
  18. 18. SCOUTER ? ºÐÆ÷µµ Â÷Æ® (XLog) pinwheal windmill
  19. 19. SCOUTER ? ¼­ºñ½º ¼öÇà ¸Þ¼Òµå ¼öÇà Äõ¸® »ó¼¼ Profile
  20. 20. SCOUTER ?
  21. 21. Á¶±Ý ´õ µé¾î°¡ º¸°Ú½À´Ï´Ù.
  22. 22. SCOUTER for service architecture ¼­ºñ½º ¾ÆÅ°ÅØó - SOA - MSA
  23. 23. SCOUTER for service architecture
  24. 24. SCOUTER for service architecture °ü°èÀÇ º¹À⼺À¸·Î ÀÎÇÑ ¹®Á¦.
  25. 25. SCOUTER for service architecture °ü°èÀÇ º¹À⼺À¸·Î ÀÎÇÑ ¹®Á¦. ´ëÇ¥ÀûÀ¸·Î Cascading failure
  26. 26. SCOUTER for service architecture Cascading failure Ref. https://github.com/Netflix/Hystrix/wiki
  27. 27. SCOUTER for service architecture Cascading failure Ref. https://github.com/Netflix/Hystrix/wiki
  28. 28. SCOUTER for service architecture Cascading failure Ref. https://github.com/Netflix/Hystrix/wiki
  29. 29. SCOUTER for service architecture ³»²¨ ÀÎµí ³»²¨ ¾Æ´Ñ ³»²¨ °°Àº Àå¾Ö¡¦
  30. 30. SCOUTER for service architecture ÇÊ¿äÇÑ °ÍÀº?
  31. 31. SCOUTER for service architecture ÇÊ¿äÇÑ °ÍÀº °³¹ß¿¡¼± Anti-fragile patterns ¸ð´ÏÅ͸µ¿¡¼± Cross Service Tracing
  32. 32. SCOUTER for service architecture Cross service tracing
  33. 33. SCOUTER advanced Scouter plugin Simple Scripting Plugin !
  34. 34. SCOUTER advanced 1) Agent Plugin 2) Collector server Plugin
  35. 35. SCOUTER advanced »ç¿ëÀÚ ¿äûÀ» ¹Þ´Â Front Service¿¡¼­ Å׳ÍÆ®ID¸¦ ÃßÃâÇÏ¿© ÇÁ·ÎÆÄÀÏ ÇÏ°í Backend Service·Î È£Ãâ½Ã Àü´ÞÇÏ°í ½Í´Ù. Backend Serviceµé ¿¡¼­µµ Àü´ÞµÈ Å׳ÍÆ® ID¸¦ ÇÁ·ÎÆÄÀÏ ÇÏ°í Áö¼ÓÀûÀ¸·Î Àü´ÞÇÏ°í ½Í´Ù. ±×¸®°í ƯÁ¤ ÇÁ·ÎÆÄÀÏ Á¤º¸´Â ÀÚü Áý°è ½Ã½ºÅÛÀ¸·Î ¸ðÀ¸°í ½Í´Ù.
  36. 36. SCOUTER advanced Agent Plugin Http Service plugin Http Call Plugin Capture(parameter, return value) ¡¦
  37. 37. SCOUTER advanced Collector server Plugin ¼öÁý µ¥ÀÌÅÍ Àüó¸®
  38. 38. SCOUTER advanced Agent PluginÀ» ÅëÇÑ »ç¿ëÀÚID ÇÁ·ÎÆÄÀÏ Çغ¸ÀÚ! Java ¹®¹ýÀ» ÅëÇÑ scripting
  39. 39. SCOUTER advanced Java Agent ¡© Http service plugin 1. ¼¼¼Ç¿¡¼­ user id ȹµæ String userId = $req.getSessionAttribute(¡°userId¡±);
  40. 40. SCOUTER advanced Java Agent ¡© Http service plugin 2. XLog Ç׸ñ¿¡ id·Î Ãß°¡ $ctx.login(userId);
  41. 41. SCOUTER advanced Java Agent ¡© Http service plugin 3. Profile¿¡ »ç¿ëÀÚ Á¤ÀÇ ¹®Àå ±âÀÔ $ctx.profile(¡°Login ID = ¡± + userId);
  42. 42. SCOUTER advanced $ctx.login(userId); $ctx.profile(¡°### It¡¯s user defined ¡¦¡± + userId);
  43. 43. SCOUTER advanced »ç¿ëÀÚ ¿äûÀ» ¹Þ´Â Front Service¿¡¼­ 1) Å׳ÍÆ®ID¸¦ ÃßÃâÇÏ¿© ÇÁ·ÎÆÄÀÏ ÇÏ°í Backend 2) Service·Î È£Ãâ½Ã Å׳ÍÆ®ID¸¦ Àü´ÞÇÏ°í ½Í´Ù. Backend Serviceµé ¿¡¼­µµ 3) Àü´ÞµÈ Å׳ÍÆ® ID¸¦ ÇÁ·ÎÆÄÀÏ ÇÏ°í Áö¼ÓÀûÀ¸·Î Àü´ÞÇÏ°í ½Í´Ù. ±×¸®°í ƯÁ¤ ÇÁ·ÎÆÄÀÏ Á¤º¸´Â 4) ÀÚü Áý°è ½Ã½ºÅÛÀ¸·Î ¸ðÀ¸°í ½Í´Ù.
  44. 44. Plugin Service (Back) Scouter Agent Service (Back) Scouter Agent SCOUTER advanced Service (Front) Scouter Agent Service (Back) Scouter Agent <Http Service Plugin> 1) Req.¿¡¼­ Å׳ÍÆ®ID ½Äº° -- ÇÁ·ÎÆÄÀϸµ <Http Call Plugin> 2) Http Call Çì´õ¿¡ Å׳ÍÆ® ID Ãß°¡ <Http Service Plugin> 3) Http Çì´õ¿¡¼­ Å׳ÍÆ® ID ½Äº° -- ÇÁ·ÎÆÄÀÏ¿¡ ¹Ý¿µ Scouter Collector ¼º´ÉÁ¤º¸¼öÁý Apache Kafka Legacy ºÐ¼®°è <Collector Plugin> 4) Å׳ÍÆ® ID¸¦ Æ÷ÇÔÇÑ ÇÁ·ÎÆÄÀÏÀ» Kafka·Î Àü´Þ S t O r m InfluxDB RDB Hbase Legacy Dashboard
  45. 45. SCOUTER Application ¸ð´ÏÅ͸µ, Application Tuning (º¸ÀÌ´Â ¸¸Å­ °³¼±ÇÒ ¼ö ÀÖ´Ù.) ±×¸®°í¡¦ Á¤¸®ÇØ º¸ÀÚ!
  46. 46. SCOUTER ±×¸®°í.. Simple scripting PluginÀ» È°¿ëÇÏ¿© Centralized logging / monitoring ¹°·Ð ApplicationÀÇ ¼öÁ¤ ¾øÀÌ¡¦
  47. 47. SCOUTER°¡ ÇÏ°í ½ÍÀº °Í ¿ÀÇ ¼Ò½º Áß½ÉÀÇ ¸ð´ÏÅ͸µ
  48. 48. SCOUTER°¡ ÇÏ°í ½ÍÀº °Í ¿ÀÇ ¼Ò½º Áß½ÉÀÇ ÅëÇÕ ¸ð´ÏÅ͸µ node.js(w/ express.js) Apache HTTPD Redis / memcached NoSQL(Mongo DB¡¦) Opensource RDB (Maria, Cubrid¡¦) Client side monitoring(script error, dom rendering) ¡¦
  49. 49. SCOUTER¿¡ ±â¿©Çϱâ Github https://github.com/scouter-project/scouter Facebook »ç¿ëÀÚ ¸ðÀÓ https://www.facebook.com/groups/scouterapm
  50. 50. °¨»çÇÕ´Ï´Ù Q&A or Later gunlee01@gmail.com