Share
Embed
AIOps研究録―SREのための システム障害の自動原因診断 / SRE NEXT 2022
SRE NEXT 2022講演。 https://sre-next.dev/2022/schedule/#jp37
Yuuki Tsubouchi (yuuk1)
May 15, 2022
Transcript
54 slides
-
2 ϓϩϑΟʔϧ yuuk1 (Yuuki Tsubouchi) ͘͞ΒΠϯλʔωοτݚڀॴɹݚڀһ ژେֶେֶӃใֶݚڀՊɹത࢜ޙظ՝ఔ3 TopotalɹςΫϊϩδΞυόΠβʔ ৽ଔ͔Β5ؒWebΦϖϨʔγϣϯɾSREͷΤϯδχΞ https://yuuk.io/
3લΑΓ͘͞ΒΠϯλʔωοτʹస৬͠ɺݚڀ։ൃͷੈք 2લʹେֶӃത࢜ޙظ՝ఔʹೖֶ SRE NEXT 2020 IN TOKYO جௐߨԋ @yuuk1t -
AIOpsͷݚڀ ΣϒΦϖϨʔγϣϯɾSRE 2013 2018 2020ʙ ӡ༻σʔλͷޮతͳ؍ଌ๏ͷݚڀ SRE DIVERSITY [Y.Tsubouchi 2021],
[Y. Tsubouchi 2022] [Y. Tsubouchi 2021]: ௶༎थ, ࡔேਓ, ᖛా݈, দխ, খྛོߒ, Ѩ෦ത, দຊ྄հ, HeteroTSDB: ҟछࢄKVSؒͷࣗಈ֊ԽʹΑΔߴੑೳͳ࣌ܥྻσʔ λϕʔε, ใॲཧֶձจࢽ, Vol.62, No.3, pp.818-828, 20213݄. [Y. Tsubouchi 2022]: Yuuki Tsubouchi, Masayoshi Furukawa, Ryosuke Matsumoto, Low Overhead TCP/UDP Socket-based Tracing for Discovering Network Services Dependencies, Journal of Information Processing, Vol.30, pp.260-268, 2022. -
6 HAL 9000 ʰ2001 Ӊͷཱྀʱ 18ষ SREͷͨΊͷػցֶशೖ ͔ΒͷҾ༻ ” ͨͬͨࠓɺAE35ϢχοτͷোΛݕग़͠·ͨ͠ɻ
ࢲ72࣌ؒҎʹ100%ͷ֬Ͱػೳఀࢭ͠·͢ɻ” ― HAL 9000ɺʰ2001 Ӊͷཱྀʱ “͜ͷөը͕ඳ͘ະདྷΛઌݟͷ໌Λͬͯߏͨ͠ͷΞʔ αʔɾCɾΫϥʔΫ(Arthur C. Clarke)ͰɺγεςϜͱϋʔυΣ ΞͷোൃੜΛԿ࣌ؒલʹ༧ଌͰ͖ΔશࣗಈԽαʔϏεͱ AI ΛΈ߹Θͤ·ͨ͠ɻHAL 9000 ɺཱࣗͨࣗ͠ݾௐܕͷ ͕ܽͳ͍ػցͱ͍͏ਓྨͷເ(͋Δ͍ѱເ)Ͱ͋Γɺਓؒʹ Αͬͯఆٛ͞ΕͨඪΛୡ͢ΔͨΊʹɺӉધͷһͱϛο γϣϯͷ྆ํʹไ͠·͢ɻ” -
7 ɾ1980ʹɺωοτϫʔΫཧʹɺࣝϕʔεAIχϡʔϥϧωοτ ϕʔεAIΛԠ༻͢ΔՄೳੑ͕ٞ͞Ε͍ͯΔ ใγεςϜͷӡ༻ʹAIΛԠ༻͢ΔىݯΛ୳Δ [Cebulka 1989]: Cebulka KD, et al.,
Applications of arti fi cial intelligence for meeting network management challenges in the 1990s, IEEE GLOBECOM 1989. ɾಛఆͷαʔϏεΛαϙʔτ͢ΔͨΊͷωοτϫʔΫͷॳظઃܭ ɾηϯτϥϧΦϑΟεؒͷઓज़తͳઃඋܭը ɾεΠον͔Βͷϝοηʔδͷࢹͱஅ [Notaro 2021]: Notaro P, et al., A Survey of AIOps Methods for Failure Management. ACM TIST, 2021. ɾ1990ॳ಄͔ΒΦϯϥΠϯͷιϑτΣΞϋʔυΣΞͷނো༧ Ϟσϧ͕͍͔ͭ͘ఏҊ͞Ε͍ͯΔɽͦͷଞͷނোࢭํ๏ͳͲಉ࣌ظ [Cebulka 1989] [Notaro 2021] -
8 ݱʹ͓͚ΔAIOpsͷߩݙྖҬ [Notaro ’20]: Notaro, P, Jorge C, and Michael
G. "A Systematic Mapping Study in AIOps.” ICSOC. Springer, Cham, 2020. [Notaro ’20]: Fig.2 Taxonomy of AIOps as observed in the identified contributions ΑΓసࡌ োཧʹؔ͢Δݚڀ ϦιʔεͷׂͳͲͷ ࠷దԽʹؔ͢Δݚڀ -
9 AIOpsͷݚڀྖҬ͝ͱͷจ [Notaro ’20]: Notaro, P, Jorge C, and Michael
G. "A Systematic Mapping Study in AIOps.” ICSOC. Springer, Cham, 2020. ɾAIOpsؔ࿈ͷจɿ670 ɾ670݅ͷ62.1%͕Failure Managementʢোཧʣʹؔ࿈͍ͯ͠Δ ɾো༧ଌʢ26.4ˋʣোݕग़ʢ33.7ˋʣݪҼੳʢ26.7ˋʣ จ૿Ճ -
10 γεςϜࢹͷख़͍ͯ͠Εɺোͷൃੜ ʹؾ͔ͮͳ͍͜ͱͳ͍ͷͰͳ͍͔ʁ AIOpsͷͲͷྖҬʹऔΓΉ͔ʁ োͷݪҼͳʹ͔ʁʹ͑Δ΄͏͕͍͠ ༧ଌ/༧ ݪҼஅ ؇ ࠜຊݪҼੳ ݕ
Failure Managementʢোཧʣͷ΄͏͕৴པੑʹ݁ म෮ AIOpsͰ ࠷ॳʹ࿈ ? -
12 ΞϥʔτετʔϜ γεςϜোݕޙͷ՝ େྔͷϝτϦΫεͷӾཡ CRITICAL: front-end - http_request latency_95 CRITICAL:
user - latency_95 CRITICAL: user-db_memory_usage CRITICAL: user-db_cpu_user_usage CRITICAL: orders - jvm_heap_memory_usage CRITICAL: orders-db - network_transmit_bytes CRITICAL: payment - http_request_error_5xx CRITICAL: front-end - http_request_latency_50 CRITICAL: front-end - http_request_latency_90 CRITICAL: user-db - cpu_system_usage ೝෛՙ ૿େ -
13 ঢ়ɿͳʹ͕յΕͨͷ͔ʁ ݪҼɿͳͥյΕͨͷ͔ʁ ͳͥΞϥʔτετʔϜ͕ൃੜ͢Δͷ͔ʁ ঢ়ͱݪҼʹ૬ର͕ؔ͋ΔͨΊɺ۠ผ͢Δ͜ͱ͕࣮͍͠ ঢ়ͱݪҼ͕ಉ࣌ʹΞϥʔτ͞ΕΔͨΊ } ঢ় ݪҼ 1
HTTP 500͘͠400͕ฦ͞Ε͍ͯΔ σʔλϕʔεαʔό͕ଓΛڋ൱͍ͯ͠Δ 2 σʔλϕʔεαʔό͕ଓΛڋ൱͍ͯ͠Δ σʔλϕʔεαʔόͷ σΟεΫ༻ྔ͕ຬഋͱͳ͍ͬͯΔ 3 σʔλϕʔεαʔόͷ σΟεΫ༻ྔ͕ຬഋͱͳ͍ͬͯΔ ΫΤϦϩάͷϑΝΠϧαΠζ͕ٸʹ૿Ճ 4 ΫΤϦϩάͷϑΝΠϧαΠζ͕ٸʹ૿Ճ … ঢ়ͷΈΛΞϥʔτ͢ΕΑ͍ͷͰʁ -
14 “Alert symptoms, diagnose causes” SLOʹجͮ͘ΞϥʔςΟϯά [SRWbook 18] Chapter 5
"Alerting on SLOs", Beyer B, et al., The Site Reliability Workbook: Practical ways to implement SRE. O'Reilly Media, Inc."; 2018. ※ [SRWbook 18] Four Golden Signals / RED Latency, Traffic, Errors, Saturation Rate, Errors, Duration αʔϏεશମͷঢ়ʹର͢ΔΞϥʔτ AIʹΑΔݪҼஅ τϦΨʔ ӡ༻σʔλͷࣗಈղੳ ӡ༻σʔλ ϝτϦΫε ϩά τϨʔε Πϕϯτ SREs -
15 ྨࣅͷணΛͭઌਓ͍Δ Chen P, et al., Causeinfer: Automatic and distributed
performance diagnosis with hierarchical causality graph in large distributed systems. IEEE INFOCOM 2014. CauseInfer (2014) ɾίϯϙʔωϯτ͝ͱʹͷύέοτͷண৴࣌ ࠁ͔Βਪఆ͢ΔTCPԆΛܭଌ ɾ౷ܭతҼՌ୳ࡧͷPCΞϧΰϦζϜʢޙ ड़ʣʹΑΓҼՌάϥϑੜ SLOϝτϦΫεͷҧݕΛτϦΨʔͱͯ͠ҼՌਪ CauseInfer (2014) Fig. 2.ΑΓҰ෦సࡌ Lin J, et al., Microscope: Pinpoint performance issues with causal graphs in micro-service environments. ICSOC, 2018. Microscope (2018) CauseInferʹରͯ͠ɺඇ௨৴ؔͷґଘΛߟྀ ɾCaudeInferಉ༷ʹҼՌάϥϑΛੜ ɾϚΠΫϩαʔϏεͰɺ֤αʔϏεͰ Ԡ͕࣌ؒܭଌ͞ΕΔ Microscope (2018) Fig. 2. ΑΓసࡌ -
ҼՌάϥϑͷܦ࿏ͷϥϯΩϯάग़ྗ ɾAutoMAP (2020): ϚΠΫϩαʔϏε୯ҐͰԠ͚࣌ؒͩͰͳ͘7छྨͷϝ τϦΫε͔ΒಘͨݸผͷҼՌάϥϑΛ߹ ɾFluxInfer (2020): PCΞϧΰϦζϜͰͳ͘ɺॏΈ͖ແґଘάϥϑ + ϖʔδϥϯΫ
ɾMicroCause (2020): PCΞϧΰϦζϜͷ࣌ܥྻͷϥάΛߟྀ͢Δվྑ 16 ྨࣅͷணΛͭઌਓ͍Δ ʔ ൃలฤ ݪҼϝτϦΫεͷϥϯΩϯάग़ྗ ɾPatternMatcher (2021): ϝτϦΫεͷҟৗύλʔϯΛCNNͰྨ ɾFluxRank (2019): ྨࣅͷ࣌ܥྻΛΫϥελϦϯάޙʹϩδεςΟοΫճؼ ͰϥϯΩϯά -
17 ݪҼஅจͷϦετ https://github.com/dreamhomes/RCAPapers ͞ΒͳΔઌߦݚڀͨͪ Notaro P, Cardoso J, Gerndt M.
A Survey of AIOps Methods for Failure Management. ACM Transactions on Intelligent Systems and Technology (TIST). 2021 Nov 30;12(6):1-45. Lyu Y, Rajbahadur GK, Lin D, Chen B, Jiang ZM. Towards a Consistent Interpretation of AIOps Models. ACM Transactions on Software Engineering and Methodology (TOSEM). 2021 Nov 15;31(1):1-38. Soldani J, Brogi A. Anomaly detection and failure root cause analysis in (micro) service-based cloud applications: A survey. ACM Computing Surveys (CSUR). 2022 Feb 3;55(3):1-39. https://blog.yuuk.io/entry/2020/ieeecloud2020 https://netman.aiops.org/publications/ ਗ਼՚େֶ NETMAN LAB ࠃࡍձٞ IEEE CLOUD AIOpsؔ࿈ͷαʔϕΠจ -
18 ɾ՝̍ ೖྗͱͳΔϝτϦΫεͷछྨ ݸΛ༧Ίࢦఆ͢Δඞཁ͕͋Δɻ ɾ՝̎ ࢦఆͨ͠มʹରͯ͠ݸผʹ దͳؔΛબΜͩΓɺνϡʔχϯ ά͢Δඞཁ͕͋Δɻ ɾ՝̏ ਪఆ݁Ռͷઆ໌ੑͷͨΊʹ
ϝτϦΫεͷΈͰෆ͢Δɻ ઌߦݚڀͰͷະղܾͳྖҬΛ୳Δ ɾେྔͷϝτϦΫεΛऩूͰ͖Δ Α͏ʹͳͬͨ ɾʹؔΘΒͣɺͦΕΒͷϝτϦ ΫεΛ׆༻Ͱ͖͍ͯΔ͔ʁ જࡏతҙࣝ γεςϜͰ؍ଌ͞Εͨશͯͷ ϝτϦΫεΛೖྗͱͯ͠ ҼՌάϥϑΛੜ -
ҟछࠞ߹ϝτϦΫεʹରͯ͠ݸผʹԾఆΛஔ͔ͳ͍ 19 શϝτϦΫε͔ΒݪҼஅʹ͔͚Δͱॲཧ͕࣌ؒ͘ͳΔ ݚڀͷઃఆɿݪҼஅͷલॲཧ ো ݕ ݪҼஅ ఏҊ ࣌ܥྻͷ
ݸΛݮ ௶༎थ΄͔, TSifter: ϚΠΫϩαʔϏεʹ͓͚Δੑೳҟৗͷਝͳஅʹ͍ͨ࣌ܥྻσʔλͷ࣍ݩݮख๏, Πϯλʔωοτͱӡ༻ٕज़γϯϙδϜจू, 2020. ۙͷݻఆ෯ͷ ϝτϦΫεΛऔಘ ୯Ґͷ࣮ߦ࣌ؒ ΦϑϥΠϯղੳ ϝτϦΫεΛࣄલࢦ ఆͤͣʹɺߴͳݪ Ҽஅ͕Մೳʹ ҼՌάϥϑ ͷੜ -
21 ΦϖϨʔλʔͷೝॲཧͷྲྀΕΛτϨʔε͢Δ ᶃظؒͰҟৗΛؚΉ ɹ࣌ܥྻΛൃݟ ᶄ࣌ܥྻάϥϑͷܗঢ় ͕ࣅ͍ͯΔͷΛ άϧʔϓԽ ΫϥελϦϯά
ΦϑϥΠϯ ҟৗݕ ϑΣʔζ̍ ϑΣʔζ̎ -
ϑΣʔζ̍ ΦϑϥΠϯ ҟৗݕ ϑΣʔζ2 ܗঢ় ΫϥελϦϯά ҼՌάϥϑͷ ੜ
લॲཧ ݪҼஅ ҼՌάϥϑͷ -
23 ϑΣʔζ̍ɿ୯มྔ࣌ܥྻͷҟৗੑʹண ࣌ܥྻͷҟৗύλʔϯΛ13ύλʔϯʹྨͨ͠ྫ [PatternMatcher 2021]: Wu C, Zhao N, Wang
L, Yang X, Li S, Zhang M, Jin X, Wen X, Nie X, Zhang W, Sui K. Identifying Root-Cause Metrics for Incident Diagnosis in Online Service Systems. [PatternMatcher 2021] 30ఔͷظؒͷղੳͰΑ͍ͨΊɺقઅੑϦϦʔεʹΑΔਖ਼ৗ ϞʔυͷมԽΛߟྀ͠ͳͯ͘Α͍ɻ ͢Ͱʹোݕग़͞ΕͨޙͳͷͰɺΦϑϥΠϯҟৗݕͰΑ͍ -
[PatternMatcher 2021]: Wu C, Zhao N, Wang L, Yang X,
Li S, Zhang M, Jin X, Wen X, Nie X, Zhang W, Sui K. Identifying Root-Cause Metrics for Incident Diagnosis in Online Service Systems. 24 ඪຊXͱඪຊY͕ಉҰͷूஂͷΑΓੜ͍ͯ͡ Δ͔Λݕఆ͢Δ 2ඪຊؒͷͷࠩΛΈΔݕఆɿK-Sݕఆ ͏·͍͔͘ͳ͔ͬͨέʔε ɾγϣʔτεύΠΫͷΑ͏ͳݦஶͳ֎ΕΛؚΉ ࣌ܥྻ p: 0.11 p: 0.51 ɾগͷ֎ΕͰɺ͕ҧ͏ͱΈͳ͞ΕΔ΄ ͲͰͳ͍ ࣌ܥྻΛ௨ৗظؒͱςετظؒʹ2ׂ͠ɺظؒؒ ͷࠩҟΛݕఆ ʢ[PatternMatcher 2021]Ͱ࠾༻͞Ε͍ͯΔʣ -
25 ɾ؍ɿ࣌ܥྻͷಛੑ͕࣌ؒͷܦաͱͱʹมԽ͠ͳ͍ ɾఆٛɿܥྻͷฏۉ͓Αͼࢄ͕࣌ؒʹΑΒͣҰఆɼ͔ͭࣗݾڞࢄ͕࣌ؒ ࠩͷΈʹґଘ͢Δੑ࣭ ࣌ܥྻͷੑ࣭ʮఆৗੑʯͷ͋ͯΊ ɾఆৗੑʹ͋ͯ·Βͳ͍ܥྻҟৗͱΈͳ͢ γϣʔτεύΠΫ 1֊ ࠩ
͏·͍͔͘ͳ͔ͬͨέʔε ADFݕఆͰݕఆՄೳ ɾγϣʔτεύΠΫ͕ ఆৗͱఆ͞ΕΔ ɾADFݕఆʮࠩܥྻʯ ͕ఆৗੑͷੑ࣭Λຬͨ͢ ͔ݕఆ εύΠΫฏۉͱ ճؼͯ͠͠·͏ ߨԋͰεΩοϓ -
26 ҟৗݕख๏ͱͯ͘͠ΒΕ͍ͯΔख๏Λ͏ ౷ܭతҟৗݕͷجຊͷεςοϓ ֬Ͱਖ਼ৗύλʔϯΛදݱͰ͖ΔͱԾఆ 1. ͷਪఆ 2. ҟৗͷࢉग़ 3. ᮢͷઃఆ
ҟৗʹର͢ΔᮢͷઃఆʹΑΓҟৗΛఆ ະύϥϝʔλΛؚΉ֬Λਖ਼ৗϞσϧͱͯ͠Ծఆ σʔλ͔ΒະύϥϝʔλΛਪఆ ਖ਼ৗ͔ΒͷͣΕͷ߹͍Λ༧Ίఆٛͯ͠ࢉग़ ࢀߟɿҪख߶, ೖ ػցֶशʹΑΔҟৗ ݕ, 7.3અ ίϩφࣾ, 2015.. -
27 ࣌ܥྻͷ֤ͷ͕ਖ਼نʹै͏ͱԾఆ ֎Εݕग़ɿϗςϦϯάͷ ๏ T2 ࢀߟɿҪख߶, ೖ ػցֶशʹΑΔҟৗݕ, 7.3અ ίϩφࣾ,
2015.. 1. ਪఆ f(x) = 1 2πσ2 exp ( − (x − μ)2 2σ2 ) ωοτϫʔΫૹ৴όΠτͷϝτϦΫε μ = 1 N N ∑ i=1 xi σ2 = 1 N N ∑ i=1 (xi − μ)2 2. ҟৗͷܭࢉ ඪຊฏۉ ඪຊࢄ a(x) = ( x − μ σ ) 2 3. ᮢఆ ҟৗͷࣗ༝1ͷΧΠೋʹै͏ ᮢΛ֬ͰܾఆͰ͖Δʢ0.01, 0.05ͳͲʣ ϊΠζʹऑ͍ ະ ύϥϝʔλ -
28 ɾࣗݾճؼϞσϧɿ͋Δ࣌ࠁ t ͷΛɺ࣌ࠁ t ҎલͷΛͬͯճؼ͢ΔϞσϧ ɾ؍ɿະདྷաڈͷ͔Β༧ଌͰ͖ΔͱԾఆ ࣗݾճؼϞσϧʢARϞσϧʣʹΑΔҟৗݕ ҟৗ ࣮ଌʢ੨ʣ༧ଌʢᒵ৭ʣ
yn = r ∑ t=1 at yn−t + vn ʢ༧ଌ − ؍ଌ = ༧ଌޡࠩʣ= ҟৗ ࣌ܥྻ ͕༩͑ΒΕͨͱ͖ y1 , . . . yN : ϥά࣍ r : ࣗݾճؼ at : ฏۉ0ɺࢄ ͷ ਖ਼نʹै͏ϗϫΠτ ϊΠζ vn σ2 ɾ Λܾఆ͠ɺ࣮ଌ͔Β ͱࢄ Λਪఆ͢Δ ɾ ใྔج४ʢAICʣΑΓܾఆ͢Δͷ͕Ұൠత ɾ ͱ ͷۙࣅΛ࠷খೋ๏ʹΑΓ࠷ਪఆ r at σ2 r at σ2 ࢀߟɿҪख߶, ೖ ػցֶशʹΑΔҟৗݕ, 7.3અ ίϩφࣾ, 2015.. -
29 ະύϥϝʔλʢ ʣΛ؍ଌσʔλ ͯ͢ʹରͯ͠ਪఆ͢Δ at ࣗݾճؼϞσϧɿαϯϓϧ༧ଌͱαϯϓϧ֎༧ଌ αϯϓϧ༧ଌͷޡࠩ αϯϓϧ֎༧ଌͷޡࠩ ֶशظؒͱݕূظؒʹׂ͢ΔʢਤͰ1:1ʣ ̋ݦஶͳ
֎Ε ະύϥϝʔλΛֶशσʔλ͔Βਪఆ ͠ɺݕূσʔλͱͷ༧ଌޡࠩΛࢉग़͢Δ ̋ϗϫΠτ ϊΠζ ✗Ϩϕϧγϑτʹ աద߹ͯ͠ޡ ͕ࠩখ͍͞ ✗ϊΠζͷԠʹΑΔ ޡݕ ϗςϦϯάͱಉ͡…? ̋Ϩϕϧγϑτ -
ϑΣʔζ̍ ΦϑϥΠϯ ҟৗݕ ϑΣʔζ2 ܗঢ় ΫϥελϦϯά ҼՌάϥϑͷ ੜ
લॲཧ ݪҼஅ ҼՌάϥϑͷ ߨԋͰεΩοϓ ϑΣʔζ̎ ܗঢ়ΫϥελϦϯά ߨԋͰεΩοϓ -
33 ΫϥελϦϯάͷൣғ Proxy App DB Cluster 1 Cluster 2 ಉҰίϯϙʔωϯτͰ
ΫϥελϦϯά ɾίϯϙʔωϯτΛ·͍ͨͩϝτϦΫεΛΫϥελϦϯά͢Δͱ ҼՌάϥϑʹඞཁͳϊʔυ͕ࣦΘΕΔ ɾͨ·ͨ·ঢ়ϝτϦΫεͱݪҼϝτϦΫεͷܗঢ়͕ྨࣅ͢ΔέʔεͳͲ ߨԋͰεΩοϓ -
34 ࣌ܥྻΫϥελϦϯάͷੈք [Paparrizos 15]: Paparrizos J, Gravano L. k-Shape: Ef
fi cient and accurate clustering of time series. SIGMOD 2015. [Paparrizos 15] Fig. 1. Time-series clustering taxonomy. ΑΓసࡌ [Paparrizos 15] Fig. 2. The time-series clustering approaches. ΑΓసࡌ ࣌ܥྻશମͷ ΫϥελϦϯά ܗঢ়ʹجͮ͘ Ξϓϩʔν ਓ͕ؒ࣌ܥྻάϥϑΛΈͯࣅ͍ͯΔͱ அ͢Δͷɺܗঢ়ʹج͍͍ͮͯΔͣ ߨԋͰεΩοϓ -
35 ࣌ܥྻΫϥελϦϯάͷܗঢ়ྨࣅੑ Paparrizos J, Gravano L. k-Shape: Ef fi cient
and accurate clustering of time series. SIGMOD 2015. [k-Shape 2015] Figure 2: Similarity computation ΑΓ Ұ෦ൈਮͯ͠సࡌ ED: ϢʔΫϦουڑ [k-Shape 2015] Figure1: ΑΓҰ෦ൈਮͯ͠సࡌ ॎ࣠ʹରͯ͠৳ॖͨ͠ͱ͖ʹࣅ͍ͯΔ͔ʁ ԣ࣠ʹରͯ͠γϑτͨ͠ͱ͖ʹࣅ͍ͯΔ͔ʁ z-scoreม (ฏۉ0,ඪ४ภࠩ1ͱ͢Δม)Ͱୡ ԣ࣠γϑτʹର͢Δߟྀ͕ͳ͍ Scalingෆมੑ Shifttingෆมੑ DTW: ಈతۭؒ৳ॖ๏ʢओྲྀʣ 2ຊͷ࣌ܥྻͷ֤ಉ࢜ͷڑΛશͯܭࢉ͢Δͨ Ίɺܭࢉྔ͕େ͖͍ ߨԋͰεΩοϓ -
36 SBD (Shape-Based Distance) Paparrizos J, Gravano L. k-Shape: Ef
fi cient and accurate clustering of time series. SIGMOD 2015. ૬ޓ૬ؔ ϕΫτϧͷੵɿϕΫτϧಉ͕͕͍࢜֯ۙͱ͖ʢ ͕0ʹ͍ۙͱ͖ʣେ͖ͳΛͱΔ θ x ⋅ y = |x||y|cos θ 1ຊͷ࣌ܥྻΛ1ݸͷϕΫτϧͱΈͳ͢ ϕΫτϧΛͣΒ͠ͳ͕ΒੵΛܭࢉ͍͖ͯ͠ɺੵ͕࠷େͱͳΔγϑτ Λൃݟ͢Δ w CCw (x, y) = Rw−m (x, y) Rk (x, y) = { ∑m−k l=1 xl+k ⋅ yl R−k (y, x) x = (x1 , . . . , xm ) y = (y1 , . . . , ym ) ճ ΛӈʹฏߦҠಈͤͨ͞ ͱ͖ͷ ͱͷྨࣅΛ ͱ͢Δ k = w − m y x CCw (x, y) Λ ʹରͯ͠ܭࢉ CCw (x, y) w ∈ 1,2,...,2m − 1 ͷܭࢉྔΛ ߴϑʔϦΤมͰ O(m2) O(mlogm) ߨԋͰεΩοϓ -
37 ΫϥελԽͷखॱͷݕ౼ ΫϥελϦϯά ֊తΫϥελϦϯά ׂ࠷దԽతΫϥελϦϯά ࢀߟɿਆቇ හ߂, ΫϥελϦϯάʢClusteringʣ https://www.kamishima.net/archive/clustering.pdf Ϋϥελͷྑ͞Λදؔ͢Λఆٛ͠ɼ
ͦͷؔΛ࠷దԽ͢ΔΑ͏ͳ ΫϥελΛൃݟ ڽूܕ ׂܕ σʔλҰ͕ͭݸʑͷΫϥελͷ ঢ়ଶ͔Βɼॱ࣍ΫϥελΛซ߹ σʔλू߹શମ͕ҰͭͷΫϥελ ͷঢ়ଶ͔Βɼॱ࣍ΫϥελΛׂ ܭࢉྔ͕ଟ͍ ܭࢉྔ͕ଟ͍ ࣄલʹΫϥελΛ ܾΊͳ͚ΕͳΒͳ͍ ༗໊ͳk-means ͪ͜Β ܭࢉྔ͕গͳ͍ ߨԋͰεΩοϓ -
ϑΣʔζ̍ ΦϑϥΠϯ ҟৗݕ ϑΣʔζ2 ܗঢ় ΫϥελϦϯά લॲཧ ݪҼஅ ҼՌάϥϑͷ
ੜͯ֬͠ೝ͍ͨ͠ ݪҼஅɿҼՌάϥϑੜ ҼՌάϥϑͷ ੜ -
41 ɾMݸͷ֬ม ɾ֬ม͝ͱʹNݸͷඪຊ ҼՌ୳ࡧΛϝτϦΫεͷݪҼஅʹԠ༻ DAGʢ༗ඇ८ճάϥϑʣ ग़ྗ front-end:latency user:latency ɾ
ɾ ɾ Mݸͷ ࣌ܥྻ Nݸͷඪຊ orders:latency user:cpu_usage user-db:cpu_usage orders:network_transmit_bytes ঢ়ϝτϦΫε orders-db:network_receive_bytes -
42 ౷ܭతҼՌ୳ࡧͷੈք ؍ଌσʔλ͔ΒҼՌؔΛਪఆ͢Δ ੍ϕʔε είΞϕʔε Glymour C, et al., Review
of causal discovery methods based on graphical models. Frontiers in genetics. 2019 ߏํఔࣜϕʔε ϊϯύϥϝτϦοΫʢԾఆΛ͓͔ͳ͍ʣ ύϥϝτϦοΫɾ ηϛύϥϝτϦοΫ PCΞϧΰϦζϜ (1991) มؒͷ͖݅ಠཱੑΛ੍ ͱͯ͠ҼՌάϥϑΛߏங͢Δ FCIΞϧΰϦζϜ (1995) ະ؍ଌڞ௨ݪҼΛߟྀ ಉ͖݅͡ಠཱੑΛ༩ ͑ΔҼՌάϥϑͷू߹Ͱ ͋ΔϚϧίϑಉྨ͝ͱ ʹɼϞσϧͷΑ͞ΛධՁ GESΞϧΰϦζϜ (2003) LiNGAM (2006) ݪҼΛXΛ݁ՌΛYͱͯ͠ ߏΛํఔࣜͰදݱ ؔܥޡࠩมͷ ʹԾఆΛஔ͘ -
43 1. ॳظԽɿ Mݸͷ֬มͷશ࿈݁άϥϑΛߏங͢Δ PCΞϧΰϦζϜ 2. Τοδআɿ ྡ͢Δ֤มʹ͍ͭͯɺ͖݅ಠཱੑ͕ଘࡏ͢Εɺ2 มؒͷΤοδΛআɻ 3.
ϧʔϧϕʔεͷํܾఆʢv-structureɺΦϦΤϯςʔγϣϯϧʔϧʣ ಠཱੑɿมؒͷ૬ؔΛΈΔͳͲͷख๏Ͱಠཱ͔Ͳ͏͔Λਪఆɻ ͖݅ಠཱੑɿ͋ΔมΛ݅ͱͨ͠ͱ͖ͷଞͷ2มͷಠཱੑ -
44 1. ॳظԽ PCΞϧΰϦζϜͷࣄલࣝʹΑΔಠ֦ࣗு 2. Τοδআ 3. ϧʔϧϕʔεͷํܾఆ ํܾఆؒҧ͍͑ͯΔ͜ͱ͕͋Δ ᶃ
ωοτϫʔΫ௨৴Λ͍ͯ͠ͳ͍มؒͷΤοδΛແ݅Ͱআ ᶄ ௨৴ͷऩूσʔλΛجʹɺํΛܾఆɾमਖ਼͢Δ ɹL4௨৴ɿTCP/UDPͷଓ։࢝ํɺύέοτͷϥά૬ؔ ɹL7௨৴ɿHTTPͷϦΫΤετͷ͖ … શ࿈݁άϥϑͰΤοδ͕ଟ͍ͨΊɺΤοδআͷॲཧ͕͍࣌ؒ আͨ݁͠Ռ ߨԋͰεΩοϓ -
46 ݪҼͱঢ়ͷϝτϦΫεؒͷ ܦ࿏͕ΒΕΔ PCΞϧΰϦζϜͷ͖݅ಠཱੑݕఆͷ՝ front-end:latency user:latency orders:latency user:memory_usage user-db:cpu_usage
orders:network_receive_bytes ঢ়ϝτϦΫε orders-db:network_transmit_bytes ݪҼ ϝτϦΫε ௐࠪ ͖݅ಠཱੑݕఆͰɺ݅มͷӨڹΛআڈ͠ ্ͨͰɺ2มͷ૬ؔΛΈΔʢภ૬ؔʣ োൃੜ࣌ͷࣅͨมಈͷܥྻ͕ଟ͍ͱ͖ʹޡͬͯ Τοδ͕ΒΕ͍͢Α͏ʹΈ͑Δ front-end: latency orders-db: network_transmit _bytes user: memory_ usage user: latency ࣅͨมಈΛࣔ͢3มؒͷ Τοδ͕ͳ͔ͥΒΕ͍ͯΔ ✗ -
48 ɾ֤Λ௨ఈ͢ΔΑ͏ͳʮʯ·ͩݟ͍͍ͩͤͯͳ͍ ɾݪҼஅʹ͍ͨલॲཧϑϨʔϜϫʔΫͷఏҊΛࢦ͢ 3. ·ͱΊɿ֤ͷཧͱֶज़తߩݙ ϑΣʔζ̍ ΦϑϥΠϯ ҟৗݕ ϑΣʔζ2 ܗঢ়
ΫϥελϦϯά ҼՌάϥϑͷ ੜ લॲཧ ݪҼஅ ҼՌάϥϑͷ PCΞϧΰϦζϜʹ੍͕͋Δ -
52 σʔληοτͷಈతੜγεςϜɿMeltria ͞ͳ͔ͬͨ͜ͱ ௶༎थ, ੨ࢁਅ, MeltriaɿϚΠΫϩαʔϏεʹ͓͚ΔҟৗݕɾݪҼੳͷͨΊͷσʔληοτͷಈతੜγεςϜ, Πϯλʔωοτͱӡ༻ٕज़ γϯϙδϜจू, 2021, 63-70
(2021-11-18), 202111݄. https://github.com/ai4sre/meltria Kubernets Sock Shop: ϚΠΫϩαʔϏεΞϓϦ LitmusChaos: ނোೖ Argo Workflows: εέδϡʔϥ