- Zabbix-ããã§åœŒã«ã€ããŠå€ãã®èšäºãæžãããŠããŸã äœã¬ãã«ã®æ€åºæ©èœã¯éåžžã«æ°ã«å ¥ã£ãŠããŸãããããŒã¿ã®èŠèŠåæ©èœã¯è²§åŒ±ã§ãã
- ã°ã©ãã¡ã€ãã¯ããŒã¿ãä¿åããã·ã¹ãã ã§ãããããŒã¿ã衚瀺ããããã®äŸ¿å©ãªã€ã³ã¿ãŒãã§ãŒã¹ãåããŠããŸãã 次ã«ãZabbixããã¡ããªãã¯ãã€ã³ããŒãããŠãå±¥æŽãä¿åããŸãã
- Shinkenã¯ãNagiosã«åºã¥ããŠãããPythonã§èšè¿°ãããç£èŠã·ã¹ãã ã§ãã ä»ãç§ãã¡ã¯åœŒå¥³ãèŠãŠããŸãã Netdotãããã¯ãŒã¯ããã¥ã¡ã³ããŒã·ã§ã³ã·ã¹ãã ããããŒã¿ãã€ã³ããŒãããã®ã¯éåžžã«ç°¡åã§ïŒåã«æžããŸããïŒãGraphiteãšç°¡åã«çµ±åã§ããããšãæ°ã«å ¥ã£ãŠããŸãã
ããŸããŸãªç£èŠã·ã¹ãã ã®é·æ/çæã«ã€ããŠé·ãéè°è«ããããšã¯å¯èœã§ãããç§ã¯ãã äžã€ã®åé¡ãã€ãŸãç°åžžã®ç¹å®ã«å°å¿µããããšæããŸãã ç£èŠã·ã¹ãã å ã®ã¡ããªãã¯ã®æ°ãæ°çŸåäœã§æž¬å®ãããå Žåã1ã€ä»¥äžã®ã¡ããªãã¯ã®ç°åžžãªåäœã远跡ããããšã¯é£ãããããŸããã ããããã¡ããªãã¯ã®æ°ãæ°äžãŸãã¯æ°åäžåäœã§æž¬å®ãããå Žåãç°åžžãèªåçã«æ€åºããåé¡ãéèŠã«ãªããŸãã 管çè ãŸãã¯ç®¡çè ã°ã«ãŒãã¯ãäœçŸãã®ããã€ã¹ãããªãè€éãªã·ã¹ãã ã®åäœãæåã§è¿œè·¡ã§ããŸããã
Etsyãšã³ãžãã¢ã¯ãã€ãŠãã®åé¡ã«ééããç°åžžãæ€åºããŠçžé¢ãããç¬èªã®ããŒã«ãéçºããŸããã ã±ãŒã«ãšåŒã°ãã2ã€ã®éšåã§æ§æãããŠããŸãã
åéšåããã詳现ã«æ€èšããŠãã ããã
ã¹ã«ã€ã©ã€ã³
Skylineã¯ããªã¢ã«ã¿ã€ã ã®ç°åžžæ€åºã·ã¹ãã ã§ãã æ°åäžã®ã¡ããªãã¯ãååçã«ç£èŠããããã«äœæããããã®ã§ãåã¡ããªãã¯ã«ãããå€ãèšå®ããå¿ èŠã¯ãããŸããã ããã¯ãç£èŠã·ã¹ãã ã§ããªã¬ãŒãããå€ãæåã§èšå®ããå¿ èŠããªãããšãæå³ããŸããã·ã¹ãã ã¯ãå ¥åãããããŒã¿ãèªåçã«åæããããã«çµã¿èŸŒãŸããããã€ãã®ã¢ã«ãŽãªãºã ã«åºã¥ããŠããã®ããŒã¿ã®ãç°åžžãªæ§è³ªãã«ã€ããŠæ±ºå®ããŸãã

ã¹ã«ã€ã©ã€ã³ã¯ããã€ãã®ã³ã³ããŒãã³ãã§æ§æãããŠããŸãã
å°å¹³ç·
Horizoâânã¯ãããŒã¿ã®åéãæ åœããã³ã³ããŒãã³ãã§ãã pickleïŒTCPïŒãšMessagePackïŒUDPïŒã®2ã€ã®åœ¢åŒã®ããŒã¿ãåãå ¥ããŸãã
ãããã£ãŠã次ã®ãã§ãŒã³ãæ§æã§ããŸããç£èŠã·ã¹ãã ã¯ããmetric_name time_stamp_valueãã®åœ¢åŒã§ããŒã¿ãGraphiteã«éä¿¡ããŸãã ã°ã©ãã¡ã€ãåŽã§ã¯ã ã«ãŒãã³ãªã¬ãŒãæ©èœãããã¯ã«ã¹ããŒã¿ãHorizoâânã«éä¿¡ãããŸãã 次ã«ãHorizoâânã¯ããŒã¿ãåä¿¡ããåŸããããåŠçããMessagePackã䜿çšããŠãšã³ã³ãŒãããRedisã«éä¿¡ããŸãã ãŸãã¯ãç£èŠã·ã¹ãã ãæ§æããŠãããŒã¿ãHorizoâânã«çŽæ¥éä¿¡ããMessagePack圢åŒã§äºåã«ãšã³ã³ãŒãããããšãã§ããŸãã ããã«ãææ°ã®ããã°ã©ãã³ã°èšèªã®ã»ãšãã©ã®èšèªã«ã¯ã MessagePackãæäœããããã®ã¢ãžã¥ãŒã«ããããŸãã
ãŸããHorizoâânã¯å€ãã¡ããªã¯ã¹ãå®æçã«ããªãã³ã°ããã³åé€ããŸãã ãããè¡ããªããšããã¹ãŠã®ç©ºãã¡ã¢ãªãããã«äœ¿ãæããããŸãã
èšå®ã§ã¯ãç¡èŠãããã¡ããªãã¯ã®ãªã¹ããæå®ããããšãã§ããŸãã
ã¬ãã£ã¹
Redisã¯å¥ã®ã³ã³ããŒãã³ãã§ãããSkylineã¯ãããªãã§ã¯æ©èœããŸããã ãã®äžã«ã圌ã¯ãã¹ãŠã®ã¡ããªãã¯ãšãšã³ã³ãŒããããæç³»åãä¿åããŸãã
ãã®ãœãªã¥ãŒã·ã§ã³ã«ã¯é·æãšçæããããŸãã äžæ¹ã§ã¯ãRedisã¯ãã¹ãŠã®ããŒã¿ãRAMã«ä¿åããããããé«ãããã©ãŒãã³ã¹ãçºæ®ããŸãã ããŒã¿ã¯ãããŒ-å€ãã®åœ¢åŒã§ä¿åãããŸããããŒã¯ã¡ããªãã¯ã®ååã§ãå€ã¯ããã«å¯Ÿå¿ãããšã³ã³ãŒããããæç³»åã§ãã äžæ¹ãRedisã¯éåžžã«é·ãã©ã€ã³ã§è²§åŒ±ãªä»äºãããŠããŸãã æååãé·ãã»ã©ãããã©ãŒãã³ã¹ã¯äœäžããŸãã å®è·µã瀺ããŠããããã«ã1æ¥/ 2æ¥ä»¥äžããŒã¿ãä¿åããããšã¯æå³ããããŸããã ã»ãšãã©ã®ã·ã¹ãã ã§ã¯ãããŒã¿ã«ã¯1æéããšã1æ¥ããšã1é±éããšã1ãæããšã®é »åºŠããããŸãã ãã ããæ°é±éãŸãã¯æ°ãæéããŒã¿ãä¿åãããšãRedisã®ããã©ãŒãã³ã¹ã¯éåžžã«äœããªããŸãã ãã®åé¡ã解決ããã«ã¯ãããšãã°redis-timeseriesã©ã€ãã©ãªãªã©ã䜿çšããŠãæç³»åãä¿åããå¥ã®æ¹æ³ã䜿çšã§ããŸãã
ã¢ãã©ã€ã¶ãŒ
ã¢ãã©ã€ã¶ãŒ-ãã®ã³ã³ããŒãã³ãã¯ããŒã¿åæãæ åœããŸãã Redisããã¡ããªãã¯ã®äžè¬ãªã¹ããåãåããããã€ãã®ããã»ã¹ãéå§ããŸããåããã»ã¹ã¯ç¬èªã®ã¡ããªãã¯ãå²ãåœãŠãŸãã åããã»ã¹ã¯ãããã€ãã®ã¢ã«ãŽãªãºã ã䜿çšããŠããŒã¿ãåæããŸãã ã¢ã«ãŽãªãºã ã¯1ã€ãã€ãã¡ããªãã¯ãåæããŠçµæãå ±åããŸã-ã¡ããªãã¯ã¯ç°åžžã§ãããã©ããã ãããã®ã»ãšãã©ããã¡ããªãã¯ã«çŸåšç°åžžããããšå ±åããå Žåãããã¯ç°åžžãšèŠãªãããŸãã 1ã€ãŸãã¯è€æ°ã®ã¢ã«ãŽãªãºã ã®ã¿ããæ祚ããããå Žåãç°åžžã¯ã«ãŠã³ããããŸããã èšå®ã§ãããå€ãæå®ã§ããŸã-ã¡ããªãã¯ãç°åžžãšããŠåé¡ãããåã«åäœããå¿ èŠãããã¢ã«ãŽãªãºã ã®æ°ã ããã©ã«ãã§ã¯ã6ã§ãã
çŸåšã次ã®ã¢ã«ãŽãªãºã ãå®è£ ããŠããŸãã
- å¹³ååå·®ïŒå¹³å絶察åå·®ïŒ;
- ã°ã©ãã¹ã®ãã¹ã
- æåã®1æéã®å¹³åïŒæåã®1æéã®å¹³åïŒã
- å¹³åããã®æšæºåå·®ã
- 移åå¹³åããã®æšæºåå·®ã
- æå°äºä¹æ³;
- ãã¹ãã°ã©ã ã®å€ãå€ïŒãã¹ãã°ã©ã ã®ãã³ïŒ;
- ã³ã«ã¢ãŽããåæåºæºïŒK â Sãã¹ãïŒã
ãããã®ã»ãšãã©ã¯ã ã³ã³ãããŒã«ã«ãŒããš3ã·ã°ãã®ã«ãŒã«ã«åºã¥ããŠããŸãã ãã®èšäºã®æåŸã«ãããªãæçš¿ãããŠããã¬ããŒããããããã€ãã®ã¢ã«ãŽãªãºã ã®åäœåçã«ã€ããŠåŠã¶ããšãã§ããŸãã ãŸããAnton Lebedevich-mabrek.github.ioã®ããã°ã®è³æã«ç²Ÿéããããšããå§ãããŸãã ãŸããSkylineã®éçºã«ãè²¢ç®ããŠããŸãã
ã¢ã«ãŽãªãºã ã¯ãæ°ãããã®ãã«ã¹ã¿ãã€ãºãå€æŽãåé€ããŸãã¯è¿œå ã§ããŸãã ãããã¯ãã¹ãŠã1ã€ã®algorithm.pyãã¡ã€ã«ã«åéãããŸãã èšç®ã§ã¯ã SciPyããã³NumPyã©ã€ãã©ãªã䜿çšããŸãã æåŸã«ã€ããŠã¯ãHabrã«é¢ããè¯ãèšäºããããŸãã
ç°åžžãªããŒã¿ã«å ããŠãããŒã¿åæã®çµæãšããŠæ¬¡ã®ã¹ããŒã¿ã¹ãå²ãåœãŠãããšãã§ããŸãã
- TooShort ïŒæç³»åãçãããŠçµè«ãåºãããšãã§ããŸããã
- äžå®å š ïŒæç³»åã®ç§åäœã®é·ãããèšå®ã§æå®ãããå šæéïŒéåžž86400ç§ïŒãããçãã
- å€ã ïŒæç³»åã¯é·ãéæŽæ°ãããŠããŸããïŒç§åäœã®æéã¯èšå®ã§èšå®ãããŠããŸãïŒã
- éå± ïŒæç³»åã®å€ã¯ãã°ããã®éå€æŽãããŠããŸããïŒèšå®ã§èšå®ïŒã
Webã¢ããªã±ãŒã·ã§ã³ã§ç»åã圢æãããããŒã¿ã«åºã¥ããŠããã¹ãŠã®ç°åžžãªã¡ããªãã¯ããã¡ã€ã«ã«åé¡ãããŸãã
Analyzerã¯éç¥ãéä¿¡ã§ããŸãã çŸåšå©çšå¯èœãªç®æšã¯ãmailã HipChat ã PagerDutyã§ãã
ãã©ã¹ã³webapp
ç°åžžãªã¡ããªãã¯ã衚瀺ããã«ã¯ãFlaskãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠPythonã§äœæãããå°ããªWebã¢ããªã±ãŒã·ã§ã³ã䜿çšãããŸãã ããã¯éåžžã«ç°¡åã§ããäžéšã«ã¯ãéå»1æéãš2æ¥ã®2ã€ã®ã°ã©ãã衚瀺ãããŸãã ã°ã©ãã®äžã«ã¯ããã¹ãŠã®ç°åžžãªã¡ããªãã¯ã®ãªã¹ãããããŸãã ã¡ããªãã¯ã®1ã€ã«ã«ãŒãœã«ãåããããšãã°ã©ãã®å³ãå€ãããŸãã ã¯ãªãã¯ãããšãOculusãŠã£ã³ããŠãéããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
ãªã¯ã«ã¹
Oculusã¯ç°åžžã®çžé¢é¢ä¿ãæ€çŽ¢ããSkylineãšé£åããŠæ©èœããŸãã Skylineãç°åžžãæ€åºããWebã€ã³ã¿ãŒãã§ã€ã¹ã«è¡šç€ºãããšãç°åžžãªã¡ããªãã¯ã®ååãã¯ãªãã¯ãããšãOculusã¯å ã®ã¡ããªãã¯ãšçžé¢ãããã¹ãŠã®ã¡ããªãã¯ã衚瀺ããŸãã

ç°¡åã«èª¬æãããšãæ€çŽ¢ã¢ã«ãŽãªãºã ã¯æ¬¡ã®ããã«èª¬æã§ããŸãã æåã«ãäžé£ã®åæå€ãããšãã°äžé£ã®åœ¢åŒ[960ã350ã350ã432ã390ã76ã105ã715ã715]ãæ£èŠåãããŸããæ倧å€ãæ±ããããŸã-25ã«å¯Ÿå¿ããæå°å€ã0ã«å¯Ÿå¿ããŸãã ãããã£ãŠãããŒã¿ã¯0ãã25ãŸã§ã®æŽæ°ã®å¶éã§æ¯äŸé åãããŸãããã®çµæã [25ã8ã8ã10ã9ã0ã1ã18ã18]ã®åœ¢åŒã®äžé£ã®ããŒã¿ãåŸãããŸãã 次ã«ãæ£èŠåãããã·ãªãŒãºã¯ã sdec ïŒã·ã£ãŒãããŠã³ïŒã dec ïŒããŠã³ïŒã s ïŒæ£ç¢ºïŒã inc ïŒã¢ããïŒã sinc ïŒã·ã£ãŒãã¢ããïŒã®5ã¯ãŒãã䜿çšããŠãšã³ã³ãŒããããŸãã çµæã¯[sdecãflatãincãdecãsdecãincãsincãflat]ã®åœ¢åŒã®ã·ãªãŒãºã§ãã
次ã«ãElasticSearchã䜿çšããŠãå ã®ãã©ãŒã ã«é¡äŒŒãããã¹ãŠã®ã¡ããªãã¯ãæ€çŽ¢ãããŸãã ElasticSearchã®ããŒã¿ã¯æ¬¡ã®ããã«ä¿åãããŸãã
{ fingerprint: dec sinc dec sdec dec sdec sinc values: 13.18 12.72 14.8 14.43 12.95 12.13 6.87 9.67 id: mini.Shinken_server.shinken.CPU_Stats.cpu_all_sys }
æåã«æçŽæ€çŽ¢ãå®è¡ãããŸãã çµæã¯ãµã³ãã«ã§ãããã¡ããªãã¯ã®æ°ã¯åèšæ°ãããæ¡éãã«å°ãªããªããŸãã ããã«ãåæã«ã¯ãå€ã䜿çšããé«éåçæéå€æïŒFastDTWïŒã¢ã«ãŽãªãºã ã䜿çšããŸã ã FastDTWã¢ã«ãŽãªãºã ã«é¢ããè¯ãèšäºããããŸãã
ãã®çµæãèŠã€ãã£ããã¹ãŠã®ã¡ããªãã¯ããå ã®ããŒã¿ãšçžé¢ããããŒã¿ãååŸããŸãã
RedisããããŒã¿ãã€ã³ããŒãããã«ã¯ãRubyã§èšè¿°ãããã¹ã¯ãªããã䜿çšãããŸãã ãã¬ãã£ãã¯ã¹ãminiããæã€ãã¹ãŠã®ã¡ããªãã¯ãååŸãããããããã³ãŒãããæ£èŠåããŠElasticSearchã«ãšã¯ã¹ããŒãããŸãã æŽæ°ããã³ã€ã³ããã¯ã¹äœæäžã«ãElasticSearchæ€çŽ¢ã®é床ãäœäžããŸãã ãããã£ãŠãçµæãé·æéåŸ ããªãããã«ãOculusãå®æçã«åãæ¿ããå¥ã®ã¯ã©ã¹ã¿ãŒã®2ã€ã®ElasticSearchãµãŒããŒã䜿çšãããŸãã
ã°ã©ããæ€çŽ¢ããŠè¡šç€ºããã«ã¯ãSinatraãã¬ãŒã ã¯ãŒã¯ã䜿çšããWebã¢ããªã±ãŒã·ã§ã³ã䜿çšããŸãã ã¡ããªãã¯ã®ååã§æ€çŽ¢ããããç¹å¥ãªãã£ãŒã«ãã«æ²ç·ãæãã ãã§æ€çŽ¢ã§ããŸãã

ãã®çµæã衚瀺ãããããŒãžã衚瀺ãããŸãã
- æ€çŽ¢ãã©ã¡ãŒã¿ãŒã«é¢ããæ å ±ã
- å ã®ã°ã©ãã®ãšã³ã³ãŒããããè¡šçŸã
- ããŒã¿ã以åã«ä¿åãããããŒã¿ãšçžé¢ããå Žåãã³ã¬ã¯ã·ã§ã³ã®ãªã¹ãïŒä»¥äžãåç §ïŒã
- æ€åºãããã°ã©ãã®ãªã¹ããçžé¢ã¹ã³ã¢ã®æé ã§äžŠã¹æ¿ããããŸãïŒã¹ã³ã¢ãå°ããã»ã©ãçžé¢ããããŒã¿ãå€ããªããŸãïŒã

ããŒã¿ããã£ã«ã¿ãŒåŠçãããã ã³ã¬ã¯ã·ã§ã³ã«ã°ã«ãŒãåãããã説æãå ããããã¡ã¢ãªã«ä¿åãããã§ããŸãã ã³ã¬ã¯ã·ã§ã³ã¯ã次ã®å Žåã«äœ¿çšãããŸãã äœããã®ç°åžžãæ€åºãããã®çŸè±¡ã確èªããã°ã©ãã®ãªã¹ããååŸãããšããŸãã ãããã®ã°ã©ããä¿åãã詳现ãªèª¬æãä»ãããšäŸ¿å©ã§ãã çŸåšãåæ§ã®åé¡ãå°æ¥çºçããå ŽåãOculusã¯ãã®ã³ã¬ã¯ã·ã§ã³ãèŠã€ããåè¿°ã®èª¬æã¯ç¹å®ãããåé¡ãæé€ããåå ãšæ¹æ³ãç解ããã®ã«åœ¹ç«ã¡ãŸãã
以äžã®å³ã¯ãã±ãŒã«ã®æäœå³ã瀺ããŠããŸãã

ã€ã³ã¹ããŒã«ãšæ§æã®ããã»ã¹ã¯ãããã»ã©è€éã§ã¯ãªãã Skylineããã³Oculusã®ããã¥ã¡ã³ãã«èšèŒãããŠããããã説æããŸããã
çŸæç¹ã§ã¯ãã·ã¹ãã ããã¹ãã¢ãŒãã§èµ·åããŸããããã¹ãŠã®ã³ã³ããŒãã³ãã1ã€ã®ä»®æ³ãã·ã³ã§åäœããŸãã ãã ããããªã匱ãæ§æïŒIntel Xeon E5440ã8 Gb RAMïŒã§ããåé¡ã®ãªãã·ã¹ãã ã¯ãªã¢ã«ã¿ã€ã ã§1äžä»¥äžã®ã¡ããªãã¯ãåæããŸãã æäœã®äž»ãªé£ç¹ã¯ãç°åžžãæ€åºããããã®ãã©ã¡ãŒã¿ãèšå®ããããšã§ãã 第2çš®ã®ãšã©ãŒïŒåœé°æ§ïŒã¯ãŸã çºçããŠããŸãããã第1çš®ã®ãšã©ãŒïŒåœéœæ§ïŒã§ã¯ãã¢ã«ãŽãªãºã ãå®æçã«æºãããããŒãºã«åãããŠã«ã¹ã¿ãã€ãºããããšããŸãã äž»ãªåé¡ã¯ãããŒã¿ã®å£ç¯æ§ã§ãã å£ç¯æ§ãèæ ®ããHolt-Wintersã®æ¹æ³ããããŸãããããã€ãã®æ¬ ç¹ããããŸãã
- 1ã€ã®ã·ãŒãºã³ã®ã¿ãèæ ®ãããŸãïŒå®éã®ããŒã¿ã§ã¯ãè€æ°ã®ã·ãŒãºã³ãååšããå¯èœæ§ããããŸã-æéãæ¥ãé±ã幎ïŒã
- æ°ã·ãŒãºã³ã«ããã£ãŠããå€ãã®ããŒã¿ãå¿ èŠã§ãïŒãããã£ãŠããã®æ¹æ³ã¯Skylineã«ã¯é©çšãããŸãã-RedisããŒã¿ããŒã¹ã®è¡ã®ãµã€ãºã倧ããããŸãïŒã
- ç°åžžã®å Žåãå°æ¥ã®ã·ãŒãºã³ã§ã¯åŸã ã«æžè¡°ããŠèæ ®ãããŸãã
ãã®ãããç¹ã«å£ç¯ããŒã¿ãèæ ®ããŠãç°åžžãæ€åºããããã®ã¢ã«ãŽãªãºã ãéçºããåé¡ã¯æªè§£æ±ºã®ãŸãŸã§ãã
åç §è³æ
github.com/etsy/skyline
github.com/etsy/skyline/wiki
https://groups.google.com/forum/#!forum/skyline-dev
github.com/etsy/oculus
mabrek.github.io
æ å
ãã®ãããªã¯ãéçºè ã®ã±ãŒã«ã§ããé¿éšã¹ã¿ã³ãŠã§ã€ã«ãããã¬ãŒã³ããŒã·ã§ã³ãç¹åŸŽãšããŠããŸãã
Velocity Conferenceã§ã®Jon CowieãšAbe Stanwayã«ããã¬ããŒãã§ã圌ãã¯åœŒãã®çºæ¡ã«ã€ããŠè©±ããŸã-
ã¹ããŒãã®2çªç®ã®éšåã
ã¢ã³ãã³ã»ã¬ãããããã«ããå ±åãè² è·ãã¹ããšçç£ã«ãããç°åžžã®æ€çŽ¢ã®ããã®å®éã®çµ±èšåŠã