You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Anomstack uses a simplified 3-container Docker architecture:
86
+
-**anomstack_webserver**: Consolidated Dagster webserver with embedded user code (no separate gRPC server)
87
+
-**anomstack_daemon**: Dagster daemon for job scheduling and execution
88
+
-**anomstack_dashboard**: FastHTML dashboard for metrics visualization
89
+
90
+
This consolidated approach eliminates the previous gRPC code server, reducing network overhead and improving reliability through direct Python module loading.
91
+
52
92
### Core Components
53
93
-**anomstack/**: Main application code
54
94
-`main.py`: Dagster definitions and job orchestration
@@ -71,9 +111,22 @@ Metrics are organized into "batches" - collections of related metrics with share
71
111
### Jobs Workflow
72
112
1.**Ingest**: Run SQL/Python to collect metrics
73
113
2.**Train**: Train PyOD anomaly detection models
74
-
3.**Score**: Score new data points for anomalies
114
+
3.**Score**: Score new data points for anomalies
75
115
4.**Alert**: Send email/Slack alerts for detected anomalies
76
-
5.**Plot**: Generate visualizations in Dagster UI
116
+
5.**LLM Alert**: LLM-based anomaly detection and alerting using anomaly-agent
117
+
6.**Plot**: Generate visualizations in Dagster UI
118
+
7.**Change**: Change detection for metrics
119
+
8.**Summary**: Daily summary emails
120
+
9.**Delete**: Delete old metrics
121
+
10.**Reload**: Configuration hot-reload job
122
+
11.**Cleanup**: Disk space management
123
+
12.**Retention**: Custom retention for SQLite
124
+
125
+
### Dagster Sensors
126
+
Three key sensors monitor the system:
127
+
1.**email_on_run_failure**: Sends email notifications when Dagster runs fail
The `metrics/examples/` directory contains ready-to-use examples:
142
195
- HackerNews story metrics via API
143
196
- Weather data from Open Meteo
144
-
- Stock prices from Yahoo Finance
197
+
- Stock prices from Yahoo Finance (yfinance)
145
198
- System metrics from Netdata
146
-
- Simple Python-generated test metrics
199
+
- Simple Python-generated test metrics (python_ingest_simple)
200
+
- Earthquake data from USGS
201
+
- ISS location tracking
202
+
- PostHog analytics (requires credentials)
203
+
- Currency exchange rates
204
+
- And 26+ total examples
205
+
206
+
When adding new metrics, follow existing patterns in examples and ensure proper `.yaml` configuration with required fields like `metric_batch`, `db`, and cron schedules.
147
207
148
-
When adding new metrics, follow existing patterns in examples and ensure proper `.yaml` configuration with required fields like `metric_batch`, `db`, and cron schedules.
208
+
Use `make run-example EXAMPLE=<name>` to test individual examples or `make list-examples` to see all available examples.
0 commit comments