{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/baro-robust-root-cause-analysis-for","title":"BARO: Robust Root Cause Analysis for Microservices via Multivariate Bayesian Online Change Point Detection","arxiv_id":"2405.09330","date":"2024-05-15","proceeding":null,"authors":["Luan Pham","Huong Ha","Hongyu Zhang"],"abstract":"Detecting failures and identifying their root causes promptly and accurately is crucial for ensuring the availability of microservice systems. A typical failure troubleshooting pipeline for microservices consists of two phases: anomaly detection and root cause analysis. While various existing works on root cause analysis require accurate anomaly detection, there is no guarantee of accurate estimation with anomaly detection techniques. Inaccurate anomaly detection results can significantly affect the root cause localization results. To address this challenge, we propose BARO, an end-to-end approach that integrates anomaly detection and root cause analysis for effectively troubleshooting failures in microservice systems. BARO leverages the Multivariate Bayesian Online Change Point Detection technique to model the dependency within multivariate time-series metrics data, enabling it to detect anomalies more accurately. BARO also incorporates a novel nonparametric statistical hypothesis testing technique for robustly identifying root causes, which is less sensitive to the accuracy of anomaly detection compared to existing works. Our comprehensive experiments conducted on three popular benchmark microservice systems demonstrate that BARO consistently outperforms state-of-the-art approaches in both anomaly detection and root cause analysis.","url_abs":"https://arxiv.org/abs/2405.09330v1","url_pdf":"https://arxiv.org/pdf/2405.09330v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"baro-robust-root-cause-analysis-for","repo_url":"https://github.com/phamquiluan/baro","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[{"slug":"baro","name":"BARO Datasets","full_name":"BARO Datasets for benchmarking RCA methods"}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.09330","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.09330"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/phamquiluan/baro","reach":null}],"summary":{"ran_draft_wrong":4,"unverified":1},"by_repo_kind":{"official":{"samples":5,"ran":4,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"d3c7ae0ea1bc5e8b","entry":"convert_mem_mb","repo":"phamquiluan/baro","repo_kind":"official","path":"baro/root_cause_analysis.py","file_url":"https://github.com/phamquiluan/baro/blob/HEAD/baro/root_cause_analysis.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d3c7ae0ea1bc5e8b"}},{"code_sha256_prefix":"3fd4531b6cc521f0","entry":"drop_extra","repo":"phamquiluan/baro","repo_kind":"official","path":"baro/root_cause_analysis.py","file_url":"https://github.com/phamquiluan/baro/blob/HEAD/baro/root_cause_analysis.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3fd4531b6cc521f0"}},{"code_sha256_prefix":"0176111946c71b54","entry":"nsigma","repo":"phamquiluan/baro","repo_kind":"official","path":"baro/anomaly_detection.py","file_url":"https://github.com/phamquiluan/baro/blob/HEAD/baro/anomaly_detection.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0176111946c71b54"}},{"code_sha256_prefix":"1071c24f3a786747","entry":"select_useful_cols","repo":"phamquiluan/baro","repo_kind":"official","path":"baro/root_cause_analysis.py","file_url":"https://github.com/phamquiluan/baro/blob/HEAD/baro/root_cause_analysis.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1071c24f3a786747"}},{"code_sha256_prefix":"7466bdfc71a04d00","entry":"find_anomalies","repo":"phamquiluan/baro","repo_kind":"official","path":"baro/anomaly_detection.py","file_url":"https://github.com/phamquiluan/baro/blob/HEAD/baro/anomaly_detection.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7466bdfc71a04d00"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}