Files

109 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

# Document Processing Monitor
This directory contains scripts to monitor document processing status after running batch uploads.
## Quick Start
1. Navigate to the manual tests directory:
```bash
cd scripts/manual_tests
```
2. Run your batch upload:
```bash
./test_zip_upload2.sh
```
3. Check processing status:
```bash
./monitoring/check_processing.sh
```
## What the Monitor Shows
The `check_processing.sh` script provides a post-upload analysis showing:
- **Batch Status**: Overall batch processing state and progress
- **Document Breakdown**: Document counts through each processing stage (uploaded, cleaned, extracted)
- **Queue Depths**: Current number of messages in each SQS queue
- **Processing Analysis**: Where processing stopped and why
- **Next Steps**: Specific solutions for common issues
## Sample Output
```
========================================
Document Processing Status Check
========================================
[INFO] Finding most recent batch...
[SUCCESS] Found batch: 550e8400-e29b-41d4-a716-446655440000
[INFO] Batch Status:
Status: processing
Progress: 2/3 documents processed
[INFO] Document Breakdown:
Total documents in DB: 3
Uploaded to storage: 3
Passed cleaning: 0
Text extracted: 0
[INFO] Current Queue Depths:
store_event: 0 messages
document_init: 0 messages
document_sync: 1 messages
document_clean: 0 messages
document_text: 0 messages
query_sync: 0 messages
query_runner: 0 messages
[INFO] Processing Analysis:
[WARNING] Documents blocked at sync stage: Client CanSync flag is false
Solution: Run 'INSERT INTO clientcansync (clientid, cansync) VALUES ('[client_id]', true);'
⚠️ Processing stopped at document sync (client CanSync issue)
========================================
```
## Common Issues and Solutions
### 1. Processing Stopped at Document Sync
**Symptom**: Documents stuck in `document_sync` queue
**Cause**: Client's CanSync flag is false or unset
**About the CanSync Flag**:
The CanSync flag is a client-level permission control that determines whether documents for a specific client are allowed to proceed through the document synchronization stage. This is a business rule enforcement mechanism that can be used for:
- Client onboarding workflows (only allow sync after certain prerequisites)
- Compliance requirements (only sync documents for authorized clients)
- Feature gating (premium vs basic client tiers)
**Default Behavior**: New clients do NOT have a CanSync entry by default (NULL state), which blocks processing.
**Solution**:
```sql
INSERT INTO clientcansync (clientid, cansync) VALUES ('your_client_id', true);
```
**For Demo Purposes**: Always set `cansync = true` to allow the full document processing pipeline to run and demonstrate all stages working.
### 2. Processing Stopped at Document Cleaning
**Symptom**: Documents stuck in `document_clean` queue with MIME type errors
**Cause**: S3 objects missing proper Content-Type headers
**Solution**: Ensure MIME type detection is working in upload code
### 3. No Processing Activity
**Symptom**: Documents remain in `pending` status
**Cause**: Queue runners may not be running
**Solution**: Check `docker ps` and restart services if needed
## Requirements
- AWS CLI (for SQS queue monitoring)
- Docker (for database queries and service log access)
- Running query-orchestration stack
## Files
- `check_processing.sh` - Main monitoring script
- `README.md` - This documentation