Algorithm Development

Algorithm Development

This guide explains how to develop, package, and integrate custom RCA algorithms with RCABench.

Algorithm Requirements

Input Data Types

Algorithms receive three types of observability data:

  • Metrics: Time-series performance metrics (CPU, memory, response time, etc.)
  • Traces: Distributed tracing data showing request flows
  • Logs: Application and infrastructure log messages

Output Requirements

Algorithms must output results in this JSON format:

{
  "root_cause": "service-name",
  "confidence": 0.85,
  "execution_time": 45.2,
  "algorithm_version": "1.0.0",
  "ranking": [
    {
      "service": "service-a",
      "score": 0.85,
      "reasoning": "High CPU utilization correlation"
    },
    {
      "service": "service-b",
      "score": 0.42,
      "reasoning": "Elevated error rate"
    }
  ],
  "metadata": {
    "model_confidence": 0.78,
    "data_quality": 0.95,
    "anomaly_threshold": 0.7
  }
}