{
  "schema_version": "0.6.0",
  "paper_id": "automated-cause-analysis-latency-outliers",
  "page_url": "https://naser.github.io/research-publications/papers/automated-cause-analysis-latency-outliers/",
  "title": "Automated Cause Analysis of Latency Outliers Using System-Level Dependency Graphs",
  "title_variants": [],
  "authors": [
    "Sneh Patel",
    "Brendan Park",
    "Naser Ezzati-Jivan",
    "Quentin Fournier"
  ],
  "author_details": [
    {
      "name": "Sneh Patel",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/315/9849.html"
    },
    {
      "name": "Brendan Park",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/316/0137.html"
    },
    {
      "name": "Naser Ezzati-Jivan",
      "orcid": "https://orcid.org/0000-0003-1435-6297",
      "profile_url": "https://naser.github.io/"
    },
    {
      "name": "Quentin Fournier",
      "orcid": "https://orcid.org/0000-0002-1036-0777",
      "profile_url": "https://dblp.org/pid/246/8623.html"
    }
  ],
  "publication": {
    "year": 2021,
    "venue": "IEEE International Conference on Software Quality, Reliability and Security (QRS)",
    "type": "conference paper",
    "publication_date": "2021-12",
    "online_date": null,
    "print_date": "2021-12",
    "volume": null,
    "issue": null,
    "pages": "422-433",
    "article_number": null,
    "publisher": "IEEE",
    "issn": [],
    "isbn": [],
    "crossref_type": "proceedings-article"
  },
  "publication_type": "conference paper",
  "status": "public_preprint_and_published_record",
  "canonical_source_url": "https://doi.org/10.1109/QRS54544.2021.00054",
  "source_record_id": "automated-cause-analysis-of-latency-outliers-using-system-level-dependency-graphs-f022a4afee",
  "identifiers": {
    "doi": "10.1109/QRS54544.2021.00054",
    "arxiv": "2207.06515"
  },
  "abstract": "Detecting performance issues and identifying their root causes in the runtime is a challenging task. Typically, developers use methods such as logging and tracing to identify bottlenecks. These solutions are, however, not ideal as they are time-consuming and require manual effort. In this paper, we propose a method to automate the task of detecting latency outliers using system-level traces and then comparing them to identify the root cause(s). Our method makes use of dependency graphs to show internal interactions between threads and system resources. With these graphs, one can pinpoint where performance issues occur. However, a single trace can be composed of a large number of requests, each generating one graph. To automate the task of identifying outliers within the dataset, we use machine learning density-based models and statistical calculations such as -score. Our evaluation shows an accuracy greater than 97 % on outlier detection, making them appropriate for in-production servers and industry-level use cases.",
  "abstract_source": "arXiv:2207.06515 abstract; public preprint version",
  "abstract_available": true,
  "scholar_eligibility": {
    "eligible": true,
    "basis": "complete-visible-author-abstract",
    "note": "The page displays the complete verified author abstract."
  },
  "description": "Detecting performance issues and identifying their root causes in the runtime is a challenging task. Typically, developers use methods such as logging and tracing to identify bottlenecks. These solutions are, however, not ideal as they are time-consuming and require manual effort. In this paper, we propose a method to automate the task of detecting latency outliers using system-level traces and then comparing them to identify the root cause(s). Our method makes use of dependency graphs to show internal interactions between threads and system resources. With these graphs, one can pinpoint where performance issues occur. However, a single trace can be composed of a large number of requests, each generating one graph. To automate the task of identifying outliers within the dataset, we use machine learning density-based models and statistical calculations such as -score. Our evaluation shows an accuracy greater than 97 % on outlier detection, making them appropriate for in-production servers and industry-level use cases.",
  "evidence_level": "full-text-reviewed",
  "evidence": {
    "source_basis": "full-text-reviewed",
    "coverage": "material paper sections",
    "summary_origin": "AI-assisted catalog editorial summary",
    "review_status": "catalog-reviewed; paper-author approval pending",
    "verified_on": "2026-08-09",
    "sources": [
      {
        "note": "DBLP and IEEE metadata for the published paper"
      },
      {
        "note": "official arXiv abstract and PDF page 2207.06515"
      },
      {
        "note": "local PDF hash verified in the working catalog"
      }
    ]
  },
  "summary": {
    "core_contribution": "The paper combines system-level dependency graphs with automated outlier detection to localize likely causes of latency anomalies.",
    "problem": "Latency outliers in distributed/request-oriented software are difficult to triage because their causes may be hidden in thread and resource waiting relationships in system-level traces.",
    "method": "Build waiting-dependency graphs from LTTng traces, embed graphs with Graph2Vec, detect unusual requests or graph regions using Z-score, k-NN, DBSCAN, or OPTICS, then merge and compare representative graphs to expose causal waiting nodes.",
    "findings": "On 697 Apache/PHP/MySQL requests labeled by a 200 ms expert threshold, Z-score had the best printed result (98.1% accuracy, 55.0% precision, 73.3% recall, 62.9% F1), while the other methods had lower precision/recall despite >97% accuracy. A representative outlier exposed CPU waiting (waitcpu) and Xorg contention. Computation costs were dominated by graph construction and embedding.",
    "limitations": "There is no ground-truth latency-cause dataset; labels are threshold/expert derived and some detected outliers may be unrelated to latency. Graph2Vec size and hyperparameters can overfit, and the method focuses on off-CPU/resource waits rather than user-space function detail or on-CPU causality.",
    "future_work": "Reduce Graph2Vec size while retaining accuracy, improve training time, use more graphs, and extend analysis beyond the current off-CPU representation."
  },
  "tags": [
    "system-tracing",
    "latency-analysis",
    "root-cause-analysis",
    "dependency-graphs"
  ],
  "keywords": [
    "latency outliers",
    "system-level traces",
    "dependency graphs",
    "density-based models",
    "z-score",
    "production diagnosis"
  ],
  "versions": [
    {
      "id": "published-version",
      "label": "Published version",
      "relation": "version-of-record",
      "title": "Automated Cause Analysis of Latency Outliers Using System-Level Dependency Graphs",
      "url": "https://doi.org/10.1109/QRS54544.2021.00054",
      "pdf_url": null,
      "status": "published",
      "canonical_for_citation": true
    },
    {
      "id": "public-preprint",
      "label": "Public preprint",
      "relation": "preprint",
      "title": "Automated Cause Analysis of Latency Outliers Using System-Level Dependency Graphs",
      "url": "https://arxiv.org/abs/2207.06515",
      "pdf_url": "https://arxiv.org/pdf/2207.06515",
      "status": "public_full_text",
      "canonical_for_citation": false
    }
  ],
  "access": {
    "status": "public_preprint_and_published_record",
    "note": "The published DOI is the canonical citation target; the arXiv preprint provides public full text.",
    "license": null
  },
  "resources": {
    "code": null,
    "data": null,
    "slides": null,
    "demo": null
  },
  "citation_guidance": {
    "when_to_cite": "Cite this paper when your work uses or compares graph2Vec embeddings of waiting-dependency graphs as a latency-outlier screening method.",
    "points": [
      "For Graph2Vec embeddings of waiting-dependency graphs as a latency-outlier screening method.",
      "For comparing DBSCAN, OPTICS, k-NN, and Z-score on threshold-derived latency labels with the reported precision/recall trade-off.",
      "For merging and comparing representative DepGraphs to expose CPU-wait/Xorg contention.",
      "For the measured cost boundary: 32.391 s graph construction, 11.608 s Graph2Vec, and ≤10.1% method tracing overhead in the stated setup."
    ],
    "canonical_version_id": "published-version"
  },
  "provenance": {
    "metadata_verified_on": "2026-08-09",
    "metadata_source": [
      "DBLP and IEEE metadata for the published paper",
      "official arXiv abstract and PDF page 2207.06515",
      "local PDF hash verified in the working catalog"
    ],
    "summary_written_by": "AI-assisted",
    "summary_verified_by": "full-text-grounded catalog review; author approval pending",
    "linked_preprint_record": "automated-cause-analysis-of-latency-outliers-using-system-level-dependency-graphs-a40b9206a2",
    "author_order_note": null
  },
  "batch": {
    "phase": 2,
    "batch_label": "expanded forty-paper release",
    "status": "included_in_expanded_catalog",
    "selected_at": "2026-08-09"
  }
}
