Overview
Overview
Execution timing capabilities provide powerful control over when and how often your telemetry pipeline components execute. By adding temporal logic to targets and routes, you can optimize resource usage, reduce costs, implement time-based routing strategies, and align data processing with business requirements.
What You Can Do
Control Execution Timing
Execute components at specific times or regular intervals:
- Targets: Control when data is sent to destinations
- Routes: Control when data flows through specific paths
Optimize Resource Usage
Reduce system load by processing data during specific time windows:
- Run expensive operations during off-peak hours
- Batch data processing to reduce API calls
- Schedule resource-intensive targets for low-traffic periods
- Implement graduated data retention strategies
Implement Business Logic
Align data processing with business schedules:
- Process data only during business hours
- Route critical logs differently during peak times
- Archive data on specific days or times
- Create time-based data tiers (hot, warm, cold)
Reduce Costs
Minimize expenses by controlling when and how often components execute:
- Batch API calls to reduce per-request costs
- Route data to expensive services less frequently
- Use cheaper storage during off-peak hours
- Implement cost-effective retention policies
Timing Methods
The platform provides two complementary approaches to time-based execution:
Cron
Execute components at specific times using cron expressions.
Best for:
- Time-specific execution (daily at 3 AM, weekdays at 9 AM)
- Business hour constraints
- Calendar-based patterns (monthly reports, weekend processing)
- Complex time windows
Learn more: Cron Documentation
Interval
Execute components at regular intervals using simple time units.
Best for:
- Regular periodic execution (every 5 minutes, every hour)
- Simple batching strategies
- Predictable resource consumption
- Straightforward configuration
Learn more: Interval Documentation
Use Cases and Scenarios
Time-Based Data Routing
Route data to different destinations based on time:
# Send to realtime analytics during business hours
routes:
- name: business_hours_analytics
source: "application_logs"
destination: "realtime_splunk"
properties:
cron: "* 9-17 * * 1-5"
# Archive all data once per day
routes:
- name: daily_archive
source: "application_logs"
destination: "s3_archive"
properties:
cron: "0 0 * * *"
# Default realtime processing
routes:
- name: default_route
source: "application_logs"
destination: "basic_storage"
Benefits:
- Realtime insights during business hours
- Cost-effective archival during off-hours
- Automatic failover to basic storage
Cost-Optimized Data Tiers
Implement hot, warm, and cold data tiers:
# Hot tier - realtime expensive analytics
targets:
- name: hot_tier
type: elastic
properties:
index: "logs-hot"
endpoints:
- endpoint: "https://premium-es.example.com:9200"
# Warm tier - hourly batch to moderate storage
targets:
- name: warm_tier
type: elastic
properties:
interval: "1h"
index: "logs-warm"
endpoints:
- endpoint: "https://standard-es.example.com:9200"
# Cold tier - daily archive to cheap storage
targets:
- name: cold_tier
type: awss3
properties:
cron: "0 2 * * *"
bucket: "logs-cold"
region: "us-east-1"
Benefits:
- Realtime access to recent data
- Reduced costs for historical data
- Automatic data lifecycle management
Business Hours Processing
Process critical data differently during business hours:
# High priority during business hours
routes:
- name: business_hours_critical
source: "error_logs"
destination: "alert_system"
properties:
cron: "* 9-17 * * 1-5"
# Batch processing after hours
routes:
- name: after_hours_batch
source: "error_logs"
destination: "batch_processor"
properties:
cron: "0 18-8 * * *"
Benefits:
- Immediate alerts during work hours
- Efficient batch processing overnight
- Reduced alert fatigue after hours
Periodic Backup and Compliance
Implement automated backup and compliance workflows:
# Hourly backup to secondary region
targets:
- name: backup_target
type: awss3
properties:
interval: "1h"
bucket: "logs-backup"
region: "us-west-2"
# Daily compliance archive
targets:
- name: compliance_archive
type: awss3
properties:
cron: "0 1 * * *"
bucket: "logs-compliance"
region: "us-east-1"
# Weekly long-term archive
targets:
- name: longterm_archive
type: glacier
properties:
cron: "0 3 * * 0"
vault: "logs-longterm"
Benefits:
- Disaster recovery protection
- Regulatory compliance
- Efficient long-term storage
Peak Load Management
Handle varying data volumes throughout the day:
# Realtime processing during low-traffic hours
routes:
- name: night_realtime
source: "high_volume_logs"
destination: "realtime_processor"
properties:
cron: "* 0-6,22-23 * * *"
# Batched processing during peak hours
routes:
- name: peak_hours_batch
source: "high_volume_logs"
destination: "batch_processor"
properties:
cron: "*/15 7-21 * * *"
Benefits:
- Reduced latency during low-traffic periods
- System stability during peak hours
- Efficient resource utilization
Multi-Region Data Distribution
Distribute data across regions based on time zones:
# US region during US business hours
targets:
- name: us_target
type: splunk
properties:
cron: "* 9-17 * * 1-5"
endpoints:
- endpoint: "https://us-splunk.example.com:8088/services/collector"
token: "US-TOKEN"
# EU region during EU business hours
targets:
- name: eu_target
type: splunk
properties:
cron: "* 9-17 * * 1-5"
endpoints:
- endpoint: "https://eu-splunk.example.com:8088/services/collector"
token: "EU-TOKEN"
# Global 24/7 backup
targets:
- name: global_backup
type: awss3
properties:
interval: "1h"
bucket: "logs-global"
Benefits:
- Reduced cross-region latency
- Compliance with data sovereignty
- 24/7 backup coverage
Graduated Retention Policy
Implement automatic data lifecycle management:
# Keep everything for 7 days
targets:
- name: hot_storage
type: elastic
properties:
index: "logs-recent"
# Archive weekly to cheaper storage
targets:
- name: warm_storage
type: clickhouse
properties:
cron: "0 2 * * 0"
table: "logs_archive"
# Monthly move to cold storage
targets:
- name: cold_storage
type: awss3
properties:
cron: "0 3 1 * *"
bucket: "logs-cold-archive"
Benefits:
- Fast access to recent data
- Cost-effective long-term storage
- Automated data lifecycle
Development vs Production
Different schedules for different environments:
# Development - batch every 30 minutes
targets:
- name: dev_splunk
type: splunk
properties:
interval: "30m"
endpoints:
- endpoint: "https://dev-splunk.example.com:8088/services/collector"
token: "DEV-TOKEN"
# Production - realtime processing
targets:
- name: prod_splunk
type: splunk
properties:
# No interval - continuous realtime
endpoints:
- endpoint: "https://prod-splunk.example.com:8088/services/collector"
token: "PROD-TOKEN"
Benefits:
- Reduced costs in development
- Realtime monitoring in production
- Environment-appropriate SLAs
Configuration Patterns
Combining Cron and Interval
Use both for different components in the same pipeline:
# Cron-based target for compliance
targets:
- name: compliance_target
type: awss3
properties:
cron: "0 0 * * *"
bucket: "compliance-logs"
# Interval-based target for monitoring
targets:
- name: monitoring_target
type: elastic
properties:
interval: "5m"
index: "monitoring"
# Realtime target for alerts
targets:
- name: alert_target
type: splunk
properties:
# No cron or interval - realtime
index: "alerts"
Conditional Time-Based Routes
Create fallback routing with time constraints:
routes:
# Priority 1: Business hours to premium service
- name: priority_route
source: "logs"
destination: "premium_target"
properties:
cron: "* 9-17 * * 1-5"
# Priority 2: Night hours to standard service
- name: night_route
source: "logs"
destination: "standard_target"
properties:
cron: "* 0-8,18-23 * * *"
# Priority 3: Weekend to basic service
- name: weekend_route
source: "logs"
destination: "basic_target"
properties:
cron: "* * * * 0,6"
# Default: fallback to archive
- name: fallback_route
source: "logs"
destination: "archive_target"
Best Practices
Start Simple
Begin with interval-based execution for straightforward use cases:
properties:
interval: "5m"
Migrate to cron when you need specific timing:
properties:
cron: "0 */6 * * *"
Consider Data Volume
Match timing configuration to expected data volume:
- High volume: Use longer intervals or specific cron schedules
- Low volume: Realtime or short intervals work well
- Variable volume: Use time-based routing to handle peaks
Monitor Queue Depth
Between scheduled executions, data accumulates in queues:
- Monitor queue sizes to prevent memory issues
- Adjust intervals if queues grow too large
- Balance batch size with interval duration
Document Timezone Assumptions
All cron schedules use system local time:
# Runs at midnight system local time
properties:
cron: "0 0 * * *"
Always document expected timezone in configuration comments.
Test Cron Expressions
Validate cron expressions before deployment:
- Use online cron validators
- Test in development environment first
- Document intended execution times
Plan for Failures
Cron-based components don't retry immediately:
- Failed executions wait for next scheduled time
- Ensure monitoring alerts for execution failures
- Consider redundant routes for critical data
Performance Impact
Memory Considerations
Longer intervals mean larger queues:
- Short intervals (< 5m): Smaller queues, higher CPU
- Long intervals (> 1h): Larger queues, lower CPU
- Balance based on available memory and data volume
Network Impact
Timing configuration affects network patterns:
- Realtime: Constant network usage
- Short intervals: Frequent bursts
- Long intervals: Large periodic bursts
- Plan network capacity accordingly
Processing Latency
Consider end-to-end latency requirements:
- Realtime needs: Omit timing configuration
- Near-realtime (< 5m): Short intervals
- Batch processing: Longer intervals or cron schedules
- Compliance: Cron-based with guaranteed execution times
Migration Strategies
From Realtime to Scheduled
Gradually introduce timing controls to reduce costs:
- Start with realtime (no timing configuration)
- Add long intervals (1h+) during testing
- Refine intervals based on actual needs
- Migrate to cron schedules for specific timing requirements
From Scheduled to Realtime
Increase processing frequency for better latency:
- Start with daily cron schedules
- Move to hourly intervals
- Reduce to 15-minute intervals
- Remove timing configuration for realtime processing
Summary
Time-based execution provides essential control over telemetry pipeline behavior. By combining cron and interval timing with routes and targets, you can:
- Optimize resource usage and reduce costs
- Implement sophisticated data lifecycle policies
- Align processing with business requirements
- Create resilient, efficient data pipelines
Start with simple intervals for regular processing, then add cron-based logic for complex time-aware workflows.
Next Steps:
- Read Cron Documentation for cron-based execution
- Read Interval Documentation for interval-based execution
- Explore target-specific documentation for integration details