ã¨ã³ã¸ãã¢ã§ã¯ãªãããã°ã©ãã¨å¼ã°ããã@cubicdaiyaã§ããä»åã¯ã¡ã«ã«ãªã®ãã°åæåºç¤ã®ã話ã§ãã
ã¡ã«ã«ãªã«ããããã°ãã¼ã¿åæ
ã¡ã«ã«ãªã§ã¯åæã®é ãããã°ãã¼ã¿ã®åæããµã¼ãã¹ã®æé·ã«ã¨ã£ã¦éè¦ãªã¿ã¹ã¯ã¨ãã¦ä½ç½®ã¥ãããã®ããã®åºç¤ä½ãã«åãçµãã§ãã¾ããããã°ã®ç¨®é¡ã¯ããã¤ãããã¾ãããä¸ã§ã代表çãªã®ãã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã§åºåãããã¢ã¯ã»ã¹ãã°ãã¢ããªã±ã¼ã·ã§ã³åºæã®ãã°ã§ãããããã®ãã°ã¯ãµã¤ãºã大ããã®ã§å¹çè¯ããã°ãã¼ã¿ã転éããããã®å·¥å¤«ãå¿ è¦ã«ãªãã¾ããããã§æ´»èºããã®ãFluentdã§ãã
大éæã«èª¬æããã¨ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã§åºåããããã°ã¯Fluentdããæçµçã«BigQueryãTreasure Dataã¨ãã£ãã¯ã©ã¦ããµã¼ãã¹ã«è»¢éããã¾ãã(ä¸è¨ã®å³ã¯é常ã«ç°¡åã«æ¸ã¾ãã¦ãã¾ãããå®éã«ã¯ãã°ã®ä¸ç¶ããã£ã«ã¿ãªã³ã°ãããããã®FluentdãNorikraãKibanaã¨ãã£ãã³ã³ãã¼ãã³ãããã£ã¦ããå°ãè¤éã§ãã)
ãã°ãã¼ã¿åæã®ããã®ã¤ã³ãã©ã®éç¨ã¯ã¤ã³ãã©ãã¼ã ãæ å½ããå®éã®ãã¼ã¿åæã¯ä¸»ã«ãã£ã¬ã¯ã¿ã¼ããã¼ã¿ãµã¤ã¨ã³ãã£ã¹ãã®ãã¼ã ãè¡ãã¾ããã¾ããä¸å ·åçã®èª¿æ»ã®ããã«éçºè ãå©ç¨ãããã¨ãããããã¾ãã
ã¡ã«ã«ãªã«ã¯ãã以å¤ã«ãè²ã ãªãã°ãã¼ã¿ã®éè¨ãå¯è¦åãã¬ãã¼ãã£ã³ã°ã®ä»çµã¿ãç¨æããã¦ãã¾ãããã®ä¸ä¾ãæããã¨ã
- ã¡ã¼ã«ã«ããKPIã®ãã¤ãªã¼ã¬ãã¼ã
- MySQLãå©ç¨ããåæç¨ãã¼ã¿ãã¼ã¹
- Web UIã«ããçµ±è¨ããã·ã¥ãã¼ã
- å¤é¨ã®åæãã¼ã«å©ç¨
ã¨ãã£ãå ·åã§ãã
Pascalãç¬èªã®ãã°åæåºç¤ã®æ§ç¯ã
ã¡ã«ã«ãªã§ã¯ããã¾ã§ä¸è¨ã§æããè¤æ°ã®ãã°ãã¼ã¿åæã®ä»çµã¿ãæ§ç¯ã»éç¨ãã¦ãã¾ãããã次ã®ãããªèª²é¡ãåºã¦ãã¾ããã
- å種KPIãåæã«å¿ è¦ãªå ãã¼ã¿ãåæ£
- ã¢ã¯ã»ã¹ãã°ã¯çãã¼ã¿ãªã®ã§å ã åæã«å©ç¨ããã®ã«ã¯åãã¦ãªãã¦ä½¿ãã¥ãã(ã³ãããã)
- å¤é¨ã®åæãã¼ã«ã ã¨æ軽ã«éè¨ã»å¯è¦åãã§ããä¸æ¹ãç´°ããé¨åã詳ãã調ã¹ããä»ã®ãã¼ã¿ããã¼ã«ã¨çµã¿åãããã®ãé£ãã
ããã§åæã«é©ãããã°ãä¸ããè¨è¨ã»éè¨ãã¦åæãã¼ã«ã¨çµã¿åããã¦ä½¿ããããã«ããããã¨ãããã¨ã§æ°ãããã°åæåºç¤ãæ§ç¯ãããã¨ã«ãªãã¾ããã
ãã®åæåºç¤ã¯ç¤¾å
ã§ã¯Pascalã¨å¼ã°ãã¦ãããã®ã§æ¢ã«ä»å¹´ã®å¤ãã稼åãéå§ãã¦ãããã¿ãããç»é¢é·ç§»ã¨ãã£ãã¢ããªå
ã¤ãã³ããA/Bãã¹ãã®ããã®ãã°ãã¼ã¿åæåºç¤ã¨ãã£ãå½¢ã§é©ç¨ããé åãå¾ã
ã«åºãã¦ãã¾ãã
Pascalã¯ä»¥ä¸ã®ã³ã³ãã¼ãã³ãã§æ§æããã¦ãã¾ãã
- Puree (iOSãAndroidã¢ããªã®ããã®ãã°ã³ã¬ã¯ã¿)
- OpenResty (ngx_luaãã¼ã¹ã®ã¢ããªã±ã¼ã·ã§ã³ãã¬ã¼ã ã¯ã¼ã¯)
- Fluentd
- BigQuery
以ä¸ã¯Pascalã®å¦çã®æµããå³ç¤ºãããã®ã§ãã
Puree
Pureeã¯ã¯ãã¯ããã社ãOSSã§å ¬éãã¦ããã¹ãã¼ããã©ã³ã¢ããªåãã®ãã°ã³ã¬ã¯ã¿ã§ãã端æ«ã®éä¿¡ç¶æ³ãããããªããã¼ã¿ä½¿ç¨éã¨ãã£ãã¹ãã¼ããã©ã³ã¢ããªãªãã§ã¯ã®æè¡ç課é¡ãèæ ®ãã¦è¨è¨ããã¦ããã®ãç¹å¾´ã§ããiOS, Androidã§ã»ã¼åãæ¡ä»¶ã§ãã°ãã¼ã¿ãåå¾ãããã¨ãã§ãããã¨ãåå¾ããããã°ãã¼ã¿ã®ã«ã¹ã¿ãã¤ãºã容æãªãã¨ããæ¡ç¨ããã¾ããã(åèï¼ã¢ãã¤ã«ã¢ããªã®ãã°åéã©ã¤ãã©ãªãPureeãããªãªã¼ã¹ãã¾ãã)
OpenResty
OpenRestyã¯ngx_luaããã¼ã¹ã«ããã¢ããªã±ã¼ã·ã§ã³ãã¬ã¼ã ã¯ã¼ã¯ã§ããngx_luaåãã®ä¾¿å©ãªã¢ã¸ã¥ã¼ã«ãLuaã¨LuaJITãnginxã®ãµã¼ããã¼ãã£ã¢ã¸ã¥ã¼ã«ããã³ãã«ããã¦ããnginxã®ã¹ã¼ãã¼ã»ããã¨ãè¨ãããã¬ã¼ã ã¯ã¼ã¯ã§ããé常ã«é«éã§ãªããã¤ãã³ããããã³ã°ã¢ã¼ããã¯ãã£ã§ã¹ã±ã¼ã©ããªãã£ã®é«ãnginxã®å¼·ã¿ã享åã§ããåªããã®ã§ãã
Pascalã§ã¯PureeããJSONã§éããã¦ããã¤ãã³ãåãå解ãã¦ã¤ãã³ãã®ç¨®é¡(ãã£ã³ãã«ã¨å¼ãã§ãã¾ã)æ¯ã«ãã°ãåºåããå½¹å²ãæ ã£ã¦ãã¾ãã
Pascalã®å¦çã®æµã
Pascalã§ã¯ã¢ããªå ã®ã¤ãã³ããã¼ã¿ãããç¨åº¦æºã¾ãã¨Pureeã«ãã£ã¦ãã©ãã·ã¥ãããOpenRestyã§æ§ç¯ãããã¨ã³ããã¤ã³ãã«è»¢éããã¾ãã
åã¨ã³ããã¤ã³ãã§ã¯JSONã¨ãã¦éããã¦ããã¤ãã³ããã¼ã¿ãå解ãã¦ãã£ã³ãã«æ¯ã«Fluentdã§ã¿ã°ä»ããã¦æçµçã«BigQueryã«æ ¼ç´ãã¾ãã
BigQueryã«æ ¼ç´ããéãæµéã®å¤ããã°ãã¼ã¿ã¯ä¸æ¦ãã¡ã¤ã«ã«æ¸ãåºãã¦å®æçã«ãããã§æå ¥ããæµéãå°ãªãã®ãã°ãã¼ã¿ã¯fluent-plugin-bigqueryã§æå ¥ãããã¨ã§ã³ã¹ãã¨å©ä¾¿æ§ã®ãã©ã³ã¹ãåã£ã¦ãã¾ãã
ãããã«
ã¡ã«ã«ãªã§ã¯ãããã®ãã°åæåºç¤ã®æ¹åã»å¼·åã«åãçµãã¨ã³ã¸ãã¢ãæ°ããªãã¼ã¿åæã®ä»çµã¿ã®èæ¡ããã°åæåºç¤ãéãã¦ãµã¼ãã¹ã®æ½å¨çãªèª²é¡ããã¼ãºãè¦åºãã解決æ¡ãææ¡ã»æ½è¡ãããã¼ã¿ãµã¤ã¨ã³ãã£ã¹ããåéãã¦ãã¾ãã
ã¾ãããããã®åéã«éããã¡ã«ã«ãªã§ã¯å¸¸ã«åªç§ãªã¨ã³ã¸ãã¢ãåéãã¦ãã¾ããèå³ãæãããæ¹ã¯ãã²ãå¿åãã ããã