Anomaly Detection

Automatically detect unusual patterns, drift, and misconfigurations in your infrastructure using graph-aware AI analysis.

Overview

The anomaly detection engine continuously analyzes your knowledge graph for patterns that deviate from the norm. It combines statistical baselines, graph topology analysis, and LLM-powered contextual reasoning to identify potential issues before they become incidents.

Graph-aware detection
Unlike standalone monitoring tools, Knowledge Tree's anomaly detection considers the full graph context -- a new security group rule might be benign in isolation but suspicious when connected to an internet-facing resource.

Detection methods

MethodDescription
Statistical baselineResource counts, change frequency, and type distribution compared to historical baselines
Graph topologyUnexpected relationship patterns, unusual centrality, or orphaned resources
Configuration driftResource attributes that deviate from expected values or templates
LLM contextualAI-powered analysis of resource configurations against best practices
Temporal patternsChanges at unusual times, rapid succession changes, or cascading modifications

Graph anomalies

Knowledge Tree detects anomalies that are specific to the graph structure:

  • Orphaned resources -- resources with no relationships to any other resource
  • Hub explosion -- a resource with an unusually high number of dependencies
  • Isolated subgraphs -- groups of resources disconnected from the main graph
  • Unexpected connections -- resources connected across scope/environment boundaries
  • Missing dependencies -- resources that typically depend on another type but don't

Alerting

Anomalies can trigger alerts through multiple channels:

  • In-app notifications -- anomaly feed in the Knowledge Tree dashboard
  • Webhook -- POST to any webhook URL with anomaly payload
  • PagerDuty -- create PagerDuty incidents for critical anomalies
  • Slack -- post to a Slack channel with anomaly details
  • Email -- email digest of daily anomalies

Configuration

# config.yaml
ai:
  anomaly_detection:
    enabled: true
    methods:
      - statistical_baseline
      - graph_topology
      - llm_contextual
    sensitivity: medium
    schedule: "0 */4 * * *"
    alerting:
      - channel: slack
        webhook: ${SLACK_WEBHOOK}
        severity: [high, critical]
      - channel: pagerduty
        severity: [critical]
      - channel: webhook
        url: ${ANOMALY_WEBHOOK}