mcpField
P
private-connectivity

private-connectivity

github.com/grafanaCloud & DevOps2954.2k installsUpdated 1d ago
Repository

About private-connectivity

A setup guide for Grafana Cloud administrators routing telemetry over cloud-provider private networks. It covers endpoint configuration and verification, as well as private data source queries.

Key features

  1. 01Configure AWS PrivateLink
  2. 02Configure Azure Private Link
  3. 03Configure GCP Private Service Connect
  4. 04Verify private DNS and traffic
  5. 05Set up Private Data Source Connect

Use cases

  1. 01Send metrics, logs, traces, and profiles privately
  2. 02Check that endpoints and DNS use a private path
  3. 03Query a private database or Prometheus from Grafana

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/grafana/skills --skill private-connectivity

After installing, type/private-connectivityin Claude Code to confirm it loaded.

Bundled filesreferences/aws.mdreferences/azure-gcp.md

Details

From the project README

Grafana Cloud Private Connectivity

Docs: https://grafana.com/docs/grafana-cloud/send-data/

Send metrics, logs, traces, and profiles to Grafana Cloud entirely over your cloud provider's private backbone — no public internet exposure, no egress fees.

Common Workflows

Setting up AWS PrivateLink (most common)
  1. Find your service names. Grafana Cloud → Stack Details → "Send using AWS PrivateLink". Note one service name per signal type (metrics / logs / traces / profiles).

  2. Create an Interface VPC Endpoint per signal type:

    aws ec2 create-vpc-endpoint \
      --vpc-id vpc-12345 \
      --service-name com.amazonaws.vpce.us-east-1.vpce-svc-0abc123 \
      --vpc-endpoint-type Interface \
      --subnet-ids subnet-12345 \
      --security-group-ids sg-12345 \
      --private-dns-enabled
    
  3. Verify private DNS resolves (CRITICAL — if this returns a public IP, Alloy will silently keep using the public path and you'll keep paying egress):

    dig +short prometheus-private.us-east-0.grafana.net
    # Expected: a 10.x.x.x / 172.16-31.x.x / 192.168.x.x address
    # Public IP returned → check `private_dns_enabled = true` was set and the VPC has DNS hostnames enabled
    
  4. Update Alloy to use the private endpoint:

    prometheus.remote_write "cloud_private" {
      endpoint {
        url = "https://prometheus-private.us-east-0.grafana.net/api/prom/push"
        basic_auth {
          username = sys.env("PROM_USER")
          password = sys.env("GRAFANA_CLOUD_API_KEY")
        }
      }
    }
    
    loki.write "cloud_private" {
      endpoint {
        url = "https://logs-private.us-east-0.grafana.net/loki/api/v1/push"
        basic_auth {
          username = sys.env("LOKI_USER")
          password = sys.env("GRAFANA_CLOUD_API_KEY")
        }
      }
    }
    
  5. Confirm traffic is flowing over PrivateLink: check the VPC endpoint's CloudWatch metrics for BytesProcessed after Alloy starts pushing.

Full Terraform + per-signal-type endpoint resources in references/aws.md.

Setting up Azure Private Link / GCP Private Service Connect

Different provider, same shape: create the private endpoint → wait for approval → verify private DNS → update Alloy URLs. Full CLI + verification steps in references/azure-gcp.md.

Azure-specific prereq: Pre-register your Subscription IDs with Grafana Support before starting — without this the endpoint creation hangs at "Pending".

Prerequisites (all providers)

  • Grafana Cloud stack must be hosted on the same cloud provider (check: My Account → Stack → Details)
  • Create separate private endpoints for each signal type (metrics / logs / traces / profiles) — they have distinct service names
  • Same region only for AWS PrivateLink. Cross-region requires VPC peering first.

Choosing the right option

ScenarioSolution
Push from AWSAWS PrivateLink
Push from AzureAzure Private Link
Push from GCPGCP Private Service Connect
Query private DB / Prometheus from GrafanaPrivate Data Source Connect (PDC) — see references/azure-gcp.md § PDC

References

  • references/aws.md — full AWS PrivateLink Terraform per signal type + endpoint verification (state + DNS)
  • references/azure-gcp.md — Azure Private Link + GCP Private Service Connect setup (Portal + CLI) + verification + Private Data Source Connect (PDC) for reverse-direction private data source queries

Comments

Markdown supported