{"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/causal-inference-based-root-cause-analysis","title":"Causal Inference-Based Root Cause Analysis for Online Service Systems with Intervention Recognition","arxiv_id":"2206.05871","date":"2022-06-13","proceeding":null,"authors":["Mingjie Li","Zeyan Li","Kanglin Yin","Xiaohui Nie","Wenchi Zhang","Kaixin Sui","Dan Pei"],"abstract":"Fault diagnosis is critical in many domains, as faults may lead to safety threats or economic losses. In the field of online service systems, operators rely on enormous monitoring data to detect and mitigate failures. Quickly recognizing a small set of root cause indicators for the underlying fault can save much time for failure mitigation. In this paper, we formulate the root cause analysis problem as a new causal inference task named intervention recognition. We proposed a novel unsupervised causal inference-based method named Causal Inference-based Root Cause Analysis (CIRCA). The core idea is a sufficient condition for a monitoring variable to be a root cause indicator, i.e., the change of probability distribution conditioned on the parents in the Causal Bayesian Network (CBN). Towards the application in online service systems, CIRCA constructs a graph among monitoring metrics based on the knowledge of system architecture and a set of causal assumptions. The simulation study illustrates the theoretical reliability of CIRCA. The performance on a real-world dataset further shows that CIRCA can improve the recall of the top-1 recommendation by 25% over the best baseline method.","url_abs":"https://arxiv.org/abs/2206.05871v1","url_pdf":"https://arxiv.org/pdf/2206.05871v1.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":"abstracts"},"code_links":[{"paper_slug":"causal-inference-based-root-cause-analysis","repo_url":"https://github.com/netmanaiops/circa","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[{"task_slug":"causal-inference","task_name":"Causal Inference"},{"task_slug":"fault-diagnosis","task_name":"Fault Diagnosis"}],"methods":[{"method_slug":null,"method_name":null}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2206.05871","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.05871"}},"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/netmanaiops/circa","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"ran":0,"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":"176e2b5ba512dc70","entry":"load_json","repo":"netmanaiops/circa","repo_kind":"official","path":"circa/utils.py","file_url":"https://github.com/netmanaiops/circa/blob/HEAD/circa/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"176e2b5ba512dc70"}},{"code_sha256_prefix":"77c745cb3a4e0c63","entry":"pearson","repo":"netmanaiops/circa","repo_kind":"official","path":"circa/alg/common.py","file_url":"https://github.com/netmanaiops/circa/blob/HEAD/circa/alg/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"77c745cb3a4e0c63"}},{"code_sha256_prefix":"5ce40dcffb266653","entry":"require_logging","repo":"netmanaiops/circa","repo_kind":"official","path":"circa/utils.py","file_url":"https://github.com/netmanaiops/circa/blob/HEAD/circa/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5ce40dcffb266653"}},{"code_sha256_prefix":"42d0e5e5d6d4684c","entry":"topological_sort","repo":"netmanaiops/circa","repo_kind":"official","path":"circa/utils.py","file_url":"https://github.com/netmanaiops/circa/blob/HEAD/circa/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"42d0e5e5d6d4684c"}},{"code_sha256_prefix":"84639623fcd028b3","entry":"zscore","repo":"netmanaiops/circa","repo_kind":"official","path":"circa/alg/common.py","file_url":"https://github.com/netmanaiops/circa/blob/HEAD/circa/alg/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"84639623fcd028b3"}},{"code_sha256_prefix":"824654f42e6185e8","entry":"zscore_conf","repo":"netmanaiops/circa","repo_kind":"official","path":"circa/alg/common.py","file_url":"https://github.com/netmanaiops/circa/blob/HEAD/circa/alg/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"824654f42e6185e8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}