Files
DashBoard/environment.yml
egg dbe0da057c feat(trace-pipeline): memory triage, async job queue, and NDJSON streaming
Three proposals addressing the 2026-02-25 trace pipeline OOM crash (114K CIDs):

1. trace-events-memory-triage: fetchmany iterator (read_sql_df_slow_iter),
   admission control (50K CID limit for non-MSD), cache skip for large queries,
   early memory release with gc.collect()

2. trace-async-job-queue: RQ-based async jobs for queries >20K CIDs,
   separate worker process with isolated memory, frontend polling via
   useTraceProgress composable, systemd service + deploy scripts

3. trace-streaming-response: chunked Redis storage (TRACE_STREAM_BATCH_SIZE=5000),
   NDJSON stream endpoint (GET /api/trace/job/<id>/stream), frontend
   ReadableStream consumer for progressive rendering, backward-compatible
   with legacy single-key storage

All three proposals archived. 1101 tests pass, frontend builds clean.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 21:01:27 +08:00

51 lines
1.3 KiB
YAML

# Conda environment for MES Dashboard
# Usage: conda env create -f environment.yml
# conda activate mes-dashboard
#
# Note: Packages use bounded ranges (>=,<) to avoid accidental major-version breaks.
# For reproducible builds, generate a lock file: pip freeze > requirements.lock
name: mes-dashboard
channels:
- conda-forge
- defaults
dependencies:
# Python version - pinned for consistency across deployments
- python=3.11
# Frontend build toolchain (Vite)
- nodejs>=22
# Use pip for Python packages (better compatibility with pypi packages)
- pip
- pip:
# Core Framework
- flask>=3.0.0,<4.0.0
# Database
- oracledb>=2.0.0,<4.0.0
- sqlalchemy>=2.0.0,<3.0.0
# Data Processing
- pandas==2.3.3 # Pin DBAPI2-compatible release for current pd.read_sql flow
- pyarrow>=17.0.0,<20.0.0 # Parquet serialization for Redis DataFrame cache
- openpyxl>=3.0.0
# Cache (Redis)
- redis>=5.0.0,<6.0.0
- hiredis>=2.0.0,<4.0.0 # C parser for better performance
# Task Queue (async trace jobs)
- rq>=1.16.0,<2.0.0
# HTTP Client
- requests>=2.28.0,<3.0.0
# Configuration
- python-dotenv>=1.0.0,<2.0.0
# WSGI Server (Production)
- gunicorn>=21.2.0,<25.0.0
# System Monitoring
- psutil>=5.9.0,<7.0.0