309 lines
7.3 KiB
Markdown
Raw Normal View History

2025-05-31 20:55:52 +08:00
# Guides Documentation
This section contains user guides, tutorials, and setup instructions for the TCP Dashboard platform.
## 📋 Contents
### Setup & Installation
- **[Setup Guide](setup.md)** - *Comprehensive setup instructions for new machines and environments*
- Environment configuration and prerequisites
- Database setup with Docker and PostgreSQL
- Development workflow and best practices
- Production deployment guidelines
- Troubleshooting common setup issues
### Quick Start Guides
#### For Developers
```bash
# Quick setup for development
git clone <repository>
cd TCPDashboard
uv sync
cp .env.example .env
docker-compose up -d
uv run python scripts/init_database.py
```
#### For Users
```python
# Quick data collection setup
from data.exchanges import create_okx_collector
from data.base_collector import DataType
collector = create_okx_collector(
symbol='BTC-USDT',
data_types=[DataType.TRADE]
)
await collector.start()
```
## 🚀 Tutorial Series
### Getting Started
1. **[Environment Setup](setup.md#environment-setup)** - Setting up your development environment
2. **[First Data Collector](setup.md#first-collector)** - Creating your first data collector
3. **[Database Integration](setup.md#database-setup)** - Connecting to the database
4. **[Adding Monitoring](setup.md#monitoring)** - Setting up logging and monitoring
### Advanced Topics
1. **[Multi-Exchange Setup](setup.md#multi-exchange)** - Collecting from multiple exchanges
2. **[Production Deployment](setup.md#production)** - Deploying to production
3. **[Performance Optimization](setup.md#optimization)** - Optimizing for high throughput
4. **[Custom Integrations](setup.md#custom)** - Building custom data sources
## 🛠️ Development Workflow
### Daily Development
```bash
# Start development environment
docker-compose up -d
# Install new dependencies
uv add package-name
# Run tests
uv run pytest
# Check code quality
uv run black .
uv run isort .
```
### Code Organization
- **`data/`**: Data collection and processing
- **`database/`**: Database models and utilities
- **`utils/`**: Shared utilities and logging
- **`tests/`**: Test suite
- **`docs/`**: Documentation
- **`config/`**: Configuration files
### Best Practices
1. **Follow existing patterns**: Use established code patterns
2. **Write tests first**: TDD approach for new features
3. **Document changes**: Update docs with code changes
4. **Use type hints**: Full type annotation coverage
5. **Handle errors**: Robust error handling throughout
## 🔧 Configuration Management
### Environment Variables
Key environment variables to configure:
```bash
# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/tcp_dashboard
# Logging
LOG_LEVEL=INFO
LOG_CLEANUP=true
# Data Collection
DEFAULT_HEALTH_CHECK_INTERVAL=30
AUTO_RESTART=true
```
### Configuration Files
The platform uses JSON configuration files:
- **`config/okx_config.json`**: OKX exchange settings
- **`config/database_config.json`**: Database configuration
- **`config/logging_config.json`**: Logging settings
### Security Best Practices
- **Never commit secrets**: Use `.env` files for sensitive data
- **Validate inputs**: Comprehensive input validation
- **Use HTTPS**: Secure connections in production
- **Regular updates**: Keep dependencies updated
## 📊 Monitoring & Observability
### Health Monitoring
The platform includes comprehensive health monitoring:
```python
# Check system health
from data.collector_manager import CollectorManager
manager = CollectorManager()
status = manager.get_status()
print(f"Running collectors: {status['statistics']['running_collectors']}")
print(f"Failed collectors: {status['statistics']['failed_collectors']}")
```
### Logging
Structured logging across all components:
```python
from utils.logger import get_logger
logger = get_logger("my_component")
logger.info("Component started", extra={"component": "my_component"})
```
### Performance Metrics
Built-in performance tracking:
- **Message rates**: Real-time data processing rates
- **Error rates**: System health and stability
- **Resource usage**: Memory and CPU utilization
- **Uptime**: Component availability metrics
## 🧪 Testing
### Running Tests
```bash
# Run all tests
uv run pytest
# Run specific test files
uv run pytest tests/test_base_collector.py
# Run with coverage
uv run pytest --cov=data --cov-report=html
# Run integration tests
uv run pytest tests/integration/
```
### Test Organization
- **Unit tests**: Individual component testing
- **Integration tests**: Cross-component functionality
- **Performance tests**: Load and stress testing
- **End-to-end tests**: Full system workflows
### Writing Tests
Follow these patterns when writing tests:
```python
import pytest
import asyncio
from data.exchanges import create_okx_collector
@pytest.mark.asyncio
async def test_okx_collector():
collector = create_okx_collector('BTC-USDT')
assert collector is not None
# Test lifecycle
await collector.start()
status = collector.get_status()
assert status['status'] == 'running'
await collector.stop()
```
## 🚀 Deployment
### Development Deployment
For local development:
```bash
# Start services
docker-compose up -d
# Initialize database
uv run python scripts/init_database.py
# Start data collection
uv run python scripts/start_collectors.py
```
### Production Deployment
For production environments:
```bash
# Use production docker-compose
docker-compose -f docker-compose.prod.yml up -d
# Set production environment
export ENV=production
export LOG_LEVEL=INFO
# Start with monitoring
uv run python scripts/production_start.py
```
### Docker Deployment
Using Docker containers:
```dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "-m", "scripts.production_start"]
```
## 🔗 Related Documentation
2025-06-06 20:33:29 +08:00
- **[Modules Documentation (`../modules/`)](../modules/)** - Technical component details
- **[Architecture Overview (`../architecture.md`)]** - System design
- **[Exchange Documentation (`../modules/exchanges/`)](../modules/exchanges/)** - Exchange integrations
- **[Reference (`../reference/`)](../reference/)** - Technical specifications
2025-05-31 20:55:52 +08:00
## 📞 Support & Troubleshooting
### Common Issues
1. **Database Connection Errors**
- Check Docker services: `docker-compose ps`
- Verify environment variables in `.env`
- Test connection: `uv run python scripts/test_db_connection.py`
2. **Collector Failures**
- Check logs: `tail -f logs/collector_error.log`
- Verify configuration: Review `config/*.json` files
- Test manually: `uv run python scripts/test_okx_collector.py`
3. **Performance Issues**
- Monitor resource usage: `docker stats`
- Check message rates: Collector status endpoints
- Optimize configuration: Adjust health check intervals
### Getting Help
1. **Check Documentation**: Review relevant section documentation
2. **Review Logs**: System logs in `./logs/` directory
3. **Test Components**: Use built-in test scripts
4. **Check Status**: Use status and health check methods
### Debug Mode
Enable detailed debugging:
```bash
export LOG_LEVEL=DEBUG
uv run python your_script.py
# Check detailed logs
tail -f logs/*_debug.log
```
---
2025-06-06 20:33:29 +08:00
*For the complete documentation index, see the [main documentation README (`../README.md`)]*