25 - Latency Monitor

Overview

OpenAlgo tracks order execution latency at multiple stages to help identify performance bottlenecks and ensure SLA compliance.

Architecture Diagram

┌──────────────────────────────────────────────────────────────────────────────┐
│                       Latency Monitoring Architecture                        │
└──────────────────────────────────────────────────────────────────────────────┘

                              Order Request


┌─────────────────────────────────────────────────────────────────────────────┐
│                          Latency Tracking Points                             │
│                                                                              │
│  T0: Request Received ───────────────────────────────────────────────────►  │
│           │                                                                  │
│           ▼                                                                  │
│  ┌─────────────────┐                                                         │
│  │  Validation     │  ← T1: validation_latency_ms                           │
│  │  (API key,      │                                                         │
│  │   schema)       │                                                         │
│  └────────┬────────┘                                                         │
│           │                                                                  │
│           ▼                                                                  │
│  ┌─────────────────┐                                                         │
│  │  Broker API     │  ← T2: rtt_ms (Round-Trip Time)                        │
│  │  Request/       │                                                         │
│  │  Response       │                                                         │
│  └────────┬────────┘                                                         │
│           │                                                                  │
│           ▼                                                                  │
│  ┌─────────────────┐                                                         │
│  │  Response       │  ← T3: response_latency_ms                             │
│  │  Processing     │                                                         │
│  └────────┬────────┘                                                         │
│           │                                                                  │
│           ▼                                                                  │
│  T4: Response Sent ─────────────────────────────────────────────────────►   │
│                                                                              │
│  total_latency_ms = T4 - T0                                                 │
│  overhead_ms = validation_ms + response_ms                                  │
└─────────────────────────────────────────────────────────────────────────────┘

Metrics Tracked

Latency Components

Metric
Description

rtt_ms

Broker API round-trip time

validation_latency_ms

Pre-request validation

response_latency_ms

Post-response processing

overhead_ms

Total OpenAlgo overhead

total_latency_ms

End-to-end time

Database Schema

Implementation

Latency Tracker Class

Decorator Usage

Dashboard

Access

Dashboard View

SLA Targets

Performance Thresholds

Metric
Target
Description

P50

< 100ms

50% of requests

P90

< 150ms

90% of requests

P95

< 175ms

95% of requests

P99

< 200ms

99% of requests

SLA Calculation

Broker Comparison

Per-Broker Stats

Alerting

Threshold Alerts

HTTP Client Integration

Connection Timing

Analytics Queries

Common Queries

Key Files Reference

File
Purpose

utils/latency_monitor.py

Tracking utilities

database/latency_db.py

Latency model

blueprints/logs.py

Dashboard routes

utils/httpx_client.py

HTTP timing hooks

frontend/src/pages/Latency.tsx

React dashboard

Last updated