Telemetry Management
Audience: Control Core administrators, security & privacy reviewers Time: ~10 min read
This guide explains what telemetry Control Core collects, how it is transmitted to the License Server, and why each field is needed. It also covers configuration and troubleshooting.
Overview
Telemetry is the heartbeat between your Control Plane and the Control Core License Server. It is intentionally minimal: counts and license posture only — no policy content, no rule logic, no identifiable user data.
It is used for:
- Subscription verification — confirming your trial / paid window is current
- Bouncer-pair billing — pricing is per bouncer pair (sandbox + production)
- License management — tracking remaining trial / paid days and renewals
- Support — health signal so Control Core can spot stalled deployments early
What is collected (the only fields we send)
Important: the telemetry payload is locked at the schema level (
extra='forbid'). Anything outside this list is rejected before the network call is made — see the Control Plane telemetry payload purity tests in your installation's source bundle.
| Field | Purpose |
|---|---|
customer_id | Stripe customer identifier (mapped from your installation) |
instance_id | Control Plane installation id (random UUID, no IP) |
date | Reporting day |
bouncer_count | Active bouncers reporting traffic |
deployed_bouncer_count | Bouncers registered with the Control Plane |
active_reporting_bouncer_count | Bouncers that emitted decisions in the window |
policy_decision_count | Total decisions across all bouncers |
total_events | Audit events recorded (counts only) |
successful_decisions, sandbox_events, production_events | Decision splits (counts only) |
health_status, deployment_version, tier | Operational posture |
days_remaining, license_status, telemetry_availability | License window |
bouncer_pairs.{total_pairs, sandbox_only_count, production_only_count, paired_count} | Pair counts for billing |
license_metrics.* | License token connect / expiry / refresh booleans + ages |
redeemed_extension_codes | code_id values redeemed since last tick (single-use IDs only) |
transmitted_at | Wallclock at send time |
The License Server URL is not customer-configurable. It is baked into the Control Plane at deploy time and treated as an implementation detail. The UI shows only a License Server: connected badge.
What is NOT collected (and never will be)
- Policy IDs, names, content, Rego source, or rule descriptions
- Action names, action configurations, or webhook URLs
- User identifiers, emails, IP addresses, or session tokens
- Resource paths, request bodies, or response bodies
- Any field not in the table above (rejected by
extra='forbid')
How it is transmitted
- Aggregator scheduler builds a payload from your local DB (no audit log content)
- Payload is validated against the strict Pydantic schema (
TelemetryAggregatePayload) - The validated payload is HMAC-signed with your API key (
X-Telemetry-Signatureheader) - POST to the License Server over TLS 1.2+
- Result is recorded in
telemetry_transmission_logs(success / failure / response code)
If transmission fails the next tick replays the same data — including
any redeemed_extension_codes — until it succeeds.
Why we collect this
| Why | Which fields |
|---|---|
| Verify subscription is paid / in-trial | tier, license_status, days_remaining, license_metrics.* |
| Charge per bouncer pair | bouncer_count, bouncer_pairs.* |
| Spot stalled / unhealthy installs early | health_status, telemetry_availability, license_metrics.telemetry_last_* |
| Confirm extension codes are redeemed | redeemed_extension_codes |
| Decision-volume sanity check (no content) | policy_decision_count, total_events, *_events counts |
Accessing Telemetry Settings
- Log in to the Control Core admin console
- Navigate to Settings → General
- Click on the Telemetry tab
Configuring the License Server connection
There is exactly one field you can configure: the API key. The URL is server-managed and not displayed.
Step 1: Configure API Key
- Enter your API Key in the API Key field
- The API key authenticates your Control Plane with the License Server
- Click Show to reveal the API key (if already configured)
Security: the API key is encrypted at rest using the Control Plane's
ENCRYPTION_KEY. Production deployments must set
ENCRYPTION_KEY (and CREDENTIAL_ENCRYPTION_KEY) explicitly — the
service refuses to start with ephemeral keys outside DEMO_MODE=true.
Step 2: Test Connection
- Click Test Connection button
- Wait for connection test to complete
- Review the result:
- Success: Connection is working correctly
- Failed: Check API key and verify outbound network connectivity
Step 3: Save Configuration
- Click Save to store your configuration
- Configuration is saved immediately
- Telemetry transmission begins automatically if enabled
Transmission Settings
Transmission Frequency
Configure how often telemetry data is sent to the License Server:
- Twice Monthly (Default): 1st and 15th of each month at 2 AM UTC
- Weekly: Every Monday at 2 AM UTC
- Monthly: 1st of each month at 2 AM UTC
- Daily: Every day at 2 AM UTC
Recommendation: Twice monthly is sufficient for most deployments and reduces network overhead.
Enable Telemetry
Toggle Enable Telemetry to:
- ON: Telemetry data is collected and transmitted
- OFF: Telemetry is disabled (not recommended for production)
Note: Disabling telemetry will prevent License Server connection and disable feature gating.
Security Settings
Data Encryption
Enable Data Encryption (Recommended: ON)
When enabled:
- Telemetry payload is encrypted using AES-256 encryption
- Data is encrypted before transmission
- License Server decrypts data using shared secret
Security Benefit: Protects sensitive usage data during transmission.
PII Anonymization
Enable PII Anonymization (Recommended: ON)
When enabled:
- Customer IDs are hashed/anonymized
- No personally identifiable information is transmitted
- Complies with GDPR and privacy regulations
Security Benefit: Ensures no PII is exposed in telemetry data.
Local Data Retention
Configure how long telemetry data is retained locally:
- 7 days: Minimum retention
- 30 days (Default): Recommended for troubleshooting
- 90 days: Extended retention for compliance
- 365 days: Maximum retention
Note: Data older than retention period is automatically purged.
Viewing Telemetry Data
Current Period Data Preview
The Current Period Data Preview section shows:
- Total Events: Total audit log events in current period
- Sandbox Events: Events from sandbox environment
- Production Events: Events from production environment
- Active Bouncers: Number of active bouncers reporting
- Policy Decisions: Number of policy evaluation decisions
- Health Status: Overall system health indicator
Note: If no bouncers are configured, preview will show zero values.
Transmission History
View past telemetry transmissions:
- Scroll to Transmission History section
- Review transmission log entries:
- Date: Transmission date
- Status: Success or Failed
- Records Sent: Number of records transmitted
- Response Code: HTTP response code
Retrying Failed Transmissions
If a transmission fails:
- Find the failed entry in Transmission History
- Click Retry button on the failed entry
- System will retry transmission with stored payload
- Check status after retry completes
Manual Transmission
Triggering Manual Transmission
To send telemetry data immediately:
- Click Send Now button in Transmission Settings section
- System will:
- Aggregate current period data
- Apply encryption/anonymization (if enabled)
- Transmit to License Server
- Log transmission result
Use Cases:
- Testing telemetry configuration
- Sending data before scheduled transmission
- Troubleshooting transmission issues
Monitoring Telemetry Health
Health Status Indicators
The telemetry system provides health indicators:
- Healthy: Connection active, recent successful transmission
- Warning: Connection active but last transmission > 7 days ago
- Unhealthy: Connection failed or transmission errors
- Disabled: Telemetry is disabled
- Not Configured: License Server connection not configured
Checking Health Status
- Navigate to Settings → General → Telemetry
- Review Current Period Data Preview for health status
- Check Transmission History for recent errors
- Use Test Connection to verify connectivity
Troubleshooting
Connection Test Fails
Issue: "Test Connection" returns failure
Solutions:
- Verify API key is correct and not expired
- Check outbound network connectivity (firewall, proxy settings)
- Verify the License Server is reachable from your network (the URL is server-managed and consistent across deployments)
- Check backend logs for detailed error messages
No Telemetry Data Available
Issue: "Current Period Data Preview" shows zero values
Possible Causes:
- No bouncers are configured or connected
- No audit log events in current period
- Telemetry aggregation service not running
Solutions:
- Verify bouncers are registered and active
- Check that policies are being evaluated (generates audit logs)
- Verify telemetry is enabled
- Check backend logs for aggregation errors
Transmission Failures
Issue: Transmissions are failing in history
Solutions:
- Check Error Details in transmission history entry
- Verify License Server is accessible
- Check API key is valid and not expired
- Review backend logs for detailed error messages
- Try manual transmission to test current configuration
Encryption/Anonymization Errors
Issue: Errors related to encryption or anonymization
Solutions:
- Verify encryption keys are configured correctly
- Check that encryption/anonymization settings match License Server
- Review backend logs for encryption errors
- Contact support if issue persists
Best Practices
Security Recommendations
- Always Enable Encryption: Protect data in transit
- Always Enable Anonymization: Comply with privacy regulations
- Use Strong API Keys: Rotate keys periodically
- Monitor Transmission History: Review for failures regularly
Performance Recommendations
- Use Twice Monthly Frequency: Reduces network overhead
- Set Appropriate Retention: Balance storage vs. troubleshooting needs
- Monitor Health Status: Address issues promptly
Compliance Recommendations
- Enable PII Anonymization: Required for GDPR compliance
- Set Retention Policies: Comply with data retention requirements
- Audit Transmission Logs: Maintain audit trail
Related Guides
- Subscription Management - Understand subscription plans
- License Enforcement - Feature gating and license requirements
- General Settings - Platform configuration