Dash0 acquires Polar Signals
Connect to Dash0 securely over AWS PrivateLink for private connectivity without exposing telemetry data to the public internet.

AWS PrivateLink provides private connectivity between your VPC and Dash0's ingestion endpoints, ensuring that your telemetry data never traverses the public internet. By establishing a VPC endpoint connection, you can send traces, metrics, and logs to Dash0 through Amazon's private network backbone, enhancing security and reducing exposure to internet-based threats.
This integration enables you to maintain compliance with data security policies while benefiting from Dash0's observability platform. Traffic flows directly from your AWS resources to Dash0's service endpoints through a secure, private connection managed entirely within the AWS network infrastructure.
This guide walks you through setting up AWS PrivateLink to establish a private connection between your AWS VPC and Dash0's ingestion endpoints. With PrivateLink, your telemetry data travels through Amazon's private network backbone without traversing the public internet.
This guide focuses on same-region connectivity, where your workloads and the Dash0 ingestion endpoint are in the same AWS region.
Before setting up AWS PrivateLink for Dash0, ensure:
Dash0 currently supports AWS PrivateLink connections in the following regions:
| Region | Endpoint Service Name | Hosts |
|---|---|---|
| eu-west-1 | com.amazonaws.vpce.eu-west-1.vpce-svc-0b88f08934e414e88 | ingress, api, decision-maker |
| eu-central-1 | com.amazonaws.vpce.eu-central-1.vpce-svc-010d158eb8ea6038c | ingress, api, decision-maker |
| us-east-1 | com.amazonaws.vpce.us-east-1.vpce-svc-0824547412c2a8dbd | ingress, api, decision-maker |
| us-west-2 | com.amazonaws.vpce.us-west-2.vpce-svc-074051545fb5c7a5d | ingress, api, decision-maker |
After creating the VPC endpoint, you'll use the according private DNS name as the endpoint in your OpenTelemetry Collector configuration.
The ingress host is the ingestion endpoint, {{endpoint_privatelink_otlp_grpc_hostname}}. The endpoint
service also carries the api and decision-maker hosts, which use the same hostname with the leading
ingress. replaced by api. and decision-maker.. With them, SignalControl Edge works over the
same VPC endpoint.
Endpoints created before October 2026 use an ingestion-only service, which keeps working. See Migrate an Existing Endpoint to add the api and decision-maker hosts.



When you enable private DNS for your VPC endpoint, AWS automatically creates DNS records that resolve the Dash0 endpoint hostname to the private IP addresses of your VPC endpoint network interfaces.
After creating the VPC endpoint, verify that DNS resolution is working correctly:
# From an EC2 instance or container within your VPC
nslookup {{endpoint_privatelink_otlp_grpc_hostname}}
# You should see private IP address
# indicating traffic will route through your VPC endpointFor private DNS to work correctly, ensure your VPC has:
You can verify and enable these settings:
# Check DNS settings
aws ec2 describe-vpc-attribute --vpc-id $VPC_ID --attribute enableDnsSupport
aws ec2 describe-vpc-attribute --vpc-id $VPC_ID --attribute enableDnsHostnames
# Enable if needed
aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-support
aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-hostnamesOnce your VPC endpoint is created and DNS is configured, update your OpenTelemetry Collector configuration to use the PrivateLink endpoint:
exporters:
otlp:
endpoint: "{{endpoint_privatelink_otlp_grpc_hostname}}:{{endpoint_privatelink_otlp_grpc_port}}"
headers:
authorization: "Bearer {{token}}"
tls:
insecure: false
# Adding keepalive to the OTEL gRPC exporter can improve connection reliability from idle connection timeout.
# The settings are a reference; tune them to your environment.
keepalive:
time: 120s
timeout: 30s
permit_without_stream: true
service:
pipelines:
traces:
exporters: [otlp]
metrics:
exporters: [otlp]
logs:
exporters: [otlp]If you're using the Dash0 Operator for Kubernetes, update the operator configuration:
apiVersion: operator.dash0.com/v1alpha1
kind: Dash0
metadata:
name: dash0-operator-configuration
spec:
export:
dash0:
endpoint: "{{endpoint_privatelink_otlp_grpc_hostname}}:{{endpoint_privatelink_otlp_grpc_port}}"
authorization:
token:
secretRef:
name: dash0-authorization-token
key: tokenSignalControl Edge needs two Dash0 hosts besides ingestion: api, which serves its settings, and decision-maker, which serves tail-sampling decisions over gRPC. Both are reachable through the PrivateLink endpoint on port 443, the same port as ingestion, so the endpoint security group needs no extra rule.
Point Edge at the PrivateLink hostnames instead of the public ones. Derive them from
{{endpoint_privatelink_otlp_grpc_hostname}} by replacing the leading ingress.:
| Setting | PrivateLink value |
|---|---|
| OTLP export endpoint | {{endpoint_privatelink_otlp_grpc}} |
| Settings endpoint | https:// followed by the hostname with api. instead of ingress. |
| Decision-maker address (Edge Proxy upstream) | the hostname with decision-maker. instead of ingress., port 443 |
Use the same authorization token as for ingestion.
An endpoint to one of the ingestion-only services below resolves only the ingress host. To also reach the api and decision-maker hosts, move to the service listed in Supported Regions:
| Region | Ingestion-only service |
|---|---|
| eu-west-1 | com.amazonaws.vpce.eu-west-1.vpce-svc-0046745eec6c61a3f |
| eu-central-1 | com.amazonaws.vpce.eu-central-1.vpce-svc-0f10e673416b9cba9 |
| us-east-1 | com.amazonaws.vpce.us-east-1.vpce-svc-0ee7d3d24ede66b02 |
| us-west-2 | com.amazonaws.vpce.us-west-2.vpce-svc-024e2cd84acbadbc0 |
The move needs no interruption:
After configuring your OpenTelemetry Collector or Dash0 Operator, verify the connection:
# Look for successful OTLP exports
kubectl logs -n dash0-system deployment/dash0-operator-controller