Overview
The Track Manager component is responsible for managing entity tracking and situational awareness data within FreeTAKServer. It provides functionality for tracking positions, exporting track data to external servers, and searching track information across the TAK ecosystem.Architecture
Component Structure
Key Classes
TrackManagerFacade
Location:FreeTAKServer/components/extended/track_manager/track_manager_facade.py:9
- Provides public interface for track management operations
- Isolates internal complexity from external callers
- Routes requests to appropriate controllers
TrackManagerGeneralController
Location:FreeTAKServer/components/extended/track_manager/controllers/track_manager_general_controller.py:8
Core Functionality
Track Export
The Track Manager supports exporting track data to external servers for:- Inter-server track sharing
- Backup and archival
- Integration with external systems
- Multi-server deployments
Track Search
Search functionality enables querying track data based on various criteria: Search Parameters:- UID
- Callsign
- Time range
- Geographic bounds
- Team/group membership
- Track type
Track Storage and Persistence
Controller:TrackManagerPersistence
Manages persistent storage of track data:
Track Serialization
The component supports multiple serialization formats: XML (CoT):Track Data Model
Event Model
Location:FreeTAKServer/components/extended/track_manager/domain/_event.py
Represents track position events:
Component Properties
Location:FreeTAKServer/components/extended/track_manager/domain/_component_property.py
Defines track-specific properties and metadata.
Integration with Services
Service Manager Integration
Track Manager integrates with the Service Manager for:Database Integration
Tracks are persisted to the database for:- Historical playback
- Track analysis
- Search capabilities
- Situational awareness reconstruction
Advanced Features
Track History
Maintains historical track data:Track Filtering
Filter tracks based on criteria:Track Aggregation
Aggregate track data for analysis:Complete Usage Example
Configuration
File:track_manager_constants.py
Configuration options:
- Track retention period
- Export destinations
- Search index configuration
- Serialization defaults
Best Practices
- Retention Policy: Configure appropriate track retention periods
- Search Indexing: Ensure search indices are optimized
- Export Scheduling: Schedule regular track exports for backup
- Performance: Use time-based filtering to limit result sets
- Cleanup: Regularly purge old track data based on retention policy
Performance Considerations
Database Optimization
- Index on UID, callsign, and timestamp fields
- Partition historical data by time period
- Archive old tracks to separate storage
Search Optimization
- Use geographic bounds to limit search area
- Apply time range filters to reduce dataset
- Limit result set size for large queries
Export Optimization
- Batch export operations
- Use incremental exports when possible
- Compress export data for transmission
Monitoring
Track key metrics:- Active track count
- Track update frequency
- Search query performance
- Export success rate
- Database storage usage
Error Handling
Related Components
- CoT Manager - CoT message processing
- Emergency - Emergency entity tracking
- Federation - Cross-server track sharing
- Mission - Mission-based track filtering