Overview
Real-time anomaly detection enables you to identify unusual patterns in streaming time series data instantly—essential for monitoring server performance, detecting fraud, identifying system failures, and tracking IoT sensor anomalies. TimeGPT’sdetect_anomalies_online method provides:
- Flexible Control: Fine-tune detection sensitivity and confidence levels
- Local & Global Detection: Analyze individual series or detect system-wide anomalies across multiple correlated metrics
- Stream Processing: Monitor live data feeds with rolling window analysis
Common Use Cases
- Server Monitoring: Detect CPU spikes, memory leaks, and downtime
- IoT Sensors: Identify equipment failures and sensor malfunctions
- Fraud Detection: Flag suspicious transactions in real-time
- Application Performance: Monitor API response times and error rates
Quick Start
Step 1: Set up your environment
Initialize your Python environment by importing the required libraries:Step 2: Configure your NixtlaClient
Provide your API key (and optionally a custom base URL).Step 3: Load your dataset
We use a minute-level time series dataset that monitors server usage. This dataset is ideal for showcasing streaming data scenarios, where the task is to detect server failures or downtime in real time.
Server Data with Spike Anomaly
Step 4: Detect anomalies in real time
Thedetect_anomalies_online method detects anomalies in a time series leveraging TimeGPT’s forecast power. It uses the forecast error in deciding the anomalous step so you can specify and tune the parameters like that of the forecast method. This function will return a dataframe that contains anomaly flags and anomaly score (its absolute value quantifies the abnormality of the value).
To perform real-time anomaly detection, set the following parameters:
df: A pandas DataFrame containing the time series data.time_col: The column that identifies the datestamp.target_col: The variable to forecast.h: Horizon is the number of steps ahead to make a forecast.freq: The frequency of the time series in Pandas format.level: Percentile of scores distribution at which the threshold is set, controlling how strictly anomalies are flagged. Default at 99%.detection_size: The number of steps to analyze for anomaly at the end of time series.
Log Output
| unique_id | ts | y | TimeGPT | anomaly | anomaly_score | TimeGPT-hi-99 | TimeGPT-lo-99 |
|---|---|---|---|---|---|---|---|
| machine-1-1_y_29 | 2020-02-01 22:11:00 | 0.606017 | 0.544625 | True | 18.463266 | 0.553161 | 0.536090 |
| machine-1-1_y_29 | 2020-02-01 22:12:00 | 0.044413 | 0.570869 | True | -158.933850 | 0.579404 | 0.562333 |
| machine-1-1_y_29 | 2020-02-01 22:13:00 | 0.038682 | 0.560303 | True | -157.474880 | 0.568839 | 0.551767 |
| machine-1-1_y_29 | 2020-02-01 22:14:00 | 0.024355 | 0.521797 | True | -150.178240 | 0.530333 | 0.513261 |
| machine-1-1_y_29 | 2020-02-01 22:15:00 | 0.044413 | 0.467860 | True | -127.848560 | 0.476396 | 0.459325 |

Identified Anomalies
Here we use a detection size of 100 to illustrate the anomaly detection process. In production, running detections more frequently with smaller detection sizes can help identify anomalies as soon as they occur.
Frequently Asked Questions
What’s the difference between online and historical anomaly detection? Online detection analyzes recent data windows for immediate alerting, while historical detection analyzes complete datasets for pattern discovery. Can I adjust detection sensitivity? Yes, tune thelevel parameter (confidence threshold) and detection_size (analysis window) to control false positive rates.
Next Steps
Now that you’ve detected your first anomalies in real-time, explore these guides to optimize your detection:- Controlling the Anomaly Detection Process - Learn how to fine-tune key parameters for more accurate detection
- Local vs Global Anomaly Detection - Choose the right detection strategy for single vs multiple correlated time series