Starlink Integration
Monitor satellite connectivity with enterprise-grade observability
Overview
The SignalWeave Starlink integration provides comprehensive monitoring for SpaceX's satellite internet service. This integration collects telemetry data from Starlink user terminals to monitor connectivity health, performance metrics, and device status in real-time.
Private Preview Access:
- Request access to our Private Preview program
- Install the Datadog Agent on your monitoring host
- Ensure network access to your Starlink device (local gRPC connection)
- Configure the Starlink integration with your device details
Starlink Enterprise API Integration
Looking for Starlink Enterprise API integration? We're currently developing this feature and are seeking partners to help shape its development. If you're interested in becoming a development partner for the Enterprise API integration, please reach out through our partnership program.
Enterprise API Features (In Development):
- Direct integration with Starlink Enterprise Dashboard API
- Multi-site fleet management and monitoring
- Advanced data usage analytics and reporting
- Enterprise-grade alerting and notification systems
- Custom dashboard creation and management
Setup
Private Preview Program
The Starlink integration is currently available in Private Preview. Request access to get started with monitoring your Starlink connectivity.
Installation
Once you have Private Preview access, the Starlink integration is included with the Datadog Agent. No additional installation is required.
Prerequisites
- Datadog Agent v7.0 or higher installed
- Network access to Starlink device (typically 192.168.100.1)
- Active Starlink service and terminal
- Datadog API and App keys configured
Configuration
Host
To configure this check for an Agent running on a host:
Metric collection
1. Edit the starlink.d/conf.yaml file in the conf.d/ folder at the root of your Agent's configuration directory to start collecting your Starlink metrics. See the sample starlink.d/conf.yaml for all available configuration options.
init_config:
instances:
## @param starlink_host - string - required
## IP address of your Starlink device.
#
- starlink_host: "192.168.100.1"
## @param starlink_port - integer - optional - default: 9000
## Port for gRPC connection to Starlink device.
#
# starlink_port: 9000
## @param collection_interval - integer - optional - default: 30
## Collection interval in seconds.
#
# collection_interval: 30
## @param tags - list of key:value element - optional
## List of tags to attach to every metric and service check.
#
# tags:
# - "environment:production"
# - "site:headquarters"Docker
To configure this check for an Agent running on Docker:
docker run -d --name datadog-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -v /etc/datadog-agent/conf.d:/etc/datadog-agent/conf.d:ro \ -e DD_API_KEY=your_api_key_here \ -e DD_SITE="datadoghq.com" \ datadog/agent:7
Kubernetes
To configure this check for an Agent running on Kubernetes:
apiVersion: v1
kind: Pod
metadata:
name: datadog-agent
annotations:
ad.datadoghq.com/starlink.checks: |
{
"starlink": {
"init_config": {},
"instances": [
{
"starlink_host": "192.168.100.1"
}
]
}
}
spec:
containers:
- name: datadog-agentValidation
Run the Agent's status subcommand and look for starlink under the Checks section.
sudo datadog-agent statusData Collected
Metrics
Comprehensive Starlink gRPC Telemetry
Our integration collects extensive telemetry data from Starlink devices through direct gRPC connection, providing real-time insights into satellite connectivity, device performance, dish positioning, and network health.
Device Information
| Metric Name | Description | Unit | Example |
|---|---|---|---|
| starlink.device.id | Unique terminal identifier | string | ut40989c85-08b2441b-1856f148 |
| starlink.device.hardware_version | Hardware revision | string | rev4_catapult_proto1 |
| starlink.device.software_version | Current firmware version | string | 2025.09.02.mr62849.1 |
| starlink.device.country_code | Terminal location country | string | US |
| starlink.device.bootcount | Number of system reboots | count | 15 |
| starlink.uptime.seconds | Seconds since last reboot | s | 7948 |
Network Performance
| Metric Name | Description | Unit | Example |
|---|---|---|---|
| starlink.packet_loss.percent | Packet loss rate | % | 0.30 (30%) |
| starlink.latency.ms | Round-trip latency in milliseconds | ms | 52.73 |
| starlink.throughput.down.mbps | Download speed in Mbps | Mbps | 29.4 |
| starlink.throughput.up.mbps | Upload speed in Mbps | Mbps | 2.0 |
| starlink.ethernet.speed_mbps | Ethernet connection speed | Mbps | 100 |
Signal Quality & Obstruction
| Metric Name | Description | Unit | Example |
|---|---|---|---|
| starlink.obstructions.percent | Percentage of sky view obstructed | % | 1.01 |
| starlink.obstructions.time_percent | Fraction of time experiencing obstruction | % | 0.42 |
| starlink.obstructions.avg_duration_s | Average obstruction event duration | s | 2.92 |
| starlink.obstructions.avg_interval_s | Average time between obstructions | s | 3085.71 |
| starlink.signal.above_noise | Signal quality indicator (0/1) | bool | True |
Dish Positioning & Alignment
| Metric Name | Description | Unit | Example |
|---|---|---|---|
| starlink.pointing.azimuth_deg | Current dish azimuth angle | deg | 119.53 |
| starlink.pointing.elevation_deg | Current dish elevation angle | deg | 87.35 |
| starlink.pointing.azimuth_target | Target azimuth for optimal signal | deg | 43.94 |
| starlink.pointing.elevation_target | Target elevation for optimal signal | deg | 63.58 |
| starlink.pointing.tilt_deg | Physical tilt of the dish | deg | 1.18 |
| starlink.pointing.attitude_uncertainty_deg | Positioning accuracy uncertainty | deg | 0.36 |
GPS & Location Services
| Metric Name | Description | Unit | Example |
|---|---|---|---|
| starlink.gps.valid | GPS signal availability (0/1) | bool | True |
| starlink.gps.sats | Number of GPS satellites tracked | count | 10 |
| starlink.mobility.class | Service mobility classification | integer | 2 |
System Alerts & Status
| Metric Name | Description | Unit | Example |
|---|---|---|---|
| starlink.software.install_pending | Firmware update pending (0/1) | bool | True |
| starlink.obstructions.status | Signal obstruction detected (0/1) | bool | True |
| starlink.roaming.status | Operating outside home location (0/1) | bool | True |
| starlink.ethernet.slow_speeds_100 | Ethernet speed limitation detected (0/1) | bool | True |
Software Update
| Metric Name | Description | Unit | Example |
|---|---|---|---|
| starlink.software.update_state | Update process state | integer | 6 |
| starlink.software.update_progress | Update completion percentage | % | 100.0 |
| starlink.software.reboot_scheduled_utc | Scheduled reboot timestamp | timestamp | 1757835979 |
Complete Datadog Metric Mapping
All metrics are automatically mapped to Datadog with standardized naming conventions and proper units.
| Original Metric | Datadog Metric Name | Type | Unit |
|---|---|---|---|
| pop_ping_latency_ms | starlink.latency.ms | gauge | ms |
| pop_ping_drop_rate | starlink.packet_loss.percent | gauge | % |
| downlink_throughput_bps | starlink.throughput.down.mbps | gauge | Mbps |
| uplink_throughput_bps | starlink.throughput.up.mbps | gauge | Mbps |
| fraction_obstructed | starlink.obstructions.percent | gauge | % |
| time_obstructed | starlink.obstructions.time_percent | gauge | % |
| uptime_s | starlink.uptime.seconds | gauge | s |
| boresight_azimuth_deg | starlink.pointing.azimuth_deg | gauge | deg |
| boresight_elevation_deg | starlink.pointing.elevation_deg | gauge | deg |
| desired_boresight_azimuth_deg | starlink.pointing.azimuth_target | gauge | deg |
| desired_boresight_elevation_deg | starlink.pointing.elevation_target | gauge | deg |
| gps_sats | starlink.gps.sats | gauge | count |
| gps_valid | starlink.gps.valid | gauge | bool |
| is_snr_above_noise_floor | starlink.signal.above_noise | gauge | bool |
| bootcount | starlink.device.reboots.count | count | n |
| software_update_progress | starlink.software.update_progress | gauge | % |
Events
The Starlink integration generates events based on device status, performance metrics, and system alerts:
Critical Events
- • Device Offline: Starlink terminal becomes unreachable
- • Signal Loss: Complete loss of satellite connectivity
- • Firmware Corruption: Software update failure or corruption detected
Warning Events
- • Signal Obstruction: Physical obstruction detected affecting performance
- • Performance Degradation: Throughput or latency issues detected
- • Frequent Reboots: Device stability concerns or excessive restarts
- • Ethernet Speed Limitation: Network speed limited to 100 Mbps
- • Roaming Mode: Operating outside home location
Info Events
- • Software Update Available: New firmware version ready for installation
- • Software Update Complete: Firmware update successfully installed
- • Configuration Change: Device settings or parameters modified
- • Connection Recovery: Service restored after temporary outage
- • Dish Repositioning: Dish alignment adjustment completed
- • GPS Signal Acquired: GPS positioning system operational
Success Events
- • Service Restored: Full connectivity and performance restored
- • Obstruction Cleared: Signal obstruction resolved
- • Performance Optimized: Throughput and latency improved
- • Update Successful: Software update completed without issues
Service Checks
Service checks monitor device status, connection health, obstructions, and software updates:
starlink.device.status
Monitors the overall device status and connectivity. Returns Online,Searching, or Offline.
Statuses: Online, Searching, Offline
starlink.connection.healthy
Evaluates connection health based on latency and packet loss metrics. Returns OK,WARN, or CRITICAL.
Statuses: OK, WARN, CRITICAL
starlink.obstruction.status
Monitors signal obstruction status. Returns Clear orObstructed.
Statuses: Clear, Obstructed
starlink.software.update_status
Tracks software update status. Returns Up-to-date,Pending, or Error.
Statuses: Up-to-date, Pending, Error
Out-of-the-Box Assets
Pre-Built Dashboards & Monitors
Get started immediately with our comprehensive set of pre-built Datadog dashboards, monitors, and SLOs. These assets are designed specifically for Starlink monitoring and provide instant visibility into your satellite connectivity.
Dashboards
Starlink Overview Dashboard
High-level view of all Starlink devices with key performance metrics, connectivity status, and alerts.
Starlink Performance Dashboard
Detailed performance analysis with historical trends, capacity planning, and optimization insights.
Starlink Network Health Dashboard
Network diagnostics, WiFi analytics, and client performance monitoring for comprehensive network health.
Starlink Fleet Management Dashboard
Multi-site fleet monitoring with geographic distribution, comparative analysis, and fleet-wide insights.
Monitors
Critical Performance Monitors
Device Health Monitors
Network Health Monitors
Fleet Management Monitors
Service Level Objectives (SLOs)
Availability SLOs
Performance SLOs
Quick Setup
All OOTB assets are automatically installed when you enable the Starlink integration. Simply configure your Starlink device details and the dashboards, monitors, and SLOs will be available immediately.
Troubleshooting
Connection Issues
If you are having issues with your Starlink integration, it is most likely due to the Agent not being able to access your Starlink device. Try running curl for the starlink_host listed in your starlink.d/conf.yaml file.
curl -v http://192.168.100.1:9000Common Issues
- • Network Access: Ensure the monitoring host can reach the Starlink device IP
- • Firewall Rules: Check if port 9000 is blocked by firewall
- • Device Status: Verify the Starlink terminal is powered and online
- • Agent Permissions: Ensure the Datadog Agent has network access
Further Reading
Additional helpful documentation, links, and articles:
Ready to Get Started?
Request access to our Private Preview program and transform your satellite connectivity into business intelligence.